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_trap_countdown (codegendata *cd, s4 *counter)
 
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, bool lock)
 
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 2229 of file emit.cpp.

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

Definition at line 2238 of file emit.cpp.

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

Definition at line 1699 of file emit.cpp.

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

Definition at line 1732 of file emit.cpp.

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

Definition at line 1684 of file emit.cpp.

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

Definition at line 1668 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 1765 of file emit.cpp.

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

Definition at line 1652 of file emit.cpp.

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

Definition at line 1636 of file emit.cpp.

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

Definition at line 1708 of file emit.cpp.

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

Definition at line 1747 of file emit.cpp.

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

Definition at line 1717 of file emit.cpp.

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

Definition at line 1676 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 1772 of file emit.cpp.

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

Definition at line 1660 of file emit.cpp.

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

Definition at line 1644 of file emit.cpp.

void emit_arbitrary_nop ( codegendata cd,
int  disp 
)

Definition at line 1331 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 2211 of file emit.cpp.

void emit_call_mem ( codegendata cd,
ptrint  mem 
)

Definition at line 2218 of file emit.cpp.

void emit_call_reg ( codegendata cd,
s8  reg 
)

Definition at line 2203 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 1858 of file emit.cpp.

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

Definition at line 2140 of file emit.cpp.

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

Definition at line 2149 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 1863 of file emit.cpp.

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

Definition at line 2292 of file emit.cpp.

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

Definition at line 2274 of file emit.cpp.

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

Definition at line 2265 of file emit.cpp.

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

Definition at line 2256 of file emit.cpp.

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

Definition at line 2247 of file emit.cpp.

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

Definition at line 2283 of file emit.cpp.

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

Definition at line 2328 of file emit.cpp.

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

Definition at line 2319 of file emit.cpp.

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

Definition at line 2310 of file emit.cpp.

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

Definition at line 2301 of file emit.cpp.

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

Definition at line 2346 of file emit.cpp.

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

Definition at line 2337 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 513 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 529 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 1977 of file emit.cpp.

void emit_idivl_reg ( codegendata cd,
s8  reg 
)

Definition at line 1984 of file emit.cpp.

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

Definition at line 1947 of file emit.cpp.

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

Definition at line 1902 of file emit.cpp.

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

Definition at line 1917 of file emit.cpp.

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

Definition at line 1886 of file emit.cpp.

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

Definition at line 1870 of file emit.cpp.

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

Definition at line 1962 of file emit.cpp.

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

Definition at line 1932 of file emit.cpp.

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

Definition at line 1894 of file emit.cpp.

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

Definition at line 1878 of file emit.cpp.

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

Definition at line 1842 of file emit.cpp.

void emit_incl_reg ( codegendata cd,
s8  reg 
)

Definition at line 1829 of file emit.cpp.

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

Definition at line 1849 of file emit.cpp.

void emit_incq_reg ( codegendata cd,
s8  reg 
)

Definition at line 1835 of file emit.cpp.

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

Definition at line 1005 of file emit.cpp.

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

Definition at line 2108 of file emit.cpp.

void emit_jmp_imm ( codegendata cd,
s8  imm 
)

Definition at line 2083 of file emit.cpp.

void emit_jmp_imm2 ( codegendata cd,
s8  imm 
)

Definition at line 2089 of file emit.cpp.

void emit_jmp_reg ( codegendata cd,
s8  reg 
)

Definition at line 2101 of file emit.cpp.

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

Definition at line 1815 of file emit.cpp.

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

Definition at line 1822 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 1132 of file emit.cpp.

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

Definition at line 929 of file emit.cpp.

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

Definition at line 967 of file emit.cpp.

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

Definition at line 981 of file emit.cpp.

void emit_mfence ( codegendata cd)

Definition at line 2712 of file emit.cpp.

void emit_monitor_enter ( jitdata jd,
int32_t  syncslot_offset 
)

Generates synchronization code to enter a monitor.

Definition at line 542 of file emit.cpp.

void emit_monitor_exit ( jitdata jd,
int32_t  syncslot_offset 
)

Generates synchronization code to leave a monitor.

Definition at line 595 of file emit.cpp.

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

Definition at line 1480 of file emit.cpp.

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

Definition at line 1488 of file emit.cpp.

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

Definition at line 1587 of file emit.cpp.

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

Definition at line 1348 of file emit.cpp.

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

Definition at line 1624 of file emit.cpp.

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

Definition at line 1382 of file emit.cpp.

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

Definition at line 1371 of file emit.cpp.

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

Definition at line 1437 of file emit.cpp.

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

Definition at line 1407 of file emit.cpp.

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

Definition at line 1414 of file emit.cpp.

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

Definition at line 1451 of file emit.cpp.

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

Definition at line 1340 of file emit.cpp.

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

Definition at line 1615 of file emit.cpp.

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

Definition at line 1473 of file emit.cpp.

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

Definition at line 2364 of file emit.cpp.

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

Definition at line 2391 of file emit.cpp.

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

Definition at line 2409 of file emit.cpp.

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

Definition at line 2355 of file emit.cpp.

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

Definition at line 2373 of file emit.cpp.

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

Definition at line 2382 of file emit.cpp.

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

Definition at line 2400 of file emit.cpp.

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

Definition at line 1496 of file emit.cpp.

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

Definition at line 1506 of file emit.cpp.

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

Definition at line 1596 of file emit.cpp.

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

Definition at line 1364 of file emit.cpp.

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

Definition at line 1399 of file emit.cpp.

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

Definition at line 1389 of file emit.cpp.

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

Definition at line 1444 of file emit.cpp.

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

Definition at line 1421 of file emit.cpp.

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

Definition at line 1430 of file emit.cpp.

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

Definition at line 1458 of file emit.cpp.

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

Definition at line 1356 of file emit.cpp.

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

Definition at line 2561 of file emit.cpp.

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

Definition at line 2571 of file emit.cpp.

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

Definition at line 2523 of file emit.cpp.

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

Definition at line 2532 of file emit.cpp.

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

Definition at line 2436 of file emit.cpp.

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

Definition at line 2427 of file emit.cpp.

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

Definition at line 2418 of file emit.cpp.

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

Definition at line 1571 of file emit.cpp.

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

Definition at line 1514 of file emit.cpp.

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

Definition at line 2552 of file emit.cpp.

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

Definition at line 2541 of file emit.cpp.

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

Definition at line 2608 of file emit.cpp.

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

Definition at line 2483 of file emit.cpp.

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

Definition at line 2494 of file emit.cpp.

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

Definition at line 2590 of file emit.cpp.

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

Definition at line 2454 of file emit.cpp.

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

Definition at line 1534 of file emit.cpp.

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

Definition at line 2514 of file emit.cpp.

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

Definition at line 2503 of file emit.cpp.

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

Definition at line 2599 of file emit.cpp.

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

Definition at line 2463 of file emit.cpp.

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

Definition at line 2474 of file emit.cpp.

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

Definition at line 2581 of file emit.cpp.

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

Definition at line 2445 of file emit.cpp.

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

Definition at line 1563 of file emit.cpp.

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

Definition at line 1524 of file emit.cpp.

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

Definition at line 1605 of file emit.cpp.

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

Definition at line 1465 of file emit.cpp.

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

Definition at line 1543 of file emit.cpp.

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

Definition at line 1579 of file emit.cpp.

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

Definition at line 1553 of file emit.cpp.

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

Definition at line 2626 of file emit.cpp.

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

Definition at line 2617 of file emit.cpp.

void emit_neg_reg ( codegendata cd,
s8  reg 
)

Definition at line 2158 of file emit.cpp.

void emit_negl_reg ( codegendata cd,
s8  reg 
)

Definition at line 2166 of file emit.cpp.

void emit_nop ( codegendata cd,
int  length 
)

Definition at line 1261 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 476 of file emit.cpp.

void emit_pop_reg ( codegendata cd,
s8  reg 
)

Definition at line 2186 of file emit.cpp.

void emit_push_imm ( codegendata cd,
s8  imm 
)

Definition at line 2180 of file emit.cpp.

void emit_push_reg ( codegendata cd,
s8  reg 
)

Definition at line 2174 of file emit.cpp.

void emit_rdtsc ( codegendata cd)

Definition at line 2706 of file emit.cpp.

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

Definition at line 2131 of file emit.cpp.

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

Definition at line 2121 of file emit.cpp.

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

Definition at line 2051 of file emit.cpp.

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

Definition at line 2023 of file emit.cpp.

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

Definition at line 2009 of file emit.cpp.

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

Definition at line 1995 of file emit.cpp.

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

Definition at line 2065 of file emit.cpp.

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

Definition at line 2037 of file emit.cpp.

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

Definition at line 2016 of file emit.cpp.

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

Definition at line 2002 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 2644 of file emit.cpp.

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

Definition at line 2635 of file emit.cpp.

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

Definition at line 1793 of file emit.cpp.

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

Definition at line 1779 of file emit.cpp.

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

Definition at line 1808 of file emit.cpp.

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

Definition at line 1786 of file emit.cpp.

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

Definition at line 1800 of file emit.cpp.

uint32_t emit_trap ( codegendata cd)

Definition at line 489 of file emit.cpp.

void emit_trap_compiler ( codegendata cd)

Definition at line 442 of file emit.cpp.

void emit_trap_countdown ( codegendata cd,
s4 counter 
)

Definition at line 461 of file emit.cpp.

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

Definition at line 2661 of file emit.cpp.

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

Definition at line 2653 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 719 of file emit.cpp.

void emit_verbosecall_exit ( jitdata jd)

Definition at line 851 of file emit.cpp.

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

Definition at line 2192 of file emit.cpp.

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

Definition at line 2695 of file emit.cpp.

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

Definition at line 2686 of file emit.cpp.

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

Definition at line 2678 of file emit.cpp.

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

Definition at line 2670 of file emit.cpp.