Authors: Christian Thalinger
- $Id: emitfuncs.c 2211 2005-04-04 10:39:36Z christian $
+ $Id: emitfuncs.c 2316 2005-04-21 16:40:28Z twisti $
*/
{
COUNT(count_mov_mem_reg);
*(cd->mcodeptr++) = 0x8b;
- i386_address_byte(2, (reg), (basereg));
- i386_emit_imm32((disp));
+/* i386_address_byte(2,(reg),(basereg)); */
+/* i386_emit_imm32((disp)); */
+ i386_emit_membase32((basereg),(disp),(reg));
}
}
+void i386_mov_reg_membase32(codegendata *cd, s4 reg, s4 basereg, s4 disp)
+{
+ COUNT(count_mov_reg_mem);
+ *(cd->mcodeptr++) = 0x89;
+ i386_emit_membase32((basereg),(disp),(reg));
+}
+
+
void i386_mov_memindex_reg(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg)
{
COUNT(count_mov_mem_reg);
}
+void i386_mov_imm_membase32(codegendata *cd, s4 imm, s4 basereg, s4 disp)
+{
+ *(cd->mcodeptr++) = 0xc7;
+ i386_emit_membase32((basereg),(disp),0);
+ i386_emit_imm32((imm));
+}
+
+
void i386_movb_imm_membase(codegendata *cd, s4 imm, s4 basereg, s4 disp)
{
*(cd->mcodeptr++) = 0xc6;
}
+void i386_flds_membase32(codegendata *cd, s4 basereg, s4 disp)
+{
+ *(cd->mcodeptr++) = 0xd9;
+ i386_emit_membase32((basereg),(disp),0);
+}
+
+
void i386_fldl_membase(codegendata *cd, s4 basereg, s4 disp)
{
*(cd->mcodeptr++) = 0xdd;
}
+void i386_fldl_membase32(codegendata *cd, s4 basereg, s4 disp)
+{
+ *(cd->mcodeptr++) = 0xdd;
+ i386_emit_membase32((basereg),(disp),0);
+}
+
+
void i386_fldt_membase(codegendata *cd, s4 basereg, s4 disp)
{
*(cd->mcodeptr++) = 0xdb;
}
+void i386_fstps_membase32(codegendata *cd, s4 basereg, s4 disp)
+{
+ *(cd->mcodeptr++) = 0xd9;
+ i386_emit_membase32((basereg),(disp),3);
+}
+
+
void i386_fstpl_membase(codegendata *cd, s4 basereg, s4 disp)
{
*(cd->mcodeptr++) = 0xdd;
}
+void i386_fstpl_membase32(codegendata *cd, s4 basereg, s4 disp)
+{
+ *(cd->mcodeptr++) = 0xdd;
+ i386_emit_membase32((basereg),(disp),3);
+}
+
+
void i386_fstpt_membase(codegendata *cd, s4 basereg, s4 disp)
{
*(cd->mcodeptr++) = 0xdb;
-/* vm/jit/i386/emitfuncs.h - emit function prototypes
+/* src/vm/jit/i386/emitfuncs.h - emit function prototypes
Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
Authors: Christian Thalinger
- $Id: emitfuncs.h 2042 2005-03-20 13:42:54Z twisti $
+ Changes:
+
+ $Id: emitfuncs.h 2316 2005-04-21 16:40:28Z twisti $
*/
void i386_mov_membase_reg(codegendata *cd, s4 basereg, s4 disp, s4 reg);
void i386_mov_membase32_reg(codegendata *cd, s4 basereg, s4 disp, s4 reg);
void i386_mov_reg_membase(codegendata *cd, s4 reg, s4 basereg, s4 disp);
+void i386_mov_reg_membase32(codegendata *cd, s4 reg, s4 basereg, s4 disp);
void i386_mov_memindex_reg(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg);
void i386_mov_reg_memindex(codegendata *cd, s4 reg, s4 disp, s4 basereg, s4 indexreg, s4 scale);
void i386_movw_reg_memindex(codegendata *cd, s4 reg, s4 disp, s4 basereg, s4 indexreg, s4 scale);
void i386_mov_mem_reg(codegendata *cd, s4 mem, s4 dreg);
void i386_mov_imm_mem(codegendata *cd, s4 imm, s4 mem);
void i386_mov_imm_membase(codegendata *cd, s4 imm, s4 basereg, s4 disp);
+void i386_mov_imm_membase32(codegendata *cd, s4 imm, s4 basereg, s4 disp);
void i386_movb_imm_membase(codegendata *cd, s4 imm, s4 basereg, s4 disp);
void i386_movsbl_memindex_reg(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg);
void i386_movswl_memindex_reg(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale, s4 reg);
void i386_fldz(codegendata *cd);
void i386_fld_reg(codegendata *cd, s4 reg);
void i386_flds_membase(codegendata *cd, s4 basereg, s4 disp);
+void i386_flds_membase32(codegendata *cd, s4 basereg, s4 disp);
void i386_fldl_membase(codegendata *cd, s4 basereg, s4 disp);
+void i386_fldl_membase32(codegendata *cd, s4 basereg, s4 disp);
void i386_fldt_membase(codegendata *cd, s4 basereg, s4 disp);
void i386_flds_memindex(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale);
void i386_fldl_memindex(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale);
void i386_fstl_memindex(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale);
void i386_fstp_reg(codegendata *cd, s4 reg);
void i386_fstps_membase(codegendata *cd, s4 basereg, s4 disp);
+void i386_fstps_membase32(codegendata *cd, s4 basereg, s4 disp);
void i386_fstpl_membase(codegendata *cd, s4 basereg, s4 disp);
+void i386_fstpl_membase32(codegendata *cd, s4 basereg, s4 disp);
void i386_fstpt_membase(codegendata *cd, s4 basereg, s4 disp);
void i386_fstps_memindex(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale);
void i386_fstpl_memindex(codegendata *cd, s4 disp, s4 basereg, s4 indexreg, s4 scale);