Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations
inst.h File Reference

Go to the source code of this file.

Data Structures

union  mips_instruction
 

Macros

#define MIPSInst(x)   x
 
#define I_OPCODE_SFT   26
 
#define MIPSInst_OPCODE(x)   (MIPSInst(x) >> I_OPCODE_SFT)
 
#define I_JTARGET_SFT   0
 
#define MIPSInst_JTARGET(x)   (MIPSInst(x) & 0x03ffffff)
 
#define I_RS_SFT   21
 
#define MIPSInst_RS(x)   ((MIPSInst(x) & 0x03e00000) >> I_RS_SFT)
 
#define I_RT_SFT   16
 
#define MIPSInst_RT(x)   ((MIPSInst(x) & 0x001f0000) >> I_RT_SFT)
 
#define I_IMM_SFT   0
 
#define MIPSInst_SIMM(x)   ((int)((short)(MIPSInst(x) & 0xffff)))
 
#define MIPSInst_UIMM(x)   (MIPSInst(x) & 0xffff)
 
#define I_CACHEOP_SFT   18
 
#define MIPSInst_CACHEOP(x)   ((MIPSInst(x) & 0x001c0000) >> I_CACHEOP_SFT)
 
#define I_CACHESEL_SFT   16
 
#define MIPSInst_CACHESEL(x)   ((MIPSInst(x) & 0x00030000) >> I_CACHESEL_SFT)
 
#define I_RD_SFT   11
 
#define MIPSInst_RD(x)   ((MIPSInst(x) & 0x0000f800) >> I_RD_SFT)
 
#define I_RE_SFT   6
 
#define MIPSInst_RE(x)   ((MIPSInst(x) & 0x000007c0) >> I_RE_SFT)
 
#define I_FUNC_SFT   0
 
#define MIPSInst_FUNC(x)   (MIPSInst(x) & 0x0000003f)
 
#define I_FFMT_SFT   21
 
#define MIPSInst_FFMT(x)   ((MIPSInst(x) & 0x01e00000) >> I_FFMT_SFT)
 
#define I_FT_SFT   16
 
#define MIPSInst_FT(x)   ((MIPSInst(x) & 0x001f0000) >> I_FT_SFT)
 
#define I_FS_SFT   11
 
#define MIPSInst_FS(x)   ((MIPSInst(x) & 0x0000f800) >> I_FS_SFT)
 
#define I_FD_SFT   6
 
#define MIPSInst_FD(x)   ((MIPSInst(x) & 0x000007c0) >> I_FD_SFT)
 
#define I_FR_SFT   21
 
#define MIPSInst_FR(x)   ((MIPSInst(x) & 0x03e00000) >> I_FR_SFT)
 
#define I_FMA_FUNC_SFT   2
 
#define MIPSInst_FMA_FUNC(x)   ((MIPSInst(x) & 0x0000003c) >> I_FMA_FUNC_SFT)
 
#define I_FMA_FFMT_SFT   0
 
#define MIPSInst_FMA_FFMT(x)   (MIPSInst(x) & 0x00000003)
 

Typedefs

typedef unsigned int mips_instruction
 

Enumerations

enum  major_op {
  spec_op, bcond_op, j_op, jal_op,
  beq_op, bne_op, blez_op, bgtz_op,
  addi_op, addiu_op, slti_op, sltiu_op,
  andi_op, ori_op, xori_op, lui_op,
  cop0_op, cop1_op, cop2_op, cop1x_op,
  beql_op, bnel_op, blezl_op, bgtzl_op,
  daddi_op, daddiu_op, ldl_op, ldr_op,
  spec2_op, jalx_op, mdmx_op, spec3_op,
  lb_op, lh_op, lwl_op, lw_op,
  lbu_op, lhu_op, lwr_op, lwu_op,
  sb_op, sh_op, swl_op, sw_op,
  sdl_op, sdr_op, swr_op, cache_op,
  ll_op, lwc1_op, lwc2_op, pref_op,
  lld_op, ldc1_op, ldc2_op, ld_op,
  sc_op, swc1_op, swc2_op, major_3b_op,
  scd_op, sdc1_op, sdc2_op, sd_op
}
 
enum  spec_op {
  sll_op, movc_op, srl_op, sra_op,
  sllv_op, pmon_op, srlv_op, srav_op,
  jr_op, jalr_op, movz_op, movn_op,
  syscall_op, break_op, spim_op, sync_op,
  mfhi_op, mthi_op, mflo_op, mtlo_op,
  dsllv_op, spec2_unused_op, dsrlv_op, dsrav_op,
  mult_op, multu_op, div_op, divu_op,
  dmult_op, dmultu_op, ddiv_op, ddivu_op,
  add_op, addu_op, sub_op, subu_op,
  and_op, or_op, xor_op, nor_op,
  spec3_unused_op, spec4_unused_op, slt_op, sltu_op,
  dadd_op, daddu_op, dsub_op, dsubu_op,
  tge_op, tgeu_op, tlt_op, tltu_op,
  teq_op, spec5_unused_op, tne_op, spec6_unused_op,
  dsll_op, spec7_unused_op, dsrl_op, dsra_op,
  dsll32_op, spec8_unused_op, dsrl32_op, dsra32_op
}
 
enum  spec2_op {
  madd_op, maddu_op, mul_op, spec2_3_unused_op,
  msub_op, msubu_op, clz_op = 0x20, clo_op,
  dclz_op = 0x24, dclo_op, sdbpp_op = 0x3f
}
 
enum  spec3_op {
  ext_op, dextm_op, dextu_op, dext_op,
  ins_op, dinsm_op, dinsu_op, dins_op,
  lx_op = 0x0a, bshfl_op = 0x20, dbshfl_op = 0x24, rdhwr_op = 0x3b
}
 
enum  rt_op {
  bltz_op, bgez_op, bltzl_op, bgezl_op,
  spimi_op, unused_rt_op_0x05, unused_rt_op_0x06, unused_rt_op_0x07,
  tgei_op, tgeiu_op, tlti_op, tltiu_op,
  teqi_op, unused_0x0d_rt_op, tnei_op, unused_0x0f_rt_op,
  bltzal_op, bgezal_op, bltzall_op, bgezall_op,
  rt_op_0x14, rt_op_0x15, rt_op_0x16, rt_op_0x17,
  rt_op_0x18, rt_op_0x19, rt_op_0x1a, rt_op_0x1b,
  bposge32_op, rt_op_0x1d, rt_op_0x1e, rt_op_0x1f
}
 
enum  cop_op {
  mfc_op = 0x00, dmfc_op = 0x01, cfc_op = 0x02, mtc_op = 0x04,
  dmtc_op = 0x05, ctc_op = 0x06, bc_op = 0x08, cop_op = 0x10,
  copm_op = 0x18
}
 
enum  bcop_op { bcf_op, bct_op, bcfl_op, bctl_op }
 
enum  cop0_coi_func {
  tlbr_op = 0x01, tlbwi_op = 0x02, tlbwr_op = 0x06, tlbp_op = 0x08,
  rfe_op = 0x10, eret_op = 0x18
}
 
enum  cop0_com_func {
  tlbr1_op = 0x01, tlbw_op = 0x02, tlbp1_op = 0x08, dctr_op = 0x09,
  dctw_op = 0x0a
}
 
enum  cop1_fmt {
  s_fmt, d_fmt, e_fmt, q_fmt,
  w_fmt, l_fmt
}
 
enum  cop1_sdw_func {
  fadd_op = 0x00, fsub_op = 0x01, fmul_op = 0x02, fdiv_op = 0x03,
  fsqrt_op = 0x04, fabs_op = 0x05, fmov_op = 0x06, fneg_op = 0x07,
  froundl_op = 0x08, ftruncl_op = 0x09, fceill_op = 0x0a, ffloorl_op = 0x0b,
  fround_op = 0x0c, ftrunc_op = 0x0d, fceil_op = 0x0e, ffloor_op = 0x0f,
  fmovc_op = 0x11, fmovz_op = 0x12, fmovn_op = 0x13, frecip_op = 0x15,
  frsqrt_op = 0x16, fcvts_op = 0x20, fcvtd_op = 0x21, fcvte_op = 0x22,
  fcvtw_op = 0x24, fcvtl_op = 0x25, fcmp_op = 0x30
}
 
