CACAO
|
Go to the source code of this file.
Macros | |
#define | CALCOFFSETBYTES(var, reg, val) |
#define | CALCIMMEDIATEBYTES(var, val) |
#define | ALIGNCODENOP |
#define | MCODECHECK(icnt) |
#define | M_FMOV(reg, dreg) |
#define | M_DMOV(a, b) M_FMOV(a,b) |
#define | ICONST(d, c) |
#define | LCONST(d, c) |
#define | BRANCH_UNCONDITIONAL_SIZE 5 /* size in bytes of a branch */ |
#define | BRANCH_CONDITIONAL_SIZE 6 /* size in bytes of a branch */ |
#define | BRANCH_NOPS |
#define | PATCHER_CALL_SIZE 2 /* size in bytes of a patcher call */ |
#define | PATCHER_NOPS |
#define | M_BYTE1(a) |
#define | M_BYTE2(a, b) |
#define | M_ILD(a, b, disp) emit_mov_membase_reg(cd, (b), (disp), (a)) |
#define | M_ILD32(a, b, disp) emit_mov_membase32_reg(cd, (b), (disp), (a)) |
#define | M_ALD(a, b, disp) M_ILD(a,b,disp) |
#define | M_ALD32(a, b, disp) M_ILD32(a,b,disp) |
#define | M_ALD_MEM(a, disp) emit_mov_mem_reg(cd, (disp), (a)) |
#define | M_ALD_MEM_GET_OPC(p) (*(p)) |
#define | M_ALD_MEM_GET_MOD(p) (((*(p + 1)) >> 6) & 0x03) |
#define | M_ALD_MEM_GET_REG(p) (((*(p + 1)) >> 3) & 0x07) |
#define | M_ALD_MEM_GET_RM(p) (((*(p + 1)) ) & 0x07) |
#define | M_ALD_MEM_GET_DISP(p) (*((u4 *) (p + 2))) |
#define | M_LLD(a, b, disp) |
#define | M_LLD32(a, b, disp) |
#define | M_IST(a, b, disp) emit_mov_reg_membase(cd, (a), (b), (disp)) |
#define | M_IST_IMM(a, b, disp) emit_mov_imm_membase(cd, (u4) (a), (b), (disp)) |
#define | M_AST(a, b, disp) M_IST(a,b,disp) |
#define | M_AST_IMM(a, b, disp) M_IST_IMM(a,b,disp) |
#define | M_IST32(a, b, disp) emit_mov_reg_membase32(cd, (a), (b), (disp)) |
#define | M_IST32_IMM(a, b, disp) emit_mov_imm_membase32(cd, (u4) (a), (b), (disp)) |
#define | M_LST(a, b, disp) |
#define | M_LST32(a, b, disp) |
#define | M_LST_IMM(a, b, disp) |
#define | M_LST32_IMM(a, b, disp) |
#define | M_IADD(a, b) emit_alu_reg_reg(cd, ALU_ADD, (a), (b)) |
#define | M_ISUB(a, b) emit_alu_reg_reg(cd, ALU_SUB, (a), (b)) |
#define | M_IMUL(a, b) emit_imul_reg_reg(cd, (a), (b)) |
#define | M_IDIV(a) emit_idiv_reg(cd, (a)) |
#define | M_MUL(a) emit_mul_reg(cd, (a)) |
#define | M_IADD_IMM(a, b) emit_alu_imm_reg(cd, ALU_ADD, (a), (b)) |
#define | M_ISUB_IMM(a, b) emit_alu_imm_reg(cd, ALU_SUB, (a), (b)) |
#define | M_IMUL_IMM(a, b, c) emit_imul_imm_reg_reg(cd, (b), (a), (c)) |
#define | M_IADD_IMM32(a, b) emit_alu_imm32_reg(cd, ALU_ADD, (a), (b)) |
#define | M_ISUB_IMM32(a, b) emit_alu_imm32_reg(cd, ALU_SUB, (a), (b)) |
#define | M_IADD_IMM_MEMBASE(a, b, c) emit_alu_imm_membase(cd, ALU_ADD, (a), (b), (c)) |
#define | M_ISUB_IMM_MEMABS(a, b) emit_alu_imm_memabs(cd, ALU_SUB, (a), (b)) |
#define | M_IINC(a) emit_inc_reg(cd, (a)) |
#define | M_IADDC(a, b) emit_alu_reg_reg(cd, ALU_ADC, (a), (b)) |
#define | M_ISUBB(a, b) emit_alu_reg_reg(cd, ALU_SBB, (a), (b)) |
#define | M_IADDC_IMM(a, b) emit_alu_imm_reg(cd, ALU_ADC, (a), (b)) |
#define | M_ISUBB_IMM(a, b) emit_alu_imm_reg(cd, ALU_SBB, (a), (b)) |
#define | M_AADD_IMM(a, b) M_IADD_IMM(a,b) |
#define | M_AADD_IMM32(a, b) M_IADD_IMM32(a,b) |
#define | M_ASUB_IMM(a, b) M_ISUB_IMM(a,b) |
#define | M_NEG(a) emit_neg_reg(cd, (a)) |
#define | M_AND(a, b) emit_alu_reg_reg(cd, ALU_AND, (a), (b)) |
#define | M_OR(a, b) emit_alu_reg_reg(cd, ALU_OR, (a), (b)) |
#define | M_XOR(a, b) emit_alu_reg_reg(cd, ALU_XOR, (a), (b)) |
#define | M_AND_IMM(a, b) emit_alu_imm_reg(cd, ALU_AND, (a), (b)) |
#define | M_OR_IMM(a, b) emit_alu_imm_reg(cd, ALU_OR, (a), (b)) |
#define | M_XOR_IMM(a, b) emit_alu_imm_reg(cd, ALU_XOR, (a), (b)) |
#define | M_AND_IMM32(a, b) emit_alu_imm32_reg(cd, ALU_AND, (a), (b)) |
#define | M_CLR(a) M_XOR(a,a) |
#define | M_PUSH(a) emit_push_reg(cd, (a)) |
#define | M_PUSH_IMM(a) emit_push_imm(cd, (s4) (a)) |
#define | M_POP(a) emit_pop_reg(cd, (a)) |
#define | M_MOV(a, b) emit_mov_reg_reg(cd, (a), (b)) |
#define | M_MOV_IMM(a, b) emit_mov_imm_reg(cd, (u4) (a), (b)) |
#define | M_MOV_IMM2(a, b) emit_mov_imm2_reg(cd, (u4) (a), (b)) |
#define | M_TEST(a) emit_test_reg_reg(cd, (a), (a)) |
#define | M_TEST_IMM(a, b) emit_test_imm_reg(cd, (a), (b)) |
#define | M_CMP(a, b) emit_alu_reg_reg(cd, ALU_CMP, (a), (b)) |
#define | M_CMP_MEMBASE(a, b, c) emit_alu_membase_reg(cd, ALU_CMP, (a), (b), (c)) |
#define | M_CMP_MEMINDEX(a, b, c, d, e) emit_alu_memindex_reg(cd, ALU_CMP, (b), (a), (c), (d), (e)) |
#define | M_CMP_IMM(a, b) emit_alu_imm_reg(cd, ALU_CMP, (a), (b)) |
#define | M_CMP_IMM_MEMBASE(a, b, c) emit_alu_imm_membase(cd, ALU_CMP, (a), (b), (c)) |
#define | M_CMP_IMM32(a, b) emit_alu_imm32_reg(cd, ALU_CMP, (a), (b)) |
#define | M_BSEXT(a, b) emit_movsbl_reg_reg(cd, (a), (b)) |
#define | M_SSEXT(a, b) emit_movswl_reg_reg(cd, (a), (b)) |
#define | M_BZEXT(a, b) emit_movzbl_reg_reg(cd, (a), (b)) |
#define | M_CZEXT(a, b) emit_movzwl_reg_reg(cd, (a), (b)) |
#define | M_CLTD M_BYTE1(0x99) |
#define | M_SLL(a) emit_shift_reg(cd, SHIFT_SHL, (a)) |
#define | M_SRA(a) emit_shift_reg(cd, SHIFT_SAR, (a)) |
#define | M_SRL(a) emit_shift_reg(cd, SHIFT_SHR, (a)) |
#define | M_SLL_IMM(a, b) emit_shift_imm_reg(cd, SHIFT_SHL, (a), (b)) |
#define | M_SRA_IMM(a, b) emit_shift_imm_reg(cd, SHIFT_SAR, (a), (b)) |
#define | M_SRL_IMM(a, b) emit_shift_imm_reg(cd, SHIFT_SHR, (a), (b)) |
#define | M_SLLD(a, b) emit_shld_reg_reg(cd, (a), (b)) |
#define | M_SRLD(a, b) emit_shrd_reg_reg(cd, (a), (b)) |
#define | M_SLLD_IMM(a, b, c) emit_shld_imm_reg_reg(cd, (a), (b), (c)) |
#define | M_SRLD_IMM(a, b, c) emit_shrd_imm_reg_reg(cd, (a), (b), (c)) |
#define | M_CALL(a) emit_call_reg(cd, (a)) |
#define | M_CALL_IMM(a) emit_call_imm(cd, (a)) |
#define | M_RET M_BYTE1(0xc3) |
#define | M_ACMP(a, b) M_CMP(a,b) |
#define | M_ICMP(a, b) M_CMP(a,b) |
#define | M_ICMP_IMM(a, b) emit_alu_imm_reg(cd, ALU_CMP, (a), (b)) |
#define | M_BEQ(a) emit_jcc(cd, CC_E, (a)) |
#define | M_BNE(a) emit_jcc(cd, CC_NE, (a)) |
#define | M_BLT(a) emit_jcc(cd, CC_L, (a)) |
#define | M_BLE(a) emit_jcc(cd, CC_LE, (a)) |
#define | M_BGE(a) emit_jcc(cd, CC_GE, (a)) |
#define | M_BGT(a) emit_jcc(cd, CC_G, (a)) |
#define | M_BB(a) emit_jcc(cd, CC_B, (a)) |
#define | M_BBE(a) emit_jcc(cd, CC_BE, (a)) |
#define | M_BAE(a) emit_jcc(cd, CC_AE, (a)) |
#define | M_BA(a) emit_jcc(cd, CC_A, (a)) |
#define | M_BNS(a) emit_jcc(cd, CC_NS, (a)) |
#define | M_BS(a) emit_jcc(cd, CC_S, (a)) |
#define | M_SETE(a) emit_setcc_reg(cd, CC_E, (a)) |
#define | M_JMP(a) emit_jmp_reg(cd, (a)) |
#define | M_JMP_IMM(a) emit_jmp_imm(cd, (a)) |
#define | M_NOP M_BYTE1(0x90) |
#define | M_UD2 M_BYTE2(0x0f, 0x0b) |
#define | M_FLD(a, b, disp) emit_flds_membase(cd, (b), (disp)) |
#define | M_DLD(a, b, disp) emit_fldl_membase(cd, (b), (disp)) |
#define | M_FLD32(a, b, disp) emit_flds_membase32(cd, (b), (disp)) |
#define | M_DLD32(a, b, disp) emit_fldl_membase32(cd, (b), (disp)) |
#define | M_FST(a, b, disp) emit_fstps_membase(cd, (b), (disp)) |
#define | M_DST(a, b, disp) emit_fstpl_membase(cd, (b), (disp)) |
#define | M_FSTNP(a, b, disp) emit_fsts_membase(cd, (b), (disp)) |
#define | M_DSTNP(a, b, disp) emit_fstl_membase(cd, (b), (disp)) |
#define ALIGNCODENOP |
Definition at line 58 of file codegen.hpp.
#define BRANCH_CONDITIONAL_SIZE 6 /* size in bytes of a branch */ |
Definition at line 106 of file codegen.hpp.
#define BRANCH_NOPS |
#define BRANCH_UNCONDITIONAL_SIZE 5 /* size in bytes of a branch */ |
Definition at line 105 of file codegen.hpp.
#define CALCIMMEDIATEBYTES | ( | var, | |
val | |||
) |
Definition at line 53 of file codegen.hpp.
#define CALCOFFSETBYTES | ( | var, | |
reg, | |||
val | |||
) |
Definition at line 47 of file codegen.hpp.
#define ICONST | ( | d, | |
c | |||
) |
Definition at line 82 of file codegen.hpp.
#define LCONST | ( | d, | |
c | |||
) |
Definition at line 91 of file codegen.hpp.
#define M_AADD_IMM | ( | a, | |
b | |||
) | M_IADD_IMM(a,b) |
Definition at line 230 of file codegen.hpp.
#define M_AADD_IMM32 | ( | a, | |
b | |||
) | M_IADD_IMM32(a,b) |
Definition at line 231 of file codegen.hpp.
#define M_ACMP | ( | a, | |
b | |||
) | M_CMP(a,b) |
Definition at line 294 of file codegen.hpp.
#define M_ALD | ( | a, | |
b, | |||
disp | |||
) | M_ILD(a,b,disp) |
Definition at line 149 of file codegen.hpp.
#define M_ALD32 | ( | a, | |
b, | |||
disp | |||
) | M_ILD32(a,b,disp) |
Definition at line 150 of file codegen.hpp.
#define M_ALD_MEM | ( | a, | |
disp | |||
) | emit_mov_mem_reg(cd, (disp), (a)) |
Definition at line 152 of file codegen.hpp.
#define M_ALD_MEM_GET_DISP | ( | p | ) | (*((u4 *) (p + 2))) |
Definition at line 158 of file codegen.hpp.
#define M_ALD_MEM_GET_MOD | ( | p | ) | (((*(p + 1)) >> 6) & 0x03) |
Definition at line 155 of file codegen.hpp.
#define M_ALD_MEM_GET_OPC | ( | p | ) | (*(p)) |
Definition at line 154 of file codegen.hpp.
#define M_ALD_MEM_GET_REG | ( | p | ) | (((*(p + 1)) >> 3) & 0x07) |
Definition at line 156 of file codegen.hpp.
#define M_ALD_MEM_GET_RM | ( | p | ) | (((*(p + 1)) ) & 0x07) |
Definition at line 157 of file codegen.hpp.
#define M_AND | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_AND, (a), (b)) |
Definition at line 236 of file codegen.hpp.
#define M_AND_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_AND, (a), (b)) |
Definition at line 240 of file codegen.hpp.
#define M_AND_IMM32 | ( | a, | |
b | |||
) | emit_alu_imm32_reg(cd, ALU_AND, (a), (b)) |
Definition at line 244 of file codegen.hpp.
#define M_AST | ( | a, | |
b, | |||
disp | |||
) | M_IST(a,b,disp) |
Definition at line 174 of file codegen.hpp.
#define M_AST_IMM | ( | a, | |
b, | |||
disp | |||
) | M_IST_IMM(a,b,disp) |
Definition at line 175 of file codegen.hpp.
#define M_ASUB_IMM | ( | a, | |
b | |||
) | M_ISUB_IMM(a,b) |
Definition at line 232 of file codegen.hpp.
Definition at line 309 of file codegen.hpp.
Definition at line 308 of file codegen.hpp.
Definition at line 306 of file codegen.hpp.
Definition at line 307 of file codegen.hpp.
Definition at line 299 of file codegen.hpp.
Definition at line 303 of file codegen.hpp.
Definition at line 304 of file codegen.hpp.
Definition at line 302 of file codegen.hpp.
Definition at line 301 of file codegen.hpp.
Definition at line 300 of file codegen.hpp.
Definition at line 310 of file codegen.hpp.
Definition at line 311 of file codegen.hpp.
#define M_BSEXT | ( | a, | |
b | |||
) | emit_movsbl_reg_reg(cd, (a), (b)) |
Definition at line 268 of file codegen.hpp.
#define M_BYTE1 | ( | a | ) |
Definition at line 132 of file codegen.hpp.
#define M_BYTE2 | ( | a, | |
b | |||
) |
Definition at line 139 of file codegen.hpp.
#define M_BZEXT | ( | a, | |
b | |||
) | emit_movzbl_reg_reg(cd, (a), (b)) |
Definition at line 271 of file codegen.hpp.
#define M_CALL | ( | a | ) | emit_call_reg(cd, (a)) |
Definition at line 290 of file codegen.hpp.
#define M_CALL_IMM | ( | a | ) | emit_call_imm(cd, (a)) |
Definition at line 291 of file codegen.hpp.
#define M_CLR | ( | a | ) | M_XOR(a,a) |
Definition at line 246 of file codegen.hpp.
#define M_CLTD M_BYTE1(0x99) |
Definition at line 274 of file codegen.hpp.
#define M_CMP | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_CMP, (a), (b)) |
Definition at line 259 of file codegen.hpp.
#define M_CMP_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_CMP, (a), (b)) |
Definition at line 263 of file codegen.hpp.
#define M_CMP_IMM32 | ( | a, | |
b | |||
) | emit_alu_imm32_reg(cd, ALU_CMP, (a), (b)) |
Definition at line 266 of file codegen.hpp.
#define M_CMP_IMM_MEMBASE | ( | a, | |
b, | |||
c | |||
) | emit_alu_imm_membase(cd, ALU_CMP, (a), (b), (c)) |
Definition at line 264 of file codegen.hpp.
#define M_CMP_MEMBASE | ( | a, | |
b, | |||
c | |||
) | emit_alu_membase_reg(cd, ALU_CMP, (a), (b), (c)) |
Definition at line 260 of file codegen.hpp.
#define M_CMP_MEMINDEX | ( | a, | |
b, | |||
c, | |||
d, | |||
e | |||
) | emit_alu_memindex_reg(cd, ALU_CMP, (b), (a), (c), (d), (e)) |
Definition at line 261 of file codegen.hpp.
#define M_CZEXT | ( | a, | |
b | |||
) | emit_movzwl_reg_reg(cd, (a), (b)) |
Definition at line 272 of file codegen.hpp.
#define M_DLD | ( | a, | |
b, | |||
disp | |||
) | emit_fldl_membase(cd, (b), (disp)) |
Definition at line 323 of file codegen.hpp.
#define M_DLD32 | ( | a, | |
b, | |||
disp | |||
) | emit_fldl_membase32(cd, (b), (disp)) |
Definition at line 326 of file codegen.hpp.
#define M_DMOV | ( | a, | |
b | |||
) | M_FMOV(a,b) |
Definition at line 80 of file codegen.hpp.
#define M_DST | ( | a, | |
b, | |||
disp | |||
) | emit_fstpl_membase(cd, (b), (disp)) |
Definition at line 329 of file codegen.hpp.
#define M_DSTNP | ( | a, | |
b, | |||
disp | |||
) | emit_fstl_membase(cd, (b), (disp)) |
Definition at line 332 of file codegen.hpp.
#define M_FLD | ( | a, | |
b, | |||
disp | |||
) | emit_flds_membase(cd, (b), (disp)) |
Definition at line 322 of file codegen.hpp.
#define M_FLD32 | ( | a, | |
b, | |||
disp | |||
) | emit_flds_membase32(cd, (b), (disp)) |
Definition at line 325 of file codegen.hpp.
#define M_FMOV | ( | reg, | |
dreg | |||
) |
Definition at line 74 of file codegen.hpp.
#define M_FST | ( | a, | |
b, | |||
disp | |||
) | emit_fstps_membase(cd, (b), (disp)) |
Definition at line 328 of file codegen.hpp.
#define M_FSTNP | ( | a, | |
b, | |||
disp | |||
) | emit_fsts_membase(cd, (b), (disp)) |
Definition at line 331 of file codegen.hpp.
#define M_IADD | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_ADD, (a), (b)) |
Definition at line 204 of file codegen.hpp.
#define M_IADD_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_ADD, (a), (b)) |
Definition at line 211 of file codegen.hpp.
#define M_IADD_IMM32 | ( | a, | |
b | |||
) | emit_alu_imm32_reg(cd, ALU_ADD, (a), (b)) |
Definition at line 215 of file codegen.hpp.
#define M_IADD_IMM_MEMBASE | ( | a, | |
b, | |||
c | |||
) | emit_alu_imm_membase(cd, ALU_ADD, (a), (b), (c)) |
Definition at line 218 of file codegen.hpp.
#define M_IADDC | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_ADC, (a), (b)) |
Definition at line 224 of file codegen.hpp.
#define M_IADDC_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_ADC, (a), (b)) |
Definition at line 227 of file codegen.hpp.
#define M_ICMP | ( | a, | |
b | |||
) | M_CMP(a,b) |
Definition at line 296 of file codegen.hpp.
#define M_ICMP_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_CMP, (a), (b)) |
Definition at line 297 of file codegen.hpp.
#define M_IDIV | ( | a | ) | emit_idiv_reg(cd, (a)) |
Definition at line 207 of file codegen.hpp.
#define M_IINC | ( | a | ) | emit_inc_reg(cd, (a)) |
Definition at line 222 of file codegen.hpp.
#define M_ILD | ( | a, | |
b, | |||
disp | |||
) | emit_mov_membase_reg(cd, (b), (disp), (a)) |
Definition at line 146 of file codegen.hpp.
#define M_ILD32 | ( | a, | |
b, | |||
disp | |||
) | emit_mov_membase32_reg(cd, (b), (disp), (a)) |
Definition at line 147 of file codegen.hpp.
#define M_IMUL | ( | a, | |
b | |||
) | emit_imul_reg_reg(cd, (a), (b)) |
Definition at line 206 of file codegen.hpp.
#define M_IMUL_IMM | ( | a, | |
b, | |||
c | |||
) | emit_imul_imm_reg_reg(cd, (b), (a), (c)) |
Definition at line 213 of file codegen.hpp.
#define M_IST | ( | a, | |
b, | |||
disp | |||
) | emit_mov_reg_membase(cd, (a), (b), (disp)) |
Definition at line 172 of file codegen.hpp.
#define M_IST32 | ( | a, | |
b, | |||
disp | |||
) | emit_mov_reg_membase32(cd, (a), (b), (disp)) |
Definition at line 177 of file codegen.hpp.
#define M_IST32_IMM | ( | a, | |
b, | |||
disp | |||
) | emit_mov_imm_membase32(cd, (u4) (a), (b), (disp)) |
Definition at line 178 of file codegen.hpp.
#define M_IST_IMM | ( | a, | |
b, | |||
disp | |||
) | emit_mov_imm_membase(cd, (u4) (a), (b), (disp)) |
Definition at line 173 of file codegen.hpp.
#define M_ISUB | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_SUB, (a), (b)) |
Definition at line 205 of file codegen.hpp.
#define M_ISUB_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_SUB, (a), (b)) |
Definition at line 212 of file codegen.hpp.
#define M_ISUB_IMM32 | ( | a, | |
b | |||
) | emit_alu_imm32_reg(cd, ALU_SUB, (a), (b)) |
Definition at line 216 of file codegen.hpp.
#define M_ISUB_IMM_MEMABS | ( | a, | |
b | |||
) | emit_alu_imm_memabs(cd, ALU_SUB, (a), (b)) |
Definition at line 220 of file codegen.hpp.
#define M_ISUBB | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_SBB, (a), (b)) |
Definition at line 225 of file codegen.hpp.
#define M_ISUBB_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_SBB, (a), (b)) |
Definition at line 228 of file codegen.hpp.
#define M_JMP | ( | a | ) | emit_jmp_reg(cd, (a)) |
Definition at line 315 of file codegen.hpp.
#define M_JMP_IMM | ( | a | ) | emit_jmp_imm(cd, (a)) |
Definition at line 316 of file codegen.hpp.
#define M_LLD | ( | a, | |
b, | |||
disp | |||
) |
Definition at line 160 of file codegen.hpp.
#define M_LLD32 | ( | a, | |
b, | |||
disp | |||
) |
Definition at line 166 of file codegen.hpp.
#define M_LST | ( | a, | |
b, | |||
disp | |||
) |
Definition at line 180 of file codegen.hpp.
#define M_LST32 | ( | a, | |
b, | |||
disp | |||
) |
Definition at line 186 of file codegen.hpp.
#define M_LST32_IMM | ( | a, | |
b, | |||
disp | |||
) |
Definition at line 198 of file codegen.hpp.
#define M_LST_IMM | ( | a, | |
b, | |||
disp | |||
) |
Definition at line 192 of file codegen.hpp.
#define M_MOV | ( | a, | |
b | |||
) | emit_mov_reg_reg(cd, (a), (b)) |
Definition at line 252 of file codegen.hpp.
#define M_MOV_IMM | ( | a, | |
b | |||
) | emit_mov_imm_reg(cd, (u4) (a), (b)) |
Definition at line 253 of file codegen.hpp.
#define M_MOV_IMM2 | ( | a, | |
b | |||
) | emit_mov_imm2_reg(cd, (u4) (a), (b)) |
Definition at line 254 of file codegen.hpp.
#define M_MUL | ( | a | ) | emit_mul_reg(cd, (a)) |
Definition at line 209 of file codegen.hpp.
#define M_NEG | ( | a | ) | emit_neg_reg(cd, (a)) |
Definition at line 234 of file codegen.hpp.
#define M_NOP M_BYTE1(0x90) |
Definition at line 318 of file codegen.hpp.
#define M_OR | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_OR, (a), (b)) |
Definition at line 237 of file codegen.hpp.
#define M_OR_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_OR, (a), (b)) |
Definition at line 241 of file codegen.hpp.
#define M_POP | ( | a | ) | emit_pop_reg(cd, (a)) |
Definition at line 250 of file codegen.hpp.
#define M_PUSH | ( | a | ) | emit_push_reg(cd, (a)) |
Definition at line 248 of file codegen.hpp.
#define M_PUSH_IMM | ( | a | ) | emit_push_imm(cd, (s4) (a)) |
Definition at line 249 of file codegen.hpp.
#define M_RET M_BYTE1(0xc3) |
Definition at line 292 of file codegen.hpp.
#define M_SETE | ( | a | ) | emit_setcc_reg(cd, CC_E, (a)) |
Definition at line 313 of file codegen.hpp.
#define M_SLL | ( | a | ) | emit_shift_reg(cd, SHIFT_SHL, (a)) |
Definition at line 276 of file codegen.hpp.
#define M_SLL_IMM | ( | a, | |
b | |||
) | emit_shift_imm_reg(cd, SHIFT_SHL, (a), (b)) |
Definition at line 280 of file codegen.hpp.
#define M_SLLD | ( | a, | |
b | |||
) | emit_shld_reg_reg(cd, (a), (b)) |
Definition at line 284 of file codegen.hpp.
#define M_SLLD_IMM | ( | a, | |
b, | |||
c | |||
) | emit_shld_imm_reg_reg(cd, (a), (b), (c)) |
Definition at line 287 of file codegen.hpp.
#define M_SRA | ( | a | ) | emit_shift_reg(cd, SHIFT_SAR, (a)) |
Definition at line 277 of file codegen.hpp.
#define M_SRA_IMM | ( | a, | |
b | |||
) | emit_shift_imm_reg(cd, SHIFT_SAR, (a), (b)) |
Definition at line 281 of file codegen.hpp.
#define M_SRL | ( | a | ) | emit_shift_reg(cd, SHIFT_SHR, (a)) |
Definition at line 278 of file codegen.hpp.
#define M_SRL_IMM | ( | a, | |
b | |||
) | emit_shift_imm_reg(cd, SHIFT_SHR, (a), (b)) |
Definition at line 282 of file codegen.hpp.
#define M_SRLD | ( | a, | |
b | |||
) | emit_shrd_reg_reg(cd, (a), (b)) |
Definition at line 285 of file codegen.hpp.
#define M_SRLD_IMM | ( | a, | |
b, | |||
c | |||
) | emit_shrd_imm_reg_reg(cd, (a), (b), (c)) |
Definition at line 288 of file codegen.hpp.
#define M_SSEXT | ( | a, | |
b | |||
) | emit_movswl_reg_reg(cd, (a), (b)) |
Definition at line 269 of file codegen.hpp.
#define M_TEST | ( | a | ) | emit_test_reg_reg(cd, (a), (a)) |
Definition at line 256 of file codegen.hpp.
#define M_TEST_IMM | ( | a, | |
b | |||
) | emit_test_imm_reg(cd, (a), (b)) |
Definition at line 257 of file codegen.hpp.
#define M_UD2 M_BYTE2(0x0f, 0x0b) |
Definition at line 319 of file codegen.hpp.
#define M_XOR | ( | a, | |
b | |||
) | emit_alu_reg_reg(cd, ALU_XOR, (a), (b)) |
Definition at line 238 of file codegen.hpp.
#define M_XOR_IMM | ( | a, | |
b | |||
) | emit_alu_imm_reg(cd, ALU_XOR, (a), (b)) |
Definition at line 242 of file codegen.hpp.
#define MCODECHECK | ( | icnt | ) |
Definition at line 67 of file codegen.hpp.
#define PATCHER_CALL_SIZE 2 /* size in bytes of a patcher call */ |
Definition at line 121 of file codegen.hpp.
#define PATCHER_NOPS |
Definition at line 123 of file codegen.hpp.