CACAO
Functions
emit.cpp File Reference

Go to the source code of this file.

Functions

s4 emit_load (jitdata *jd, instruction *iptr, varinfo *src, s4 tempreg)
 
void emit_store (jitdata *jd, instruction *iptr, varinfo *dst, s4 d)
 
void emit_copy (jitdata *jd, instruction *iptr)
 
void emit_cmovxx (codegendata *cd, instruction *iptr, s4 s, s4 d)
 
void emit_icmp_imm (codegendata *cd, int reg, int32_t value)
 Emits code updating the condition register by comparing one integer register to an immediate integer value. More...
 
void emit_branch (codegendata *cd, s4 disp, s4 condition, s4 reg, u4 options)
 
void emit_arithmetic_check (codegendata *cd, instruction *iptr, s4 reg)
 
void emit_arrayindexoutofbounds_check (codegendata *cd, instruction *iptr, s4 s1, s4 s2)
 
void emit_arraystore_check (codegendata *cd, instruction *iptr)
 
void emit_classcast_check (codegendata *cd, instruction *iptr, s4 condition, s4 reg, s4 s1)
 
void emit_nullpointer_check (codegendata *cd, instruction *iptr, s4 reg)
 
void emit_exception_check (codegendata *cd, instruction *iptr)
 
void emit_trap_compiler (codegendata *cd)
 
void emit_abstractmethoderror_trap (codegendata *cd)
 
void emit_patcher_alignment (codegendata *cd)
 
uint32_t emit_trap (codegendata *cd)
 
void emit_fastpath_monitor_enter (jitdata *jd, instruction *iptr, int d)
 Generates fast-path code for the below builtin. More...
 
void emit_fastpath_monitor_exit (jitdata *jd, instruction *iptr, int d)
 Generates fast-path code for the below builtin. More...
 
void emit_monitor_enter (jitdata *jd, int32_t syncslot_offset)
 Generates synchronization code to enter a monitor. More...
 
void emit_monitor_exit (jitdata *jd, int32_t syncslot_offset)
 Generates synchronization code to leave a monitor. More...
 
void emit_verbosecall_enter (jitdata *jd)
 Emit profiling code for method frequency counting. More...
 
void emit_verbosecall_exit (jitdata *jd)
 
static void emit_membase (codegendata *cd, s4 basereg, s4 disp, s4 dreg)
 
static void emit_membase32 (codegendata *cd, s4 basereg, s4 disp, s4 dreg)
 
static void emit_memindex (codegendata *cd, s4 reg, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_ishift (jitdata *jd, s4 shift_op, instruction *iptr)
 
void emit_lshift (jitdata *jd, s4 shift_op, instruction *iptr)
 
void emit_nop (codegendata *cd, int length)
 
void emit_arbitrary_nop (codegendata *cd, int disp)
 
void emit_mov_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_mov_imm_reg (codegendata *cd, s8 imm, s8 reg)
 
void emit_movl_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movl_imm_reg (codegendata *cd, s8 imm, s8 reg)
 
void emit_mov_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 reg)
 
void emit_mov_membase32_reg (codegendata *cd, s8 basereg, s8 disp, s8 reg)
 
void emit_movl_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 reg)
 
void emit_movl_membase32_reg (codegendata *cd, s8 basereg, s8 disp, s8 reg)
 
void emit_mov_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_mov_reg_membase32 (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movl_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movl_reg_membase32 (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_mov_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 reg)
 
void emit_movl_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 reg)
 
void emit_mov_reg_memindex (codegendata *cd, s8 reg, s8 disp, s8 basereg, s8 indexreg, s8 scale)
 
void emit_movl_reg_memindex (codegendata *cd, s8 reg, s8 disp, s8 basereg, s8 indexreg, s8 scale)
 
void emit_movw_reg_memindex (codegendata *cd, s8 reg, s8 disp, s8 basereg, s8 indexreg, s8 scale)
 
void emit_movb_reg_memindex (codegendata *cd, s8 reg, s8 disp, s8 basereg, s8 indexreg, s8 scale)
 
void emit_mov_imm_membase (codegendata *cd, s8 imm, s8 basereg, s8 disp)
 
void emit_mov_imm_membase32 (codegendata *cd, s8 imm, s8 basereg, s8 disp)
 
