Author: Ivan Sichmann Freitas <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit