CACAO
Macros | Functions
emit.hpp File Reference

Go to the source code of this file.

Macros

#define REG_AL   0
 
#define REG_CL   1
 
#define REG_DL   2
 
#define REG_BL   3
 
#define REG_AH   4
 
#define REG_CH   5
 
#define REG_DH   6
 
#define REG_BH   7
 
#define ALU_ADD   0
 
#define ALU_OR   1
 
#define ALU_ADC   2
 
#define ALU_SBB   3
 
#define ALU_AND   4
 
#define ALU_SUB   5
 
#define ALU_XOR   6
 
#define ALU_CMP   7
 
#define SHIFT_ROL   0
 
#define SHIFT_ROR   1
 
#define SHIFT_RCL   2
 
#define SHIFT_RCR   3
 
#define SHIFT_SHL   4
 
#define SHIFT_SHR   5
 
#define SHIFT_SAR   7
 
#define CC_O   0
 
#define CC_NO   1
 
#define CC_B   2
 
#define CC_C   2
 
#define CC_NAE   2
 
#define CC_AE   3
 
#define CC_NB   3
 
#define CC_NC   3
 
#define CC_E   4
 
#define CC_Z   4
 
#define CC_NE   5
 
#define CC_NZ   5
 
#define CC_BE   6
 
#define CC_NA   6
 
#define CC_A   7
 
#define CC_NBE   7
 
#define CC_S   8
 
#define CC_LZ   8
 
#define CC_NS   9
 
#define CC_GEZ   9
 
#define CC_P   0x0a
 
#define CC_PE   0x0a
 
#define CC_NP   0x0b
 
#define CC_PO   0x0b
 
#define CC_L   0x0c
 
#define CC_NGE   0x0c
 
#define CC_GE   0x0d
 
#define CC_NL   0x0d
 
#define CC_LE   0x0e
 
#define CC_NG   0x0e
 
#define CC_G   0x0f
 
#define CC_NLE   0x0f
 
#define emit_address_byte(mod, reg, rm)
 
#define emit_imm8(imm)
 
#define emit_imm16(imm)
 
#define emit_imm32(imm)
 
#define emit_mem(r, mem)
 
#define emit_reg(reg, rm)   emit_address_byte(3,(reg),(rm))
 

Functions

void emit_mov_reg_reg (codegendata *cd, s4 reg, s4 dreg)
 
void emit_mov_imm_reg (codegendata *cd, s4 imm, s4 dreg)
 
void emit_mov_imm2_reg (codegendata *cd, s4 imm, s4 dreg)
 
void emit_movb_imm_reg (codegendata *cd, s4 imm, s4 dreg)
 
void emit_mov_membase_reg (codegendata *cd, s4 basereg, s4 disp, s4 reg)
 
void emit_mov_membase32_reg (codegendata *cd, s4 basereg, s4 disp, s4 reg)
 
void emit_mov_reg_membase (codegendata *cd, s4 reg, s4 basereg, s4 disp)
 
void emit_mov_reg_membase32 (codegendata *cd, s4 reg, s4 basereg, s4 disp)
 
void emit_mov_memindex_reg (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg)
 
void emit_mov_reg_memindex (codegendata *cd, s4 reg, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_movw_reg_memindex (codegendata *cd, s4 reg, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_movb_reg_memindex (codegendata *cd, s4 reg, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_mov_reg_mem (codegendata *cd, s4 reg, s4 mem)
 
void emit_mov_mem_reg (codegendata *cd, s4 mem, s4 dreg)
 
void emit_mov_imm_mem (codegendata *cd, s4 imm, s4 mem)
 
void emit_mov_imm_membase (codegendata *cd, s4 imm, s4 basereg, s4 disp)
 
void emit_mov_imm_membase32 (codegendata *cd, s4 imm, s4 basereg, s4 disp)
 
void emit_movb_imm_membase (codegendata *cd, s4 imm, s4 basereg, s4 disp)
 
void emit_movsbl_reg_reg (codegendata *cd, s4 a, s4 b)
 
void emit_movsbl_memindex_reg (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg)
 
void emit_movswl_reg_reg (codegendata *cd, s4 a, s4 b)
 
void emit_movswl_memindex_reg (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg)
 
void emit_movzbl_reg_reg (codegendata *cd, s4 a, s4 b)
 
void emit_movzwl_reg_reg (codegendata *cd, s4 a, s4 b)
 
void emit_movzwl_memindex_reg (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg)
 
void emit_mov_imm_memindex (codegendata *cd, s4 imm, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_movw_imm_memindex (codegendata *cd, s4 imm, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_movb_imm_memindex (codegendata *cd, s4 imm, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_alu_reg_reg (codegendata *cd, s4 opc, s4 reg, s4 dreg)
 
void emit_alu_reg_membase (codegendata *cd, s4 opc, s4 reg, s4 basereg, s4 disp)
 
void emit_alu_membase_reg (codegendata *cd, s4 opc, s4 basereg, s4 disp, s4 reg)
 
void emit_alu_imm_reg (codegendata *cd, s4 opc, s4 imm, s4 reg)
 
void emit_alu_imm32_reg (codegendata *cd, s4 opc, s4 imm, s4 reg)
 
void emit_alu_imm_membase (codegendata *cd, s4 opc, s4 imm, s4 basereg, s4 disp)
 
void emit_alu_imm_memabs (codegendata *cd, s4 opc, s4 imm, s4 disp)
 
void emit_alu_memindex_reg (codegendata *cd, s4 opc, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg)
 
void emit_inc_reg (codegendata *cd, s4 reg)
 
void emit_test_reg_reg (codegendata *cd, s4 reg, s4 dreg)
 
void emit_test_imm_reg (codegendata *cd, s4 imm, s4 dreg)
 
void emit_dec_mem (codegendata *cd, s4 mem)
 
void emit_imul_reg_reg (codegendata *cd, s4 reg, s4 dreg)
 
void emit_imul_membase_reg (codegendata *cd, s4 basereg, s4 disp, s4 dreg)
 
void emit_imul_imm_reg (codegendata *cd, s4 imm, s4 reg)
 
void emit_imul_imm_reg_reg (codegendata *cd, s4 imm, s4 reg, s4 dreg)
 
void emit_imul_imm_membase_reg (codegendata *cd, s4 imm, s4 basereg, s4 disp, s4 dreg)
 
void emit_mul_reg (codegendata *cd, s4 reg)
 
void emit_idiv_reg (codegendata *cd, s4 reg)
 
void emit_shift_reg (codegendata *cd, s4 opc, s4 reg)
 
void emit_shift_imm_reg (codegendata *cd, s4 opc, s4 imm, s4 reg)
 
void emit_shld_reg_reg (codegendata *cd, s4 reg, s4 dreg)
 
void emit_shld_imm_reg_reg (codegendata *cd, s4 imm, s4 reg, s4 dreg)
 
void emit_shld_reg_membase (codegendata *cd, s4 reg, s4 basereg, s4 disp)
 
void emit_shrd_reg_reg (codegendata *cd, s4 reg, s4 dreg)
 
void emit_shrd_imm_reg_reg (codegendata *cd, s4 imm, s4 reg, s4 dreg)
 
void emit_shrd_reg_membase (codegendata *cd, s4 reg, s4 basereg, s4 disp)
 
void emit_jmp_imm (codegendata *cd, s4 imm)
 
void emit_jmp_reg (codegendata *cd, s4 reg)
 
void emit_jcc (codegendata *cd, s4 opc, s4 imm)
 
void emit_setcc_reg (codegendata *cd, s4 opc, s4 reg)
 
void emit_setcc_membase (codegendata *cd, s4 opc, s4 basereg, s4 disp)
 
void emit_xadd_reg_mem (codegendata *cd, s4 reg, s4 mem)
 
void emit_neg_reg (codegendata *cd, s4 reg)
 
void emit_push_imm (codegendata *cd, s4 imm)
 
void emit_pop_reg (codegendata *cd, s4 reg)
 
void emit_push_reg (codegendata *cd, s4 reg)
 
void emit_lock (codegendata *cd)
 
void emit_call_reg (codegendata *cd, s4 reg)
 
void emit_call_imm (codegendata *cd, s4 imm)
 
void emit_call_mem (codegendata *cd, s4 mem)
 
void emit_fld1 (codegendata *cd)
 
void emit_fldz (codegendata *cd)
 
void emit_fld_reg (codegendata *cd, s4 reg)
 
void emit_flds_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_flds_membase32 (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fldl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fldl_membase32 (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fldt_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_flds_memindex (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_fldl_memindex (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_flds_mem (codegendata *cd, s4 mem)
 
void emit_fldl_mem (codegendata *cd, s4 mem)
 
void emit_fildl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fildll_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fst_reg (codegendata *cd, s4 reg)
 
void emit_fsts_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fstl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fsts_memindex (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_fstl_memindex (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_fstp_reg (codegendata *cd, s4 reg)
 
void emit_fstps_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fstps_membase32 (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fstpl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fstpl_membase32 (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fstpt_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fstps_memindex (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_fstpl_memindex (codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_fstps_mem (codegendata *cd, s4 mem)
 
void emit_fstpl_mem (codegendata *cd, s4 mem)
 
void emit_fistl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fistpl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fistpll_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fchs (codegendata *cd)
 
void emit_faddp (codegendata *cd)
 
void emit_fadd_reg_st (codegendata *cd, s4 reg)
 
void emit_fadd_st_reg (codegendata *cd, s4 reg)
 
void emit_faddp_st_reg (codegendata *cd, s4 reg)
 
void emit_fadds_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_faddl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fsub_reg_st (codegendata *cd, s4 reg)
 
void emit_fsub_st_reg (codegendata *cd, s4 reg)
 
void emit_fsubp_st_reg (codegendata *cd, s4 reg)
 
void emit_fsubp (codegendata *cd)
 
void emit_fsubs_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fsubl_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fmul_reg_st (codegendata *cd, s4 reg)
 
void emit_fmul_st_reg (codegendata *cd, s4 reg)
 
void emit_fmulp (codegendata *cd)
 
void emit_fmulp_st_reg (codegendata *cd, s4 reg)
 
void emit_fmuls_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fmull_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_fdiv_reg_st (codegendata *cd, s4 reg)
 
void emit_fdiv_st_reg (codegendata *cd, s4 reg)
 
void emit_fdivp (codegendata *cd)
 
void emit_fdivp_st_reg (codegendata *cd, s4 reg)
 
void emit_fxch (codegendata *cd)
 
void emit_fxch_reg (codegendata *cd, s4 reg)
 
void emit_fprem (codegendata *cd)
 
void emit_fprem1 (codegendata *cd)
 
void emit_fucom (codegendata *cd)
 
void emit_fucom_reg (codegendata *cd, s4 reg)
 
void emit_fucomp_reg (codegendata *cd, s4 reg)
 
void emit_fucompp (codegendata *cd)
 
void emit_fnstsw (codegendata *cd)
 
void emit_sahf (codegendata *cd)
 
void emit_finit (codegendata *cd)
 
void emit_fldcw_mem (codegendata *cd, s4 mem)
 
void emit_fldcw_membase (codegendata *cd, s4 basereg, s4 disp)
 
void emit_wait (codegendata *cd)
 
void emit_ffree_reg (codegendata *cd, s4 reg)
 
void emit_fdecstp (codegendata *cd)
 
void emit_fincstp (codegendata *cd)
 
static void emit_recompute_pv (codegendata *cd)
 Emit code to recompute the procedure vector. More...
 

Macro Definition Documentation

#define ALU_ADC   2

Definition at line 49 of file emit.hpp.

#define ALU_ADD   0

Definition at line 47 of file emit.hpp.

#define ALU_AND   4

Definition at line 51 of file emit.hpp.

#define ALU_CMP   7

Definition at line 54 of file emit.hpp.

#define ALU_OR   1

Definition at line 48 of file emit.hpp.

#define ALU_SBB   3

Definition at line 50 of file emit.hpp.

#define ALU_SUB   5

Definition at line 52 of file emit.hpp.

#define ALU_XOR   6

Definition at line 53 of file emit.hpp.

#define CC_A   7

Definition at line 80 of file emit.hpp.

#define CC_AE   3

Definition at line 71 of file emit.hpp.

#define CC_B   2

Definition at line 68 of file emit.hpp.

#define CC_BE   6

Definition at line 78 of file emit.hpp.

#define CC_C   2

Definition at line 69 of file emit.hpp.

#define CC_E   4

Definition at line 74 of file emit.hpp.

#define CC_G   0x0f

Definition at line 96 of file emit.hpp.

#define CC_GE   0x0d

Definition at line 92 of file emit.hpp.

#define CC_GEZ   9

Definition at line 85 of file emit.hpp.

#define CC_L   0x0c

Definition at line 90 of file emit.hpp.

#define CC_LE   0x0e

Definition at line 94 of file emit.hpp.

#define CC_LZ   8

Definition at line 83 of file emit.hpp.

#define CC_NA   6

Definition at line 79 of file emit.hpp.

#define CC_NAE   2

Definition at line 70 of file emit.hpp.

#define CC_NB   3

Definition at line 72 of file emit.hpp.

#define CC_NBE   7

Definition at line 81 of file emit.hpp.

#define CC_NC   3

Definition at line 73 of file emit.hpp.

#define CC_NE   5

Definition at line 76 of file emit.hpp.

#define CC_NG   0x0e

Definition at line 95 of file emit.hpp.

#define CC_NGE   0x0c

Definition at line 91 of file emit.hpp.

#define CC_NL   0x0d

Definition at line 93 of file emit.hpp.

#define CC_NLE   0x0f

Definition at line 97 of file emit.hpp.

#define CC_NO   1

Definition at line 67 of file emit.hpp.

#define CC_NP   0x0b

Definition at line 88 of file emit.hpp.

#define CC_NS   9

Definition at line 84 of file emit.hpp.

#define CC_NZ   5

Definition at line 77 of file emit.hpp.

#define CC_O   0

Definition at line 66 of file emit.hpp.

#define CC_P   0x0a

Definition at line 86 of file emit.hpp.

#define CC_PE   0x0a

Definition at line 87 of file emit.hpp.

#define CC_PO   0x0b

Definition at line 89 of file emit.hpp.

#define CC_S   8

Definition at line 82 of file emit.hpp.

#define CC_Z   4

Definition at line 75 of file emit.hpp.

#define emit_address_byte (   mod,
  reg,
  rm 
)
Value:
do { \
*(cd->mcodeptr++) = ((((mod) & 0x03) << 6) | (((reg) & 0x07) << 3) | (((rm) & 0x07))); \
} while (0)
alloc::set< EdgeType >::type mod

Definition at line 102 of file emit.hpp.

#define emit_imm16 (   imm)
Value:
do { \
imm_union imb; \
imb.i = (int) (imm); \
*(cd->mcodeptr++) = imb.b[0]; \
*(cd->mcodeptr++) = imb.b[1]; \
} while (0)

Definition at line 114 of file emit.hpp.

#define emit_imm32 (   imm)
Value:
do { \
imm_union imb; \
imb.i = (int) (imm); \
*(cd->mcodeptr++) = imb.b[0]; \
*(cd->mcodeptr++) = imb.b[1]; \
*(cd->mcodeptr++) = imb.b[2]; \
*(cd->mcodeptr++) = imb.b[3]; \
} while (0)

Definition at line 123 of file emit.hpp.

#define emit_imm8 (   imm)
Value:
do { \
*(cd->mcodeptr++) = (u1) ((imm) & 0xff); \
} while (0)
uint8_t u1
Definition: types.hpp:40

Definition at line 108 of file emit.hpp.

#define emit_mem (   r,
  mem 
)
Value:
do { \
emit_imm32((mem)); \
} while (0)
#define emit_imm32(imm)
Definition: emit.hpp:123
#define emit_address_byte(mod, reg, rm)
Definition: emit.hpp:102

Definition at line 134 of file emit.hpp.

#define emit_reg (   reg,
  rm 
)    emit_address_byte(3,(reg),(rm))

Definition at line 143 of file emit.hpp.

#define REG_AH   4

Definition at line 39 of file emit.hpp.

#define REG_AL   0

Definition at line 35 of file emit.hpp.

#define REG_BH   7

Definition at line 42 of file emit.hpp.

#define REG_BL   3

Definition at line 38 of file emit.hpp.

#define REG_CH   5

Definition at line 40 of file emit.hpp.

#define REG_CL   1

Definition at line 36 of file emit.hpp.

#define REG_DH   6

Definition at line 41 of file emit.hpp.

#define REG_DL   2

Definition at line 37 of file emit.hpp.

#define SHIFT_RCL   2

Definition at line 59 of file emit.hpp.

#define SHIFT_RCR   3

Definition at line 60 of file emit.hpp.

#define SHIFT_ROL   0

Definition at line 57 of file emit.hpp.

#define SHIFT_ROR   1

Definition at line 58 of file emit.hpp.

#define SHIFT_SAR   7

Definition at line 63 of file emit.hpp.

#define SHIFT_SHL   4

Definition at line 61 of file emit.hpp.

#define SHIFT_SHR   5

Definition at line 62 of file emit.hpp.

Function Documentation

void emit_alu_imm32_reg ( codegendata cd,
s4  opc,
s4  imm,
s4  reg 
)

Definition at line 1274 of file emit.cpp.

void emit_alu_imm_memabs ( codegendata cd,
s4  opc,
s4  imm,
s4  disp 
)

Definition at line 1296 of file emit.cpp.

void emit_alu_imm_membase ( codegendata cd,
s4  opc,
s4  imm,
s4  basereg,
s4  disp 
)

Definition at line 1282 of file emit.cpp.

void emit_alu_imm_reg ( codegendata cd,
s4  opc,
s4  imm,
s4  reg 
)

Definition at line 1260 of file emit.cpp.

void emit_alu_membase_reg ( codegendata cd,
s4  opc,
s4  basereg,
s4  disp,
s4  reg 
)

Definition at line 1253 of file emit.cpp.

void emit_alu_memindex_reg ( codegendata cd,
s4  opc,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale,
s4  reg 
)

Definition at line 1309 of file emit.cpp.

void emit_alu_reg_membase ( codegendata cd,
s4  opc,
s4  reg,
s4  basereg,
s4  disp 
)

Definition at line 1246 of file emit.cpp.

void emit_alu_reg_reg ( codegendata cd,
s4  opc,
s4  reg,
s4  dreg 
)

Definition at line 1239 of file emit.cpp.

void emit_call_imm ( codegendata cd,
s4  imm 
)

Definition at line 1598 of file emit.cpp.

void emit_call_mem ( codegendata cd,
s4  mem 
)
void emit_call_reg ( codegendata cd,
s4  reg 
)

Definition at line 1591 of file emit.cpp.

void emit_dec_mem ( codegendata cd,
s4  mem 
)

Definition at line 1340 of file emit.cpp.

void emit_fadd_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1847 of file emit.cpp.

void emit_fadd_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1854 of file emit.cpp.

void emit_faddl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1875 of file emit.cpp.

void emit_faddp ( codegendata cd)

Definition at line 1840 of file emit.cpp.

void emit_faddp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1861 of file emit.cpp.

void emit_fadds_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1868 of file emit.cpp.

void emit_fchs ( codegendata cd)

Definition at line 1833 of file emit.cpp.

void emit_fdecstp ( codegendata cd)

Definition at line 2098 of file emit.cpp.

void emit_fdiv_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1966 of file emit.cpp.

void emit_fdiv_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1973 of file emit.cpp.

void emit_fdivp ( codegendata cd)

Definition at line 1980 of file emit.cpp.

void emit_fdivp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1987 of file emit.cpp.

void emit_ffree_reg ( codegendata cd,
s4  reg 
)

Definition at line 2091 of file emit.cpp.

void emit_fildl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1693 of file emit.cpp.

void emit_fildll_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1700 of file emit.cpp.

void emit_fincstp ( codegendata cd)

Definition at line 2105 of file emit.cpp.

void emit_finit ( codegendata cd)

Definition at line 2063 of file emit.cpp.

void emit_fistl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1812 of file emit.cpp.

void emit_fistpl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1819 of file emit.cpp.

void emit_fistpll_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1826 of file emit.cpp.

void emit_fld1 ( codegendata cd)

Definition at line 1609 of file emit.cpp.

void emit_fld_reg ( codegendata cd,
s4  reg 
)

Definition at line 1623 of file emit.cpp.

void emit_fldcw_mem ( codegendata cd,
s4  mem 
)

Definition at line 2071 of file emit.cpp.

void emit_fldcw_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 2078 of file emit.cpp.

void emit_fldl_mem ( codegendata cd,
s4  mem 
)

Definition at line 1686 of file emit.cpp.

void emit_fldl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1644 of file emit.cpp.

void emit_fldl_membase32 ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1651 of file emit.cpp.

void emit_fldl_memindex ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1672 of file emit.cpp.

void emit_flds_mem ( codegendata cd,
s4  mem 
)

Definition at line 1679 of file emit.cpp.

void emit_flds_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1630 of file emit.cpp.

void emit_flds_membase32 ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1637 of file emit.cpp.

void emit_flds_memindex ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1665 of file emit.cpp.

void emit_fldt_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1658 of file emit.cpp.

void emit_fldz ( codegendata cd)

Definition at line 1616 of file emit.cpp.

void emit_fmul_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1924 of file emit.cpp.

void emit_fmul_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1931 of file emit.cpp.

void emit_fmull_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1959 of file emit.cpp.

void emit_fmulp ( codegendata cd)

Definition at line 1938 of file emit.cpp.

void emit_fmulp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1945 of file emit.cpp.

void emit_fmuls_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1952 of file emit.cpp.

void emit_fnstsw ( codegendata cd)

Definition at line 2050 of file emit.cpp.

void emit_fprem ( codegendata cd)

Definition at line 2008 of file emit.cpp.

void emit_fprem1 ( codegendata cd)

Definition at line 2015 of file emit.cpp.

void emit_fst_reg ( codegendata cd,
s4  reg 
)

Definition at line 1707 of file emit.cpp.

void emit_fstl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1721 of file emit.cpp.

void emit_fstl_memindex ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1735 of file emit.cpp.

void emit_fstp_reg ( codegendata cd,
s4  reg 
)

Definition at line 1742 of file emit.cpp.

void emit_fstpl_mem ( codegendata cd,
s4  mem 
)

Definition at line 1805 of file emit.cpp.

void emit_fstpl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1763 of file emit.cpp.

void emit_fstpl_membase32 ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1770 of file emit.cpp.

void emit_fstpl_memindex ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1791 of file emit.cpp.

void emit_fstps_mem ( codegendata cd,
s4  mem 
)

Definition at line 1798 of file emit.cpp.

void emit_fstps_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1749 of file emit.cpp.

void emit_fstps_membase32 ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1756 of file emit.cpp.

void emit_fstps_memindex ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1784 of file emit.cpp.

void emit_fstpt_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1777 of file emit.cpp.

void emit_fsts_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1714 of file emit.cpp.

void emit_fsts_memindex ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1728 of file emit.cpp.

void emit_fsub_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1882 of file emit.cpp.

void emit_fsub_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1889 of file emit.cpp.

void emit_fsubl_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1917 of file emit.cpp.

void emit_fsubp ( codegendata cd)

Definition at line 1903 of file emit.cpp.

void emit_fsubp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1896 of file emit.cpp.

void emit_fsubs_membase ( codegendata cd,
s4  basereg,
s4  disp 
)

Definition at line 1910 of file emit.cpp.

void emit_fucom ( codegendata cd)

Definition at line 2022 of file emit.cpp.

void emit_fucom_reg ( codegendata cd,
s4  reg 
)

Definition at line 2029 of file emit.cpp.

void emit_fucomp_reg ( codegendata cd,
s4  reg 
)

Definition at line 2036 of file emit.cpp.

void emit_fucompp ( codegendata cd)

Definition at line 2043 of file emit.cpp.

void emit_fxch ( codegendata cd)

Definition at line 1994 of file emit.cpp.

void emit_fxch_reg ( codegendata cd,
s4  reg 
)

Definition at line 2001 of file emit.cpp.

void emit_idiv_reg ( codegendata cd,
s4  reg 
)

Definition at line 1419 of file emit.cpp.

void emit_imul_imm_membase_reg ( codegendata cd,
s4  imm,
s4  basereg,
s4  disp,
s4  dreg 
)

Definition at line 1391 of file emit.cpp.

void emit_imul_imm_reg ( codegendata cd,
s4  imm,
s4  reg 
)

Definition at line 1363 of file emit.cpp.

void emit_imul_imm_reg_reg ( codegendata cd,
s4  imm,
s4  reg,
s4  dreg 
)

Definition at line 1377 of file emit.cpp.

void emit_imul_membase_reg ( codegendata cd,
s4  basereg,
s4  disp,
s4  dreg 
)

Definition at line 1355 of file emit.cpp.

void emit_imul_reg_reg ( codegendata cd,
s4  reg,
s4  dreg 
)

Definition at line 1347 of file emit.cpp.

void emit_inc_reg ( codegendata cd,
s4  reg 
)

Definition at line 1334 of file emit.cpp.

void emit_jcc ( codegendata cd,
s4  opc,
s4  imm 
)

Definition at line 1518 of file emit.cpp.

void emit_jmp_imm ( codegendata cd,
s4  imm 
)

Definition at line 1504 of file emit.cpp.

void emit_jmp_reg ( codegendata cd,
s4  reg 
)

Definition at line 1511 of file emit.cpp.

void emit_lock ( codegendata cd)

Definition at line 1582 of file emit.cpp.

void emit_mov_imm2_reg ( codegendata cd,
s4  imm,
s4  dreg 
)

Definition at line 1016 of file emit.cpp.

void emit_mov_imm_mem ( codegendata cd,
s4  imm,
s4  mem 
)

Definition at line 1118 of file emit.cpp.

void emit_mov_imm_membase ( codegendata cd,
s4  imm,
s4  basereg,
s4  disp 
)

Definition at line 1126 of file emit.cpp.

void emit_mov_imm_membase32 ( codegendata cd,
s4  imm,
s4  basereg,
s4  disp 
)

Definition at line 1134 of file emit.cpp.

void emit_mov_imm_memindex ( codegendata cd,
s4  imm,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1211 of file emit.cpp.

void emit_mov_imm_reg ( codegendata cd,
s4  imm,
s4  dreg 
)

Definition at line 1009 of file emit.cpp.

void emit_mov_mem_reg ( codegendata cd,
s4  mem,
s4  dreg 
)

Definition at line 1110 of file emit.cpp.

void emit_mov_membase32_reg ( codegendata cd,
s4  basereg,
s4  disp,
s4  reg 
)

Definition at line 1045 of file emit.cpp.

void emit_mov_membase_reg ( codegendata cd,
s4  basereg,
s4  disp,
s4  reg 
)

Definition at line 1033 of file emit.cpp.

void emit_mov_memindex_reg ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale,
s4  reg 
)

Definition at line 1069 of file emit.cpp.

void emit_mov_reg_mem ( codegendata cd,
s4  reg,
s4  mem 
)

Definition at line 1102 of file emit.cpp.

void emit_mov_reg_membase ( codegendata cd,
s4  reg,
s4  basereg,
s4  disp 
)

Definition at line 1053 of file emit.cpp.

void emit_mov_reg_membase32 ( codegendata cd,
s4  reg,
s4  basereg,
s4  disp 
)

Definition at line 1061 of file emit.cpp.

void emit_mov_reg_memindex ( codegendata cd,
s4  reg,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1077 of file emit.cpp.

void emit_mov_reg_reg ( codegendata cd,
s4  reg,
s4  dreg 
)

Definition at line 1001 of file emit.cpp.

void emit_movb_imm_membase ( codegendata cd,
s4  imm,
s4  basereg,
s4  disp 
)

Definition at line 1142 of file emit.cpp.

void emit_movb_imm_memindex ( codegendata cd,
s4  imm,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1228 of file emit.cpp.

void emit_movb_imm_reg ( codegendata cd,
s4  imm,
s4  dreg 
)

Definition at line 1025 of file emit.cpp.

void emit_movb_reg_memindex ( codegendata cd,
s4  reg,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1094 of file emit.cpp.

void emit_movsbl_memindex_reg ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale,
s4  reg 
)

Definition at line 1159 of file emit.cpp.

void emit_movsbl_reg_reg ( codegendata cd,
s4  a,
s4  b 
)

Definition at line 1150 of file emit.cpp.

void emit_movswl_memindex_reg ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale,
s4  reg 
)

Definition at line 1176 of file emit.cpp.

void emit_movswl_reg_reg ( codegendata cd,
s4  a,
s4  b 
)

Definition at line 1168 of file emit.cpp.

void emit_movw_imm_memindex ( codegendata cd,
s4  imm,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1219 of file emit.cpp.

void emit_movw_reg_memindex ( codegendata cd,
s4  reg,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale 
)

Definition at line 1085 of file emit.cpp.

void emit_movzbl_reg_reg ( codegendata cd,
s4  a,
s4  b 
)

Definition at line 1185 of file emit.cpp.

void emit_movzwl_memindex_reg ( codegendata cd,
s4  disp,
s4  basereg,
s4  indexreg,
s4  scale,
s4  reg 
)

Definition at line 1202 of file emit.cpp.

void emit_movzwl_reg_reg ( codegendata cd,
s4  a,
s4  b 
)

Definition at line 1194 of file emit.cpp.

void emit_mul_reg ( codegendata cd,
s4  reg 
)

Definition at line 1405 of file emit.cpp.

void emit_neg_reg ( codegendata cd,
s4  reg 
)

Definition at line 1555 of file emit.cpp.

void emit_pop_reg ( codegendata cd,
s4  reg 
)

Definition at line 1570 of file emit.cpp.

void emit_push_imm ( codegendata cd,
s4  imm 
)

Definition at line 1563 of file emit.cpp.

void emit_push_reg ( codegendata cd,
s4  reg 
)

Definition at line 1576 of file emit.cpp.

static void emit_recompute_pv ( codegendata cd)
inlinestatic

Emit code to recompute the procedure vector.

This is a nop, because we do not use a procedure vector.

Definition at line 304 of file emit.hpp.

void emit_sahf ( codegendata cd)

Definition at line 2057 of file emit.cpp.

void emit_setcc_membase ( codegendata cd,
s4  opc,
s4  basereg,
s4  disp 
)

Definition at line 1539 of file emit.cpp.

void emit_setcc_reg ( codegendata cd,
s4  opc,
s4  reg 
)

Definition at line 1530 of file emit.cpp.

void emit_shift_imm_reg ( codegendata cd,
s4  opc,
s4  imm,
s4  reg 
)

Definition at line 1437 of file emit.cpp.

void emit_shift_reg ( codegendata cd,
s4  opc,
s4  reg 
)

Definition at line 1430 of file emit.cpp.

void emit_shld_imm_reg_reg ( codegendata cd,
s4  imm,
s4  reg,
s4  dreg 
)

Definition at line 1458 of file emit.cpp.

void emit_shld_reg_membase ( codegendata cd,
s4  reg,
s4  basereg,
s4  disp 
)

Definition at line 1467 of file emit.cpp.

void emit_shld_reg_reg ( codegendata cd,
s4  reg,
s4  dreg 
)

Definition at line 1450 of file emit.cpp.

void emit_shrd_imm_reg_reg ( codegendata cd,
s4  imm,
s4  reg,
s4  dreg 
)

Definition at line 1483 of file emit.cpp.

void emit_shrd_reg_membase ( codegendata cd,
s4  reg,
s4  basereg,
s4  disp 
)

Definition at line 1492 of file emit.cpp.

void emit_shrd_reg_reg ( codegendata cd,
s4  reg,
s4  dreg 
)

Definition at line 1475 of file emit.cpp.

void emit_test_imm_reg ( codegendata cd,
s4  imm,
s4  dreg 
)

Definition at line 1322 of file emit.cpp.

void emit_test_reg_reg ( codegendata cd,
s4  reg,
s4  dreg 
)

Definition at line 1315 of file emit.cpp.

void emit_wait ( codegendata cd)

Definition at line 2085 of file emit.cpp.

void emit_xadd_reg_mem ( codegendata cd,
s4  reg,
s4  mem 
)

Definition at line 1547 of file emit.cpp.