Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r91059:9fca81f13918
Date: 2017-04-15 20:08 +0200
http://bitbucket.org/pypy/pypy/changeset/9fca81f13918/

Log:    Fix for f0ba81de1e4f: there is one caller using SlowPath with
        mc._frame_size != DEFAULT_FRAME_BYTES

diff --git a/rpython/jit/backend/x86/codebuf.py 
b/rpython/jit/backend/x86/codebuf.py
--- a/rpython/jit/backend/x86/codebuf.py
+++ b/rpython/jit/backend/x86/codebuf.py
@@ -7,7 +7,6 @@
 from rpython.jit.backend.x86.rx86 import X86_32_CodeBuilder, X86_64_CodeBuilder
 from rpython.jit.backend.x86.regloc import LocationCodeBuilder
 from rpython.jit.backend.x86.arch import IS_X86_32, IS_X86_64, WORD
-from rpython.jit.backend.x86.arch import DEFAULT_FRAME_BYTES
 from rpython.jit.backend.x86 import rx86, valgrind
 
 # XXX: Seems nasty to change the superclass of MachineCodeBlockWrapper
@@ -86,15 +85,15 @@
 
 class SlowPath(object):
     def __init__(self, mc, condition):
-        assert mc._frame_size == DEFAULT_FRAME_BYTES
         mc.J_il(condition, 0xfffff)     # patched later
         self.cond_jump_addr = mc.get_relative_pos(break_basic_block=False)
         self.saved_scratch_value_1 = mc.get_scratch_register_known_value()
+        self.frame_size = mc._frame_size
 
     def set_continue_addr(self, mc):
-        assert mc._frame_size == DEFAULT_FRAME_BYTES
         self.continue_addr = mc.get_relative_pos(break_basic_block=False)
         self.saved_scratch_value_2 = mc.get_scratch_register_known_value()
+        assert self.frame_size == mc._frame_size
 
     def generate(self, assembler, mc):
         # no alignment here, prefer compactness for these slow-paths.
@@ -103,7 +102,7 @@
         mc.overwrite32(self.cond_jump_addr-4, offset)
         # restore the knowledge of the scratch register value
         # (this does not emit any code)
-        mc.force_frame_size(DEFAULT_FRAME_BYTES)
+        mc.force_frame_size(self.frame_size)
         mc.restore_scratch_register_known_value(self.saved_scratch_value_1)
         # generate the body of the slow-path
         self.generate_body(assembler, mc)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to