diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/x64/x64-codegen.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/arch/x64/x64-codegen.h b/src/arch/x64/x64-codegen.h index ad53898..629189b 100644 --- a/src/arch/x64/x64-codegen.h +++ b/src/arch/x64/x64-codegen.h @@ -480,6 +480,15 @@ typedef union { x64_codegen_post(inst); \ } while (0) +#define x64_movsxd_reg_memindex(inst, reg, basereg, disp, indexreg, shift) \ + do { \ + x64_codegen_pre(inst); \ + x64_emit_rex(inst,8,(reg),0,(basereg)); \ + *(inst)++ = (unsigned char)0x63; \ + x64_memindex_emit((inst), (reg), (basereg), (disp), (indexreg), (shift)); \ + x64_codegen_post(inst); \ + } while (0) + #define x64_movsxd_reg_reg(inst,dreg,reg) \ do { \ x64_codegen_pre(inst); \ @@ -1413,11 +1422,11 @@ typedef union { #define x64_movd_xreg_membase(inst,dreg,basereg,disp) emit_sse_reg_membase((inst), (dreg), (basereg), (disp), 0x66, 0x0f, 0x6e) +#define x64_sse_movlhps_reg_reg(inst,dreg,sreg) \ + emit_sse_reg_reg_op2((inst), (dreg), (sreg), 0x0f, 0x16) -#define x64_movlhps_reg_reg(inst,dreg,sreg) emit_sse_reg_reg_op2((inst), (dreg), (sreg), 0x0f, 0x16) - -#define x64_movhlps_reg_reg(inst,dreg,sreg) emit_sse_reg_reg_op2((inst), (dreg), (sreg), 0x0f, 0x12) - +#define x64_sse_movhlps_reg_reg(inst,dreg,sreg) \ + emit_sse_reg_reg_op2((inst), (dreg), (sreg), 0x0f, 0x12) #define x64_sse_movups_membase_reg(inst, basereg, disp, reg) \ emit_sse_membase_reg_op2((inst), (basereg), (disp), (reg), 0x0f, 0x11) |