Merged trunk and subtype.
[cacao.git] / src / vm / jit / i386 / emit.h
index 4e333cd2075e5941bad50d982da19106a2265982..a99eaeeb386c471a5b496f9b3ba67d2c9860ce0f 100644 (file)
@@ -36,7 +36,7 @@
 
 #include "vm/types.h"
 
-#include "vm/jit/codegen-common.h"
+#include "vm/jit/codegen-common.hpp"
 
 
 #define REG_AL       0
@@ -169,9 +169,11 @@ 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);
@@ -185,10 +187,11 @@ void emit_alu_imm_reg(codegendata *cd, s4 opc, s4 imm, s4 reg);
 void emit_alu_imm32_reg(codegendata *cd, s4 opc, s4 imm, s4 reg);
 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_inc_reg(codegendata *cd, s4 reg);
 void emit_test_reg_reg(codegendata *cd, s4 reg, s4 dreg);
 void emit_test_imm_reg(codegendata *cd, s4 imm, s4 dreg);
 void emit_dec_mem(codegendata *cd, s4 mem);
-void emit_cltd(codegendata *cd);
 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 reg);
@@ -196,7 +199,6 @@ 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_idiv_reg(codegendata *cd, s4 reg);
-void emit_ret(codegendata *cd);
 void emit_shift_reg(codegendata *cd, s4 opc, s4 reg);
 void emit_shift_imm_reg(codegendata *cd, s4 opc, s4 imm, s4 reg);
 void emit_shld_reg_reg(codegendata *cd, s4 reg, s4 dreg);
@@ -215,7 +217,6 @@ 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_nop(codegendata *cd);
 void emit_lock(codegendata *cd);
 void emit_call_reg(codegendata *cd, s4 reg);
 void emit_call_imm(codegendata *cd, s4 imm);
@@ -297,6 +298,11 @@ void emit_ffree_reg(codegendata *cd, s4 reg);
 void emit_fdecstp(codegendata *cd);
 void emit_fincstp(codegendata *cd);
 
+#if defined(ENABLE_ESCAPE_CHECK)
+void emit_escape_check(codegendata *cd, s4 reg);
+void emit_escape_annotate_object(codegendata *cd, methodinfo *m);
+#endif
+
 #endif /* _EMITFUNCS_H */