enum  cop1x_func {
  lwxc1_op = 0x00, ldxc1_op = 0x01, pfetch_op = 0x07, swxc1_op = 0x08,
  sdxc1_op = 0x09, madd_s_op = 0x20, madd_d_op = 0x21, madd_e_op = 0x22,
  msub_s_op = 0x28, msub_d_op = 0x29, msub_e_op = 0x2a, nmadd_s_op = 0x30,
  nmadd_d_op = 0x31, nmadd_e_op = 0x32, nmsub_s_op = 0x38, nmsub_d_op = 0x39,
  nmsub_e_op = 0x3a
}
 
enum  mad_func { madd_fp_op = 0x08, msub_fp_op = 0x0a, nmadd_fp_op = 0x0c, nmsub_fp_op = 0x0e }
 
enum  lx_func {
  lwx_op = 0x00, lhx_op = 0x04, lbux_op = 0x06, ldx_op = 0x08,
  lwux_op = 0x10, lhux_op = 0x14, lbx_op = 0x16
}
 

Macro Definition Documentation

#define I_CACHEOP_SFT   18

Definition at line 383 of file inst.h.

#define I_CACHESEL_SFT   16

Definition at line 386 of file inst.h.

#define I_FD_SFT   6

Definition at line 407 of file inst.h.

#define I_FFMT_SFT   21

Definition at line 398 of file inst.h.

#define I_FMA_FFMT_SFT   0

Definition at line 416 of file inst.h.

#define I_FMA_FUNC_SFT   2

Definition at line 413 of file inst.h.

#define I_FR_SFT   21

Definition at line 410 of file inst.h.

#define I_FS_SFT   11

Definition at line 404 of file inst.h.

#define I_FT_SFT   16

Definition at line 401 of file inst.h.

#define I_FUNC_SFT   0

Definition at line 395 of file inst.h.

#define I_IMM_SFT   0

Definition at line 379 of file inst.h.

#define I_JTARGET_SFT   0

Definition at line 370 of file inst.h.

#define I_OPCODE_SFT   26

Definition at line 367 of file inst.h.

#define I_RD_SFT   11

Definition at line 389 of file inst.h.

#define I_RE_SFT   6

Definition at line 392 of file inst.h.

#define I_RS_SFT   21

Definition at line 373 of file inst.h.

#define I_RT_SFT   16

Definition at line 376 of file inst.h.

#define MIPSInst (   x)    x

Definition at line 365 of file inst.h.

#define MIPSInst_CACHEOP (   x)    ((MIPSInst(x) & 0x001c0000) >> I_CACHEOP_SFT)

Definition at line 384 of file inst.h.

#define MIPSInst_CACHESEL (   x)    ((MIPSInst(x) & 0x00030000) >> I_CACHESEL_SFT)

Definition at line 387 of file inst.h.

#define MIPSInst_FD (   x)    ((MIPSInst(x) & 0x000007c0) >> I_FD_SFT)

Definition at line 408 of file inst.h.

#define MIPSInst_FFMT (   x)    ((MIPSInst(x) & 0x01e00000) >> I_FFMT_SFT)

Definition at line 399 of file inst.h.

#define MIPSInst_FMA_FFMT (   x)    (MIPSInst(x) & 0x00000003)

Definition at line 417 of file inst.h.

#define MIPSInst_FMA_FUNC (   x)    ((MIPSInst(x) & 0x0000003c) >> I_FMA_FUNC_SFT)

Definition at line 414 of file inst.h.

#define MIPSInst_FR (   x)    ((MIPSInst(x) & 0x03e00000) >> I_FR_SFT)

Definition at line 411 of file inst.h.

#define MIPSInst_FS (   x)    ((MIPSInst(x) & 0x0000f800) >> I_FS_SFT)

Definition at line 405 of file inst.h.

#define MIPSInst_FT (   x)    ((MIPSInst(x) & 0x001f0000) >> I_FT_SFT)

Definition at line 402 of file inst.h.

#define MIPSInst_FUNC (   x)    (MIPSInst(x) & 0x0000003f)

Definition at line 396 of file inst.h.

#define MIPSInst_JTARGET (   x)    (MIPSInst(x) & 0x03ffffff)

Definition at line 371 of file inst.h.

#define MIPSInst_OPCODE (   x)    (MIPSInst(x) >> I_OPCODE_SFT)

Definition at line 368 of file inst.h.

#define MIPSInst_RD (   x)    ((MIPSInst(x) & 0x0000f800) >> I_RD_SFT)

Definition at line 390 of file inst.h.

#define MIPSInst_RE (   x)    ((MIPSInst(x) & 0x000007c0) >> I_RE_SFT)

Definition at line 393 of file inst.h.

#define MIPSInst_RS (   x)    ((MIPSInst(x) & 0x03e00000) >> I_RS_SFT)

Definition at line 374 of file inst.h.

#define MIPSInst_RT (   x)    ((MIPSInst(x) & 0x001f0000) >> I_RT_SFT)

Definition at line 377 of file inst.h.

#define MIPSInst_SIMM (   x)    ((int)((short)(MIPSInst(x) & 0xffff)))

Definition at line 380 of file inst.h.

#define MIPSInst_UIMM (   x)    (MIPSInst(x) & 0xffff)

Definition at line 381 of file inst.h.

Typedef Documentation

typedef unsigned int mips_instruction

Definition at line 419 of file inst.h.

Enumeration Type Documentation

enum bcop_op
Enumerator:
bcf_op 
bct_op 
bcfl_op 
bctl_op 

Definition at line 109 of file inst.h.

Enumerator:
tlbr_op 
tlbwi_op 
tlbwr_op 
tlbp_op 
rfe_op 
eret_op 

Definition at line 116 of file inst.h.

Enumerator:
tlbr1_op 
tlbw_op 
tlbp1_op 
dctr_op 
dctw_op 

Definition at line 125 of file inst.h.

enum cop1_fmt
Enumerator:
s_fmt 
d_fmt 
e_fmt 
q_fmt 
w_fmt 
l_fmt 

Definition at line 134 of file inst.h.

Enumerator:
fadd_op 
fsub_op 
fmul_op 
fdiv_op 
fsqrt_op 
fabs_op 
fmov_op 
fneg_op 
froundl_op 
ftruncl_op 
fceill_op 
ffloorl_op 
fround_op 
ftrunc_op 
fceil_op 
ffloor_op 
fmovc_op 
fmovz_op 
fmovn_op 
frecip_op 
frsqrt_op 
fcvts_op 
fcvtd_op 
fcvte_op 
fcvtw_op 
fcvtl_op 
fcmp_op 

Definition at line 142 of file inst.h.

enum cop1x_func
Enumerator:
lwxc1_op 
ldxc1_op 
pfetch_op 
swxc1_op 
sdxc1_op 
madd_s_op 
madd_d_op 
madd_e_op 
msub_s_op 
msub_d_op 
msub_e_op 
nmadd_s_op 
nmadd_d_op 
nmadd_e_op 
nmsub_s_op 
nmsub_d_op 
nmsub_e_op 

Definition at line 162 of file inst.h.

enum cop_op
Enumerator:
mfc_op 
dmfc_op 
cfc_op 
mtc_op 
dmtc_op 
ctc_op 
bc_op 
cop_op 
copm_op 

Definition at line 98 of file inst.h.

enum lx_func
Enumerator:
lwx_op 
lhx_op 
lbux_op 
ldx_op 
lwux_op 
lhux_op 
lbx_op 

Definition at line 185 of file inst.h.

enum mad_func
Enumerator:
madd_fp_op 
msub_fp_op 
nmadd_fp_op 
nmsub_fp_op 

Definition at line 177 of file inst.h.

enum major_op
Enumerator:
spec_op 
bcond_op 
j_op 
jal_op 
beq_op 
bne_op 
blez_op 
bgtz_op 
addi_op 
addiu_op 
slti_op 
sltiu_op 
andi_op 
ori_op 
xori_op 
lui_op 
cop0_op 
cop1_op 
cop2_op 
cop1x_op 
beql_op 
bnel_op 
blezl_op 
bgtzl_op 
daddi_op 
daddiu_op 
ldl_op 
ldr_op 
spec2_op 
jalx_op 
mdmx_op 
spec3_op 
lb_op 
lh_op 
lwl_op 
lw_op 
lbu_op 
lhu_op 
lwr_op 
lwu_op 
sb_op 
sh_op 
swl_op 
sw_op 
sdl_op 
sdr_op 
swr_op 
cache_op 
ll_op 
lwc1_op 
lwc2_op 
pref_op 
lld_op 
ldc1_op 
ldc2_op 
ld_op 
sc_op 
swc1_op 
swc2_op 
major_3b_op 
scd_op 
sdc1_op 
sdc2_op 
sd_op 

Definition at line 17 of file inst.h.

enum rt_op
Enumerator:
bltz_op 
bgez_op 
bltzl_op 
bgezl_op 
spimi_op 
unused_rt_op_0x05 
unused_rt_op_0x06 
unused_rt_op_0x07 
tgei_op 
tgeiu_op 
tlti_op 
tltiu_op 
teqi_op 
unused_0x0d_rt_op 
tnei_op 
unused_0x0f_rt_op 
bltzal_op 
bgezal_op 
bltzall_op 
bgezall_op 
rt_op_0x14 
rt_op_0x15 
rt_op_0x16 
rt_op_0x17 
rt_op_0x18 
rt_op_0x19 
rt_op_0x1a 
rt_op_0x1b 
bposge32_op 
rt_op_0x1d 
rt_op_0x1e 
rt_op_0x1f 

Definition at line 84 of file inst.h.

enum spec2_op
Enumerator:
madd_op 
maddu_op 
mul_op 
spec2_3_unused_op 
msub_op 
msubu_op 
clz_op 
clo_op 
dclz_op 
dclo_op 
sdbpp_op 

Definition at line 61 of file inst.h.

enum spec3_op
Enumerator:
ext_op 
dextm_op 
dextu_op 
dext_op 
ins_op 
dinsm_op 
dinsu_op 
dins_op 
lx_op 
bshfl_op 
dbshfl_op 
rdhwr_op 

Definition at line 72 of file inst.h.

enum spec_op
Enumerator:
sll_op 
movc_op 
srl_op 
sra_op 
sllv_op 
pmon_op 
srlv_op 
srav_op 
jr_op 
jalr_op 
movz_op 
movn_op 
syscall_op 
break_op 
spim_op 
sync_op 
mfhi_op 
mthi_op 
mflo_op 
mtlo_op 
dsllv_op 
spec2_unused_op 
dsrlv_op 
dsrav_op 
mult_op 
multu_op 
div_op 
divu_op 
dmult_op 
dmultu_op 
ddiv_op 
ddivu_op 
add_op 
addu_op 
sub_op 
subu_op 
and_op 
or_op 
xor_op 
nor_op 
spec3_unused_op 
spec4_unused_op 
slt_op 
sltu_op 
dadd_op 
daddu_op 
dsub_op 
dsubu_op 
tge_op 
tgeu_op 
tlt_op 
tltu_op 
teq_op 
spec5_unused_op 
tne_op 
spec6_unused_op 
dsll_op 
spec7_unused_op 
dsrl_op 
dsra_op 
dsll32_op 
spec8_unused_op 
dsrl32_op 
dsra32_op 

Definition at line 39 of file inst.h.