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