Author: Armin Rigo <ar...@tunes.org>
Branch: guard-compatible
Changeset: r84591:26d214acc8c3
Date: 2016-05-22 22:01 +0200
http://bitbucket.org/pypy/pypy/changeset/26d214acc8c3/

Log:    Fix for guard_compatible_2

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
@@ -742,11 +742,11 @@
         # the field in question to point (initially) to the recovery stub
         clt = self.current_clt
         for tok in self.pending_guard_tokens:
-            addr = rawstart + tok.pos_jump_offset
             if tok.guard_compatible():
-                guard_compat.patch_guard_compatible(tok, addr,
+                guard_compat.patch_guard_compatible(tok, rawstart,
                                                     self.gc_table_addr)
                 continue
+            addr = rawstart + tok.pos_jump_offset
             tok.faildescr.adr_jump_offset = addr
             descr = tok.faildescr
             if descr.loop_version():
diff --git a/rpython/jit/backend/x86/guard_compat.py 
b/rpython/jit/backend/x86/guard_compat.py
--- a/rpython/jit/backend/x86/guard_compat.py
+++ b/rpython/jit/backend/x86/guard_compat.py
@@ -308,11 +308,12 @@
     # bchoices.bc_list[0].asmaddr: patch_guard_compatible()
     return bchoices
 
-def patch_guard_compatible(guard_token, sequel_label, gc_table_addr):
+def patch_guard_compatible(guard_token, rawstart, gc_table_addr):
     # go to the address in the gctable, number 'bindex'
     bindex = guard_token.guard_compat_bindex
     choices_addr = gc_table_addr + WORD * bindex
-    failure_recovery = guard_token.pos_recovery_stub
+    sequel_label = rawstart + guard_token.pos_jump_offset
+    failure_recovery = rawstart + guard_token.pos_recovery_stub
     gcmap = guard_token.gcmap
     # choices_addr:     points to bchoices in the GC table
     # sequel_label:     "sequel:" label above
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to