[pypy-commit] pypy jitframe-on-heap: We now keep the frame in ebp, easy

fijal noreply at buildbot.pypy.org
Tue Feb 12 12:41:55 CET 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: jitframe-on-heap
Changeset: r61131:7db4696a951c
Date: 2013-02-12 13:41 +0200
http://bitbucket.org/pypy/pypy/changeset/7db4696a951c/

Log:	We now keep the frame in ebp, easy

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
@@ -877,7 +877,7 @@
         # to provide a place where we can read the frame from, in case
         # we need to reload it after a collection
         rst = self._load_shadowstack_top_in_ebx(self.mc, gcrootmap)
-        self.mc.MOV_mr((ebx.value, 0), edi.value)      # MOV [ebx], edi
+        self.mc.MOV_mr((ebx.value, 0), ebp.value)      # MOV [ebx], ebp
         self.mc.ADD_ri(ebx.value, WORD)
         if rx86.fits_in_32bits(rst):
             self.mc.MOV_jr(rst, ebx.value)            # MOV [rootstacktop], ebx
diff --git a/rpython/jit/backend/x86/test/test_gc_integration.py b/rpython/jit/backend/x86/test/test_gc_integration.py
--- a/rpython/jit/backend/x86/test/test_gc_integration.py
+++ b/rpython/jit/backend/x86/test/test_gc_integration.py
@@ -548,7 +548,7 @@
 
         loop = self.parse("""
         [p0, p1, p2]
-        pf = force_token() # this is a bit below the frame
+        pf = force_token() # this is the frame
         call(ConstClass(check_adr), pf, descr=checkdescr) # this can collect
         p3 = getfield_gc(p0, descr=fielddescr)
         pf2 = force_token()


More information about the pypy-commit mailing list