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

Function Documentation

void emit_abstractmethoderror_trap ( codegendata cd)

Definition at line 552 of file emit.cpp.

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

Definition at line 1274 of file emit.cpp.

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

Definition at line 1296 of file emit.cpp.

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

Definition at line 1282 of file emit.cpp.

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

Definition at line 1260 of file emit.cpp.

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

Definition at line 1253 of file emit.cpp.

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

Definition at line 1309 of file emit.cpp.

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

Definition at line 1246 of file emit.cpp.

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

Definition at line 1239 of file emit.cpp.

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

Definition at line 432 of file emit.cpp.

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

Definition at line 448 of file emit.cpp.

void emit_arraystore_check ( codegendata cd,
instruction iptr 
)

Definition at line 465 of file emit.cpp.

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

Definition at line 366 of file emit.cpp.

void emit_call_imm ( codegendata cd,
s4  imm 
)

Definition at line 1598 of file emit.cpp.

void emit_call_reg ( codegendata cd,
s4  reg 
)

Definition at line 1591 of file emit.cpp.

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

Definition at line 481 of file emit.cpp.

void emit_copy ( jitdata jd,
instruction iptr 
)

Definition at line 281 of file emit.cpp.

void emit_dec_mem ( codegendata cd,
s4  mem 
)

Definition at line 1340 of file emit.cpp.

void emit_exception_check ( codegendata cd,
instruction iptr 
)

Definition at line 531 of file emit.cpp.

void emit_fadd_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1847 of file emit.cpp.

void emit_fadd_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1854 of file emit.cpp.

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

Definition at line 1875 of file emit.cpp.

void emit_faddp ( codegendata cd)

Definition at line 1840 of file emit.cpp.

void emit_faddp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1861 of file emit.cpp.

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

Definition at line 1868 of file emit.cpp.

void emit_fchs ( codegendata cd)

Definition at line 1833 of file emit.cpp.

void emit_fdecstp ( codegendata cd)

Definition at line 2098 of file emit.cpp.

void emit_fdiv_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1966 of file emit.cpp.

void emit_fdiv_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1973 of file emit.cpp.

void emit_fdivp ( codegendata cd)

Definition at line 1980 of file emit.cpp.

void emit_fdivp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1987 of file emit.cpp.

void emit_ffree_reg ( codegendata cd,
s4  reg 
)

Definition at line 2091 of file emit.cpp.

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

Definition at line 1693 of file emit.cpp.

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

Definition at line 1700 of file emit.cpp.

void emit_fincstp ( codegendata cd)

Definition at line 2105 of file emit.cpp.

void emit_finit ( codegendata cd)

Definition at line 2063 of file emit.cpp.

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

Definition at line 1812 of file emit.cpp.

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

Definition at line 1819 of file emit.cpp.

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

Definition at line 1826 of file emit.cpp.

void emit_fld1 ( codegendata cd)

Definition at line 1609 of file emit.cpp.

void emit_fld_reg ( codegendata cd,
s4  reg 
)

Definition at line 1623 of file emit.cpp.

void emit_fldcw_mem ( codegendata cd,
s4  mem 
)

Definition at line 2071 of file emit.cpp.

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

Definition at line 2078 of file emit.cpp.

void emit_fldl_mem ( codegendata cd,
s4  mem 
)

Definition at line 1686 of file emit.cpp.

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

Definition at line 1644 of file emit.cpp.

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

Definition at line 1651 of file emit.cpp.

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

Definition at line 1672 of file emit.cpp.

void emit_flds_mem ( codegendata cd,
s4  mem 
)

Definition at line 1679 of file emit.cpp.

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

Definition at line 1630 of file emit.cpp.

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

Definition at line 1637 of file emit.cpp.

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

Definition at line 1665 of file emit.cpp.

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

Definition at line 1658 of file emit.cpp.

void emit_fldz ( codegendata cd)

Definition at line 1616 of file emit.cpp.

void emit_fmul_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1924 of file emit.cpp.

void emit_fmul_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1931 of file emit.cpp.

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

Definition at line 1959 of file emit.cpp.

void emit_fmulp ( codegendata cd)

Definition at line 1938 of file emit.cpp.

void emit_fmulp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1945 of file emit.cpp.

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

Definition at line 1952 of file emit.cpp.

void emit_fnstsw ( codegendata cd)

Definition at line 2050 of file emit.cpp.

void emit_fprem ( codegendata cd)

Definition at line 2008 of file emit.cpp.

void emit_fprem1 ( codegendata cd)

Definition at line 2015 of file emit.cpp.

void emit_fst_reg ( codegendata cd,
s4  reg 
)

Definition at line 1707 of file emit.cpp.

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

Definition at line 1721 of file emit.cpp.

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

Definition at line 1735 of file emit.cpp.

void emit_fstp_reg ( codegendata cd,
s4  reg 
)

Definition at line 1742 of file emit.cpp.

void emit_fstpl_mem ( codegendata cd,
s4  mem 
)

Definition at line 1805 of file emit.cpp.

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

Definition at line 1763 of file emit.cpp.

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

Definition at line 1770 of file emit.cpp.

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

Definition at line 1791 of file emit.cpp.

void emit_fstps_mem ( codegendata cd,
s4  mem 
)

Definition at line 1798 of file emit.cpp.

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

Definition at line 1749 of file emit.cpp.

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

Definition at line 1756 of file emit.cpp.

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

Definition at line 1784 of file emit.cpp.

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

Definition at line 1777 of file emit.cpp.

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

Definition at line 1714 of file emit.cpp.

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

Definition at line 1728 of file emit.cpp.

void emit_fsub_reg_st ( codegendata cd,
s4  reg 
)

Definition at line 1882 of file emit.cpp.

void emit_fsub_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1889 of file emit.cpp.

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

Definition at line 1917 of file emit.cpp.

void emit_fsubp ( codegendata cd)

Definition at line 1903 of file emit.cpp.

void emit_fsubp_st_reg ( codegendata cd,
s4  reg 
)

Definition at line 1896 of file emit.cpp.

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

Definition at line 1910 of file emit.cpp.

void emit_fucom ( codegendata cd)

Definition at line 2022 of file emit.cpp.

void emit_fucom_reg ( codegendata cd,
s4  reg 
)

Definition at line 2029 of file emit.cpp.

void emit_fucomp_reg ( codegendata cd,
s4  reg 
)

Definition at line 2036 of file emit.cpp.

void emit_fucompp ( codegendata cd)

Definition at line 2043 of file emit.cpp.

void emit_fxch ( codegendata cd)

Definition at line 1994 of file emit.cpp.

void emit_fxch_reg ( codegendata cd,
s4  reg 
)

Definition at line 2001 of file emit.cpp.

void emit_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 354 of file emit.cpp.

void emit_idiv_reg ( codegendata cd,
s4  reg 
)

Definition at line 1419 of file emit.cpp.

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

Definition at line 1391 of file emit.cpp.

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

Definition at line 1363 of file emit.cpp.

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

Definition at line 1377 of file emit.cpp.

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

Definition at line 1355 of file emit.cpp.

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

Definition at line 1347 of file emit.cpp.

void emit_inc_reg ( codegendata cd,
s4  reg 
)

Definition at line 1334 of file emit.cpp.

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

Definition at line 1518 of file emit.cpp.

void emit_jmp_imm ( codegendata cd,
s4  imm 
)

Definition at line 1504 of file emit.cpp.

void emit_jmp_reg ( codegendata cd,
s4  reg 
)

Definition at line 1511 of file emit.cpp.

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

Definition at line 73 of file emit.cpp.

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

Definition at line 157 of file emit.cpp.

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

Definition at line 122 of file emit.cpp.

void emit_lock ( codegendata cd)

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

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

Definition at line 975 of file emit.cpp.

void emit_monitor_enter ( jitdata jd,
int32_t  syncslot_offset 
)