void emit_movl_imm_membase (codegendata *cd, s8 imm, s8 basereg, s8 disp)
 
void emit_movl_imm_membase32 (codegendata *cd, s8 imm, s8 basereg, s8 disp)
 
void emit_movsbq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movswq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movslq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movzbq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movzwq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movswq_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 reg)
 
void emit_movsbq_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 reg)
 
void emit_movzwq_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 reg)
 
void emit_mov_imm_memindex (codegendata *cd, s4 imm, s4 disp, s4 basereg, s4 indexreg, s4 scale)
 
void emit_movl_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_mov_mem_reg (codegendata *cd, s4 disp, s4 dreg)
 
void emit_alu_reg_reg (codegendata *cd, s8 opc, s8 reg, s8 dreg)
 
void emit_alul_reg_reg (codegendata *cd, s8 opc, s8 reg, s8 dreg)
 
void emit_alu_reg_membase (codegendata *cd, s8 opc, s8 reg, s8 basereg, s8 disp)
 
void emit_alul_reg_membase (codegendata *cd, s8 opc, s8 reg, s8 basereg, s8 disp)
 
void emit_alu_membase_reg (codegendata *cd, s8 opc, s8 basereg, s8 disp, s8 reg)
 
void emit_alul_membase_reg (codegendata *cd, s8 opc, s8 basereg, s8 disp, s8 reg)
 
void emit_alu_imm_reg (codegendata *cd, s8 opc, s8 imm, s8 dreg)
 
void emit_alu_imm32_reg (codegendata *cd, s4 opc, s4 imm, s4 dreg)
 
void emit_alul_imm32_reg (codegendata *cd, s4 opc, s4 imm, s4 dreg)
 
void emit_alul_imm_reg (codegendata *cd, s8 opc, s8 imm, s8 dreg)
 
void emit_alu_imm_membase (codegendata *cd, s8 opc, s8 imm, s8 basereg, s8 disp)
 
void emit_alul_imm_membase (codegendata *cd, s8 opc, s8 imm, s8 basereg, s8 disp)
 
void emit_alu_memindex_reg (codegendata *cd, s8 opc, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 reg)
 
void emit_alul_memindex_reg (codegendata *cd, s8 opc, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 reg)
 
void emit_test_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_testl_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_test_imm_reg (codegendata *cd, s8 imm, s8 reg)
 
void emit_testw_imm_reg (codegendata *cd, s8 imm, s8 reg)
 
void emit_testb_imm_reg (codegendata *cd, s8 imm, s8 reg)
 
void emit_lea_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 reg)
 
void emit_leal_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 reg)
 
void emit_incl_reg (codegendata *cd, s8 reg)
 
void emit_incq_reg (codegendata *cd, s8 reg)
 
void emit_incl_membase (codegendata *cd, s8 basereg, s8 disp)
 
void emit_incq_membase (codegendata *cd, s8 basereg, s8 disp)
 
void emit_cltd (codegendata *cd)
 
void emit_cqto (codegendata *cd)
 
void emit_imul_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_imull_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_imul_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_imull_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_imul_imm_reg (codegendata *cd, s8 imm, s8 dreg)
 
void emit_imul_imm_reg_reg (codegendata *cd, s8 imm, s8 reg, s8 dreg)
 
void emit_imull_imm_reg_reg (codegendata *cd, s8 imm, s8 reg, s8 dreg)
 
void emit_imul_imm_membase_reg (codegendata *cd, s8 imm, s8 basereg, s8 disp, s8 dreg)
 
void emit_imull_imm_membase_reg (codegendata *cd, s8 imm, s8 basereg, s8 disp, s8 dreg)
 
void emit_idiv_reg (codegendata *cd, s8 reg)
 
void emit_idivl_reg (codegendata *cd, s8 reg)
 
void emit_shift_reg (codegendata *cd, s8 opc, s8 reg)
 
void emit_shiftl_reg (codegendata *cd, s8 opc, s8 reg)
 
void emit_shift_membase (codegendata *cd, s8 opc, s8 basereg, s8 disp)
 
void emit_shiftl_membase (codegendata *cd, s8 opc, s8 basereg, s8 disp)
 
void emit_shift_imm_reg (codegendata *cd, s8 opc, s8 imm, s8 dreg)
 
void emit_shiftl_imm_reg (codegendata *cd, s8 opc, s8 imm, s8 dreg)
 
