[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pypy-svn
Subject:    [pypy-commit] pypy stmgc-c4: more testing, more fixes
From:       Raemi <noreply () buildbot ! pypy ! org>
Date:       2013-07-31 11:31:26
Message-ID: 20130731113126.C28031C0359 () cobra ! cs ! uni-duesseldorf ! de
[Download RAW message or body]

Author: Remi Meier <remi.meier@gmail.com>
Branch: stmgc-c4
Changeset: r65860:455bc75d0676
Date: 2013-07-31 13:30 +0200
http://bitbucket.org/pypy/pypy/changeset/455bc75d0676/

Log:	more testing, more fixes

diff --git a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py \
                b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
--- a/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
+++ b/rpython/jit/backend/llsupport/test/zrpy_gc_test.py
@@ -816,6 +816,19 @@
             raiseassert(x1 != ptrs[1])
             raiseassert(x1 == ptrs[2])
             raiseassert(x1 != ptrs[3])
+            raiseassert(x2 == ptrs[0])
+            raiseassert(x2 != ptrs[1])
+            raiseassert(x2 != ptrs[2])
+            raiseassert(x2 != ptrs[3])
+            raiseassert(ptrs[0] is None)
+            raiseassert(ptrs[1] is not None)
+            raiseassert(ptrs[2] is not None)
+            raiseassert(ptrs[3] is not None)
+            raiseassert(ptrs[1] is x0)
+            raiseassert(ptrs[2] is x1)
+            raiseassert(x0 is not None)
+            raiseassert(x1 is not None)
+            raiseassert(x3 is None)
             #
             return n - 1, x, x0, x1, x2, x3, x4, x5, x6, x7, ptrs, s
         return before, f, None
diff --git a/rpython/jit/backend/x86/assembler.py \
                b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -2176,10 +2176,12 @@
         # a == b -> SET NZ
         if isinstance(a_base, ImmedLoc) and isinstance(b_base, ImmedLoc):
             if a_base.getint() == b_base.getint():
-                mc.XOR(X86_64_SCRATCH_REG, X86_64_SCRATCH_REG)
-                mc.INC(X86_64_SCRATCH_REG) # NZ flag
+                mc.MOV_ri(X86_64_SCRATCH_REG.value, 1)
+                mc.TEST(X86_64_SCRATCH_REG, X86_64_SCRATCH_REG) # NZ flag
                 mc.JMP_l8(0)
                 j_ok1 = mc.get_relative_pos()
+            else:
+                j_ok1 = 0
         else:
             # do the dance, even if a or b is an Immed
             # XXX: figure out if CMP() is able to handle it without
@@ -2238,8 +2240,9 @@
         #
         
         # OK: flags already set
-        offset = mc.get_relative_pos() - j_ok1
-        mc.overwrite(j_ok1 - 1, chr(offset))
+        if j_ok1:
+            offset = mc.get_relative_pos() - j_ok1
+            mc.overwrite(j_ok1 - 1, chr(offset))
         if j_ok2:
             offset = mc.get_relative_pos() - j_ok2
             mc.overwrite(j_ok2 - 1, chr(offset))
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic