From f8da4554d41fb8d5fd21445d7454a2f69e8e0ed7 Mon Sep 17 00:00:00 2001 From: Klaus Treichel Date: Fri, 28 Dec 2007 19:31:14 +0000 Subject: [PATCH] Fix some opcodes in the interpreter backend. --- ChangeLog | 6 ++++++ jit/jit-interp.c | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 14c1af7..99a7828 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-12-28 Klaus Treichel + + * 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 * jit/jit-gen-x86.h (x86_alu_reg16_imm): add macro. diff --git a/jit/jit-interp.c b/jit/jit-interp.c index f53a05f..107f654 100644 --- a/jit/jit-interp.c +++ b/jit/jit-interp.c @@ -763,8 +763,8 @@ restart_tail: 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; @@ -1079,8 +1079,8 @@ restart_tail: 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; @@ -1150,9 +1150,9 @@ restart_tail: 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; @@ -2036,7 +2036,7 @@ restart_tail: { /* 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; @@ -2044,7 +2044,7 @@ restart_tail: { /* 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; @@ -2052,7 +2052,7 @@ restart_tail: { /* 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; -- 2.47.3