void emit_shift_imm_membase (codegendata *cd, s8 opc, s8 imm, s8 basereg, s8 disp)
 
void emit_shiftl_imm_membase (codegendata *cd, s8 opc, s8 imm, s8 basereg, s8 disp)
 
void emit_jmp_imm (codegendata *cd, s8 imm)
 
void emit_jmp_imm2 (codegendata *cd, s8 imm)
 
void emit_jmp_reg (codegendata *cd, s8 reg)
 
void emit_jcc (codegendata *cd, s8 opc, s8 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_cmovcc_reg_reg (codegendata *cd, s4 opc, s4 reg, s4 dreg)
 
void emit_cmovccl_reg_reg (codegendata *cd, s4 opc, s4 reg, s4 dreg)
 
void emit_neg_reg (codegendata *cd, s8 reg)
 
void emit_negl_reg (codegendata *cd, s8 reg)
 
void emit_push_reg (codegendata *cd, s8 reg)
 
void emit_push_imm (codegendata *cd, s8 imm)
 
void emit_pop_reg (codegendata *cd, s8 reg)
 
void emit_xchg_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_call_reg (codegendata *cd, s8 reg)
 
void emit_call_imm (codegendata *cd, s8 imm)
 
void emit_call_mem (codegendata *cd, ptrint mem)
 
void emit_addsd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_addss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvtsi2ssq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvtsi2ss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvtsi2sdq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvtsi2sd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvtss2sd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvtsd2ss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvttss2siq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvttss2si_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvttsd2siq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_cvttsd2si_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_divss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_divsd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movd_reg_freg (codegendata *cd, s8 reg, s8 freg)
 
void emit_movd_freg_reg (codegendata *cd, s8 freg, s8 reg)
 
void emit_movd_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movd_reg_memindex (codegendata *cd, s8 reg, s8 disp, s8 basereg, s8 indexreg, s8 scale)
 
void emit_movd_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movdl_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movd_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 dreg)
 
