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