Author: Ivan Sichmann Freitas <ivansichfrei...@gmail.com>
Branch: ppc-updated-backend
Changeset: r71430:e20b769ecc66
Date: 2014-05-09 14:12 +0000
http://bitbucket.org/pypy/pypy/changeset/e20b769ecc66/

Log:    Define JITFRAME_FIXED_SIZE

diff --git a/rpython/jit/backend/ppc/arch.py b/rpython/jit/backend/ppc/arch.py
--- a/rpython/jit/backend/ppc/arch.py
+++ b/rpython/jit/backend/ppc/arch.py
@@ -33,6 +33,16 @@
 
 FORCE_INDEX_OFS         = (len(MANAGED_REGS) + len(MANAGED_FP_REGS)) * WORD
 
+# The JITFRAME_FIXED_SIZE is measured in words, not bytes or bits.
+# Follwing the PPC ABI, we are saving:
+# - volatile fpr's
+# - volatile gpr's
+# - vrsave word
+# - alignment padding
+# - vector register save area (quadword aligned)
+# 3 + 27 + 1 + 4 + 1
+JITFRAME_FIXED_SIZE = len(MANAGED_FP_REGS) + len(MANAGED_REGS) + 1 + 4 + 1
+
 # offset to LR in BACKCHAIN
 if IS_PPC_32:
     LR_BC_OFFSET = WORD
diff --git a/rpython/jit/backend/ppc/locations.py 
b/rpython/jit/backend/ppc/locations.py
--- a/rpython/jit/backend/ppc/locations.py
+++ b/rpython/jit/backend/ppc/locations.py
@@ -1,6 +1,8 @@
 from rpython.jit.metainterp.history import INT, FLOAT
 import sys
 
+# TODO: solve the circular import: runner -> arch -> register -> locations ->
+# arch
 # XXX import from arch.py, currently we have a circular import
 if sys.maxint == (2**31 - 1):
     WORD = 4
@@ -10,6 +12,9 @@
     FWORD = 8
 DWORD = 2 * WORD
 
+# JITFRAME_FIXED_SIZE is also duplicated because of the circular import
+JITFRAME_FIXED_SIZE = 27 + 31 + 1 + 4 + 1
+
 class AssemblerLocation(object):
     _immutable_ = True
     type = INT
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to