void emit_movq_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movq_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movq_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movsd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_movss_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movss_reg_membase32 (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movsd_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movsd_reg_membase32 (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movss_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movss_membase32_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movlps_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movlps_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movsd_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movsd_membase32_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movlpd_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_movlpd_reg_membase (codegendata *cd, s8 reg, s8 basereg, s8 disp)
 
void emit_movss_reg_memindex (codegendata *cd, s8 reg, s8 disp, s8 basereg, s8 indexreg, s8 scale)
 
void emit_movsd_reg_memindex (codegendata *cd, s8 reg, s8 disp, s8 basereg, s8 indexreg, s8 scale)
 
void emit_movss_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 dreg)
 
void emit_movsd_memindex_reg (codegendata *cd, s8 disp, s8 basereg, s8 indexreg, s8 scale, s8 dreg)
 
void emit_mulss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_mulsd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_subss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_subsd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_ucomiss_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_ucomisd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_xorps_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_xorps_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_xorpd_reg_reg (codegendata *cd, s8 reg, s8 dreg)
 
void emit_xorpd_membase_reg (codegendata *cd, s8 basereg, s8 disp, s8 dreg)
 
void emit_rdtsc (codegendata *cd)
 
void emit_mfence (codegendata *cd)
 

Function Documentation

void emit_abstractmethoderror_trap ( codegendata cd)

Definition at line 447 of file emit.cpp.

void emit_addsd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2208 of file emit.cpp.

void emit_addss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2217 of file emit.cpp.

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

Definition at line 1682 of file emit.cpp.

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

Definition at line 1715 of file emit.cpp.

void emit_alu_imm_reg ( codegendata cd,
s8  opc,
s8  imm,
s8  dreg 
)

Definition at line 1667 of file emit.cpp.

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

Definition at line 1651 of file emit.cpp.

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

Definition at line 1744 of file emit.cpp.

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

Definition at line 1635 of file emit.cpp.

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

Definition at line 1619 of file emit.cpp.

void emit_alul_imm32_reg ( codegendata cd,
s4  opc,
s4  imm,
s4  dreg 
)

Definition at line 1691 of file emit.cpp.

void emit_alul_imm_membase ( codegendata cd,
s8  opc,
s8  imm,
s8  basereg,
s8  disp 
)

Definition at line 1730 of file emit.cpp.

void emit_alul_imm_reg ( codegendata cd,
s8  opc,
s8  imm,
s8  dreg 
)

Definition at line 1700 of file emit.cpp.

void emit_alul_membase_reg ( codegendata cd,
s8  opc,
s8  basereg,
s8  disp,
s8  reg 
)

Definition at line 1659 of file emit.cpp.

void emit_alul_memindex_reg ( codegendata cd,
s8  opc,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  reg 
)

Definition at line 1751 of file emit.cpp.

void emit_alul_reg_membase ( codegendata cd,
s8  opc,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 1643 of file emit.cpp.

void emit_alul_reg_reg ( codegendata cd,
s8  opc,
s8  reg,
s8  dreg 
)

Definition at line 1627 of file emit.cpp.

void emit_arbitrary_nop ( codegendata cd,
int  disp 
)

Definition at line 1314 of file emit.cpp.

void emit_arithmetic_check ( codegendata cd,
instruction iptr,
s4  reg 
)

Definition at line 327 of file emit.cpp.

void emit_arrayindexoutofbounds_check ( codegendata cd,
instruction iptr,
s4  s1,
s4  s2 
)

Definition at line 343 of file emit.cpp.

void emit_arraystore_check ( codegendata cd,
instruction iptr 
)

Definition at line 360 of file emit.cpp.

void emit_branch ( codegendata cd,
s4  disp,
s4  condition,
s4  reg,
u4  options 
)

Definition at line 261 of file emit.cpp.

void emit_call_imm ( codegendata cd,
s8  imm 
)

Definition at line 2190 of file emit.cpp.

void emit_call_mem ( codegendata cd,
ptrint  mem 
)

Definition at line 2197 of file emit.cpp.

void emit_call_reg ( codegendata cd,
s8  reg 
)

Definition at line 2182 of file emit.cpp.

void emit_classcast_check ( codegendata cd,
instruction iptr,
s4  condition,
s4  reg,
s4  s1 
)

Definition at line 376 of file emit.cpp.

void emit_cltd ( codegendata cd)

Definition at line 1837 of file emit.cpp.

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

Definition at line 2119 of file emit.cpp.

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

Definition at line 2128 of file emit.cpp.

void emit_cmovxx ( codegendata cd,
instruction iptr,
s4  s,
s4  d 
)

Definition at line 218 of file emit.cpp.

void emit_copy ( jitdata jd,
instruction iptr 
)

Definition at line 159 of file emit.cpp.

void emit_cqto ( codegendata cd)

Definition at line 1842 of file emit.cpp.

void emit_cvtsd2ss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2271 of file emit.cpp.

void emit_cvtsi2sd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2253 of file emit.cpp.

void emit_cvtsi2sdq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2244 of file emit.cpp.

void emit_cvtsi2ss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2235 of file emit.cpp.

void emit_cvtsi2ssq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2226 of file emit.cpp.

void emit_cvtss2sd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2262 of file emit.cpp.

void emit_cvttsd2si_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2307 of file emit.cpp.

void emit_cvttsd2siq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2298 of file emit.cpp.

void emit_cvttss2si_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2289 of file emit.cpp.

void emit_cvttss2siq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2280 of file emit.cpp.

void emit_divsd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2325 of file emit.cpp.

void emit_divss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2316 of file emit.cpp.

void emit_exception_check ( codegendata cd,
instruction iptr 
)

Definition at line 426 of file emit.cpp.

void emit_fastpath_monitor_enter ( jitdata jd,
instruction iptr,
int  d 
)

Generates fast-path code for the below builtin.

Function: LOCK_monitor_enter Signature: (Ljava/lang/Object;)V Slow-path: bool lock_monitor_enter(java_handle_t*);

Definition at line 496 of file emit.cpp.

void emit_fastpath_monitor_exit ( jitdata jd,
instruction iptr,
int  d 
)

Generates fast-path code for the below builtin.

Function: LOCK_monitor_exit Signature: (Ljava/lang/Object;)V Slow-path: bool lock_monitor_exit(java_handle_t*);

Definition at line 512 of file emit.cpp.

void emit_icmp_imm ( codegendata cd,
int  reg,
int32_t  value 
)

Emits code updating the condition register by comparing one integer register to an immediate integer value.

Definition at line 249 of file emit.cpp.

void emit_idiv_reg ( codegendata cd,
s8  reg 
)

Definition at line 1956 of file emit.cpp.

void emit_idivl_reg ( codegendata cd,
s8  reg 
)

Definition at line 1963 of file emit.cpp.

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

Definition at line 1926 of file emit.cpp.

void emit_imul_imm_reg ( codegendata cd,
s8  imm,
s8  dreg 
)

Definition at line 1881 of file emit.cpp.

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

Definition at line 1896 of file emit.cpp.

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

Definition at line 1865 of file emit.cpp.

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

Definition at line 1849 of file emit.cpp.

void emit_imull_imm_membase_reg ( codegendata cd,
s8  imm,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 1941 of file emit.cpp.

void emit_imull_imm_reg_reg ( codegendata cd,
s8  imm,
s8  reg,
s8  dreg 
)

Definition at line 1911 of file emit.cpp.

void emit_imull_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 1873 of file emit.cpp.

void emit_imull_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1857 of file emit.cpp.

void emit_incl_membase ( codegendata cd,
s8  basereg,
s8  disp 
)

Definition at line 1821 of file emit.cpp.

void emit_incl_reg ( codegendata cd,
s8  reg 
)

Definition at line 1808 of file emit.cpp.

void emit_incq_membase ( codegendata cd,
s8  basereg,
s8  disp 
)

Definition at line 1828 of file emit.cpp.

void emit_incq_reg ( codegendata cd,
s8  reg 
)

Definition at line 1814 of file emit.cpp.

void emit_ishift ( jitdata jd,
s4  shift_op,
instruction iptr 
)

Definition at line 988 of file emit.cpp.

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

Definition at line 2087 of file emit.cpp.

void emit_jmp_imm ( codegendata cd,
s8  imm 
)

Definition at line 2062 of file emit.cpp.

void emit_jmp_imm2 ( codegendata cd,
s8  imm 
)

Definition at line 2068 of file emit.cpp.

void emit_jmp_reg ( codegendata cd,
s8  reg 
)

Definition at line 2080 of file emit.cpp.

void emit_lea_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  reg 
)

Definition at line 1794 of file emit.cpp.

void emit_leal_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  reg 
)

Definition at line 1801 of file emit.cpp.

s4 emit_load ( jitdata jd,
instruction iptr,
varinfo src,
s4  tempreg 
)

Definition at line 67 of file emit.cpp.

void emit_lshift ( jitdata jd,
s4  shift_op,
instruction iptr 
)

Definition at line 1115 of file emit.cpp.

static void emit_membase ( codegendata cd,
s4  basereg,
s4  disp,
s4  dreg 
)
static

Definition at line 912 of file emit.cpp.

static void emit_membase32 ( codegendata cd,
s4  basereg,
s4  disp,
s4  dreg 
)
static

Definition at line 950 of file emit.cpp.

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

Definition at line 964 of file emit.cpp.

void emit_mfence ( codegendata cd)

Definition at line 2691 of file emit.cpp.

void emit_monitor_enter ( jitdata jd,
int32_t  syncslot_offset 
)

Generates synchronization code to enter a monitor.

Definition at line 525 of file emit.cpp.

void emit_monitor_exit ( jitdata jd,
int32_t  syncslot_offset 
)

Generates synchronization code to leave a monitor.

Definition at line 578 of file emit.cpp.

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

Definition at line 1463 of file emit.cpp.

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

Definition at line 1471 of file emit.cpp.

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

Definition at line 1570 of file emit.cpp.

void emit_mov_imm_reg ( codegendata cd,
s8  imm,
s8  reg 
)

Definition at line 1331 of file emit.cpp.

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

Definition at line 1607 of file emit.cpp.

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

Definition at line 1365 of file emit.cpp.

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

Definition at line 1354 of file emit.cpp.

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

Definition at line 1420 of file emit.cpp.

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

Definition at line 1390 of file emit.cpp.

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

Definition at line 1397 of file emit.cpp.

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

Definition at line 1434 of file emit.cpp.

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

Definition at line 1323 of file emit.cpp.

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

Definition at line 1598 of file emit.cpp.

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

Definition at line 1456 of file emit.cpp.

void emit_movd_freg_reg ( codegendata cd,
s8  freg,
s8  reg 
)

Definition at line 2343 of file emit.cpp.

void emit_movd_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2370 of file emit.cpp.

void emit_movd_memindex_reg ( codegendata cd,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  dreg 
)

Definition at line 2388 of file emit.cpp.

void emit_movd_reg_freg ( codegendata cd,
s8  reg,
s8  freg 
)

Definition at line 2334 of file emit.cpp.

void emit_movd_reg_membase ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2352 of file emit.cpp.

void emit_movd_reg_memindex ( codegendata cd,
s8  reg,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale 
)

Definition at line 2361 of file emit.cpp.

void emit_movdl_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2379 of file emit.cpp.

void emit_movl_imm_membase ( codegendata cd,
s8  imm,
s8  basereg,
s8  disp 
)

Definition at line 1479 of file emit.cpp.

void emit_movl_imm_membase32 ( codegendata cd,
s8  imm,
s8  basereg,
s8  disp 
)

Definition at line 1489 of file emit.cpp.

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

Definition at line 1579 of file emit.cpp.

void emit_movl_imm_reg ( codegendata cd,
s8  imm,
s8  reg 
)

Definition at line 1347 of file emit.cpp.

void emit_movl_membase32_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  reg 
)

