Author: Ivan Sichmann Freitas <ivansichfrei...@gmail.com>
Branch: ppc-updated-backend
Changeset: r72317:034413cecc37
Date: 2014-07-02 17:56 +0000
http://bitbucket.org/pypy/pypy/changeset/034413cecc37/

Log:    Fix frame_depth calculated size

diff --git a/rpython/jit/backend/ppc/ppc_assembler.py 
b/rpython/jit/backend/ppc/ppc_assembler.py
--- a/rpython/jit/backend/ppc/ppc_assembler.py
+++ b/rpython/jit/backend/ppc/ppc_assembler.py
@@ -9,7 +9,8 @@
                                           FPR_SAVE_AREA, NONVOLATILES_FLOAT,
                                           FLOAT_INT_CONVERSION, FORCE_INDEX,
                                           SIZE_LOAD_IMM_PATCH_SP,
-                                          FORCE_INDEX_OFS, LR_BC_OFFSET)
+                                          FORCE_INDEX_OFS, LR_BC_OFFSET,
+                                          JITFRAME_FIXED_SIZE)
 from rpython.jit.backend.ppc.helper.assembler import Saved_Volatiles
 from rpython.jit.backend.ppc.helper.regalloc import _check_imm_arg
 import rpython.jit.backend.ppc.register as r
@@ -783,6 +784,10 @@
             operations = newoperations
         return operations
 
+    def update_frame_depth(self, frame_depth):
+        baseofs = self.cpu.get_baseofs_of_frame_field()
+        self.current_clt.frame_info.update_frame_depth(baseofs, frame_depth)
+
     def assemble_loop(self, loopname, inputargs, operations, looptoken, log):
         clt = CompiledLoopToken(self.cpu, looptoken.number)
         clt.allgcrefs = []
@@ -813,11 +818,11 @@
         frame_info = 
self.datablockwrapper.malloc_aligned(jitframe.JITFRAMEINFO_SIZE,
                                                           alignment=WORD)
         clt.frame_info = rffi.cast(jitframe.JITFRAMEINFOPTR, frame_info)
-        clt.allgcreafs = []
-        clt.frame_info.clear()
 
         direct_bootstrap_code = self.mc.currpos()
         frame_depth = self.compute_frame_depth(spilling_area, param_depth)
+        frame_depth += JITFRAME_FIXED_SIZE
+        self.update_frame_depth(frame_depth)
         self.gen_bootstrap_code(start_pos, frame_depth)
 
         self.write_pending_failure_recoveries()
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to