]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
Fix some opcodes in the interpreter backend.
authorKlaus Treichel <ktreichel@web.de>
Fri, 28 Dec 2007 19:31:14 +0000 (19:31 +0000)
committerKlaus Treichel <ktreichel@web.de>
Fri, 28 Dec 2007 19:31:14 +0000 (19:31 +0000)
ChangeLog
jit/jit-interp.c

index 14c1af7d4e4c87c2011c8eddd42ff72159a83317..99a7828f35abccc9c55d04cf3f33f47bda4b9666 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+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.
index f53a05f9f0cf58447df70af900f415205fcdcddb..107f6542752ac5be32e9bcf665b1f3397f8e2401 100644 (file)
@@ -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;