Definition at line 1382 of file emit.cpp.

void emit_movl_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  reg 
)

Definition at line 1372 of file emit.cpp.

void emit_movl_memindex_reg ( codegendata cd,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  reg 
)

Definition at line 1427 of file emit.cpp.

void emit_movl_reg_membase ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 1404 of file emit.cpp.

void emit_movl_reg_membase32 ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 1413 of file emit.cpp.

void emit_movl_reg_memindex ( codegendata cd,
s8  reg,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale 
)

Definition at line 1441 of file emit.cpp.

void emit_movl_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1339 of file emit.cpp.

void emit_movlpd_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2540 of file emit.cpp.

void emit_movlpd_reg_membase ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2550 of file emit.cpp.

void emit_movlps_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2502 of file emit.cpp.

void emit_movlps_reg_membase ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2511 of file emit.cpp.

void emit_movq_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2415 of file emit.cpp.

void emit_movq_reg_membase ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2406 of file emit.cpp.

void emit_movq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2397 of file emit.cpp.

void emit_movsbq_memindex_reg ( codegendata cd,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  reg 
)

Definition at line 1554 of file emit.cpp.

void emit_movsbq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1497 of file emit.cpp.

void emit_movsd_membase32_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2531 of file emit.cpp.

void emit_movsd_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2520 of file emit.cpp.

