+2007-12-28 Klaus Treichel <ktreichel@web.de>
+
+ * jit/jit-interp.c: Fix the opcodes JIT_OP_LADD, JIT_OP_ISHL,
+ JIT_OP_LSHR_UN, JIT_OP_ICMP_UN, JIT_OP_LCMP and JIT_OP_LCMP_UN in the
+ intpreter backend.
+
2007-12-24 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-gen-x86.h (x86_alu_reg16_imm): add macro.
VMCASE(JIT_OP_LADD):
{
/* Add signed 64-bit integers */
- VM_STK_LONG1 = VM_STK_LONG1 + VM_STK_LONG0;
- VM_MODIFY_PC_AND_STACK(1, 1);
+ VM_R0_LONG = VM_R1_LONG + VM_R2_LONG;
+ VM_MODIFY_PC(1);
}
VMBREAK;
VMCASE(JIT_OP_ISHL):
{
/* Shift left signed 32-bit integers */
- VM_STK_INT1 = VM_STK_INT1 << (VM_STK_UINT0 & 0x1F);
- VM_MODIFY_PC_AND_STACK(1, 1);
+ VM_R0_INT = VM_R1_INT << (VM_R2_INT & 0x1F);
+ VM_MODIFY_PC(1);
}
VMBREAK;
VMCASE(JIT_OP_LSHR_UN):
{
- /* Shift right signed 64-bit integers */
+ /* Shift right unsigned 64-bit integers */
VM_R0_ULONG = (VM_R1_ULONG >> (VM_R2_UINT & 0x3F));
- VM_MODIFY_PC_AND_STACK(1, 1);
+ VM_MODIFY_PC(1);
}
VMBREAK;
{
/* Compare unsigned 32-bit integers */
VM_R0_UINT = jit_uint_cmp(VM_R1_UINT, VM_R2_UINT);
- VM_MODIFY_PC_AND_STACK(1, 1);
+ VM_MODIFY_PC(1);
}
VMBREAK;
{
/* Compare signed 64-bit integers */
VM_R0_INT = jit_long_cmp(VM_R1_LONG, VM_R2_LONG);
- VM_MODIFY_PC_AND_STACK(1, 1);
+ VM_MODIFY_PC(1);
}
VMBREAK;
{
/* Compare unsigned 64-bit integers */
VM_R0_INT = jit_long_cmp(VM_R1_ULONG, VM_R2_ULONG);
- VM_MODIFY_PC_AND_STACK(1, 1);
+ VM_MODIFY_PC(1);
}
VMBREAK;