Generates synchronization code to enter a monitor.

Definition at line 615 of file emit.cpp.

void emit_monitor_exit ( jitdata jd,
int32_t  syncslot_offset 
)

Generates synchronization code to leave a monitor.

Definition at line 645 of file emit.cpp.

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

Definition at line 1016 of file emit.cpp.

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

Definition at line 1118 of file emit.cpp.

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

Definition at line 1126 of file emit.cpp.

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

Definition at line 1134 of file emit.cpp.

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

Definition at line 1211 of file emit.cpp.

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

Definition at line 1009 of file emit.cpp.

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

Definition at line 1110 of file emit.cpp.

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

Definition at line 1045 of file emit.cpp.

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

Definition at line 1033 of file emit.cpp.

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

Definition at line 1069 of file emit.cpp.

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

Definition at line 1102 of file emit.cpp.

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

Definition at line 1053 of file emit.cpp.

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

Definition at line 1061 of file emit.cpp.

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

Definition at line 1077 of file emit.cpp.

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

Definition at line 1001 of file emit.cpp.

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

Definition at line 1142 of file emit.cpp.

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

Definition at line 1228 of file emit.cpp.

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

Definition at line 1025 of file emit.cpp.

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

Definition at line 1094 of file emit.cpp.

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

Definition at line 1159 of file emit.cpp.

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

Definition at line 1150 of file emit.cpp.

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

Definition at line 1176 of file emit.cpp.

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

Definition at line 1168 of file emit.cpp.

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

Definition at line 1219 of file emit.cpp.

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

Definition at line 1085 of file emit.cpp.

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

Definition at line 1185 of file emit.cpp.

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

Definition at line 1202 of file emit.cpp.

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

Definition at line 1194 of file emit.cpp.

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

Definition at line 1412 of file emit.cpp.

void emit_mul_reg ( codegendata cd,
s4  reg 
)

Definition at line 1405 of file emit.cpp.

void emit_neg_reg ( codegendata cd,
s4  reg 
)

Definition at line 1555 of file emit.cpp.

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

Definition at line 515 of file emit.cpp.

void emit_patcher_alignment ( codegendata cd)

Definition at line 578 of file emit.cpp.

void emit_pop_reg ( codegendata cd,
s4  reg 
)

Definition at line 1570 of file emit.cpp.

void emit_push_imm ( codegendata cd,
s4  imm 
)

Definition at line 1563 of file emit.cpp.

void emit_push_reg ( codegendata cd,
s4  reg 
)

Definition at line 1576 of file emit.cpp.

void emit_sahf ( codegendata cd)

Definition at line 2057 of file emit.cpp.

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

Definition at line 1539 of file emit.cpp.

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

Definition at line 1530 of file emit.cpp.

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

Definition at line 1437 of file emit.cpp.

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

Definition at line 1430 of file emit.cpp.

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

Definition at line 1458 of file emit.cpp.

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

Definition at line 1467 of file emit.cpp.

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

Definition at line 1450 of file emit.cpp.

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

Definition at line 1483 of file emit.cpp.

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

Definition at line 1492 of file emit.cpp.

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

Definition at line 1475 of file emit.cpp.

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

Definition at line 191 of file emit.cpp.

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

Definition at line 258 of file emit.cpp.

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

Definition at line 234 of file emit.cpp.

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

Definition at line 1322 of file emit.cpp.

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

Definition at line 1315 of file emit.cpp.

uint32_t emit_trap ( codegendata cd)

Definition at line 591 of file emit.cpp.

void emit_trap_compiler ( codegendata cd)

Definition at line 547 of file emit.cpp.

void emit_trap_countdown ( codegendata cd,
s4 counter 
)

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

void emit_verbosecall_exit ( jitdata jd)

Definition at line 846 of file emit.cpp.

void emit_wait ( codegendata cd)

Definition at line 2085 of file emit.cpp.

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

Definition at line 1547 of file emit.cpp.