void emit_movsd_memindex_reg ( codegendata cd,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  dreg 
)

Definition at line 2587 of file emit.cpp.

void emit_movsd_reg_membase ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2462 of file emit.cpp.

void emit_movsd_reg_membase32 ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2473 of file emit.cpp.

void emit_movsd_reg_memindex ( codegendata cd,
s8  reg,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale 
)

Definition at line 2569 of file emit.cpp.

void emit_movsd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2433 of file emit.cpp.

void emit_movslq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1517 of file emit.cpp.

void emit_movss_membase32_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2493 of file emit.cpp.

void emit_movss_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2482 of file emit.cpp.

void emit_movss_memindex_reg ( codegendata cd,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  dreg 
)

Definition at line 2578 of file emit.cpp.

void emit_movss_reg_membase ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2442 of file emit.cpp.

void emit_movss_reg_membase32 ( codegendata cd,
s8  reg,
s8  basereg,
s8  disp 
)

Definition at line 2453 of file emit.cpp.

void emit_movss_reg_memindex ( codegendata cd,
s8  reg,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale 
)

Definition at line 2560 of file emit.cpp.

void emit_movss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2424 of file emit.cpp.

void emit_movswq_memindex_reg ( codegendata cd,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  reg 
)

Definition at line 1546 of file emit.cpp.

void emit_movswq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1507 of file emit.cpp.

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

Definition at line 1588 of file emit.cpp.

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

Definition at line 1448 of file emit.cpp.

void emit_movzbq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1526 of file emit.cpp.

void emit_movzwq_memindex_reg ( codegendata cd,
s8  disp,
s8  basereg,
s8  indexreg,
s8  scale,
s8  reg 
)

Definition at line 1562 of file emit.cpp.

void emit_movzwq_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1536 of file emit.cpp.

void emit_mulsd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2605 of file emit.cpp.

void emit_mulss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2596 of file emit.cpp.

void emit_neg_reg ( codegendata cd,
s8  reg 
)

Definition at line 2137 of file emit.cpp.

void emit_negl_reg ( codegendata cd,
s8  reg 
)

Definition at line 2145 of file emit.cpp.

void emit_nop ( codegendata cd,
int  length 
)

Definition at line 1244 of file emit.cpp.

void emit_nullpointer_check ( codegendata cd,
instruction iptr,
s4  reg 
)

Definition at line 410 of file emit.cpp.

void emit_patcher_alignment ( codegendata cd)

Definition at line 459 of file emit.cpp.

void emit_pop_reg ( codegendata cd,
s8  reg 
)

Definition at line 2165 of file emit.cpp.

void emit_push_imm ( codegendata cd,
s8  imm 
)

Definition at line 2159 of file emit.cpp.

void emit_push_reg ( codegendata cd,
s8  reg 
)

Definition at line 2153 of file emit.cpp.

void emit_rdtsc ( codegendata cd)

Definition at line 2685 of file emit.cpp.

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

Definition at line 2110 of file emit.cpp.

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

Definition at line 2100 of file emit.cpp.

void emit_shift_imm_membase ( codegendata cd,
s8  opc,
s8  imm,
s8  basereg,
s8  disp 
)

Definition at line 2030 of file emit.cpp.

void emit_shift_imm_reg ( codegendata cd,
s8  opc,
s8  imm,
s8  dreg 
)

Definition at line 2002 of file emit.cpp.

void emit_shift_membase ( codegendata cd,
s8  opc,
s8  basereg,
s8  disp 
)

Definition at line 1988 of file emit.cpp.

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

Definition at line 1974 of file emit.cpp.

void emit_shiftl_imm_membase ( codegendata cd,
s8  opc,
s8  imm,
s8  basereg,
s8  disp 
)

Definition at line 2044 of file emit.cpp.

void emit_shiftl_imm_reg ( codegendata cd,
s8  opc,
s8  imm,
s8  dreg 
)

Definition at line 2016 of file emit.cpp.

void emit_shiftl_membase ( codegendata cd,
s8  opc,
s8  basereg,
s8  disp 
)

Definition at line 1995 of file emit.cpp.

void emit_shiftl_reg ( codegendata cd,
s8  opc,
s8  reg 
)

Definition at line 1981 of file emit.cpp.

void emit_store ( jitdata jd,
instruction iptr,
varinfo dst,
s4  d 
)

Definition at line 119 of file emit.cpp.

void emit_subsd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2623 of file emit.cpp.

void emit_subss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2614 of file emit.cpp.

void emit_test_imm_reg ( codegendata cd,
s8  imm,
s8  reg 
)

Definition at line 1772 of file emit.cpp.

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

Definition at line 1758 of file emit.cpp.

void emit_testb_imm_reg ( codegendata cd,
s8  imm,
s8  reg 
)

Definition at line 1787 of file emit.cpp.

void emit_testl_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 1765 of file emit.cpp.

void emit_testw_imm_reg ( codegendata cd,
s8  imm,
s8  reg 
)

Definition at line 1779 of file emit.cpp.

uint32_t emit_trap ( codegendata cd)

Definition at line 472 of file emit.cpp.

void emit_trap_compiler ( codegendata cd)

Definition at line 442 of file emit.cpp.

void emit_ucomisd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2640 of file emit.cpp.

void emit_ucomiss_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2632 of file emit.cpp.

void emit_verbosecall_enter ( jitdata jd)

Emit profiling code for method frequency counting.

Emit profiling code for basicblock frequency counting. Emit profiling code to start CPU cycle counting. Emit profiling code to stop CPU cycle counting.

Definition at line 702 of file emit.cpp.

void emit_verbosecall_exit ( jitdata jd)

Definition at line 834 of file emit.cpp.

void emit_xchg_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2171 of file emit.cpp.

void emit_xorpd_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2674 of file emit.cpp.

void emit_xorpd_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2665 of file emit.cpp.

void emit_xorps_membase_reg ( codegendata cd,
s8  basereg,
s8  disp,
s8  dreg 
)

Definition at line 2657 of file emit.cpp.

void emit_xorps_reg_reg ( codegendata cd,
s8  reg,
s8  dreg 
)

Definition at line 2649 of file emit.cpp.