Author: David Schneider <[email protected]>
Branch: emit-call-arm
Changeset: r64528:73b3305ea5f3
Date: 2013-05-23 14:02 -0500
http://bitbucket.org/pypy/pypy/changeset/73b3305ea5f3/
Log: add a location to directly access the stack based on sp
diff --git a/rpython/jit/backend/arm/locations.py
b/rpython/jit/backend/arm/locations.py
--- a/rpython/jit/backend/arm/locations.py
+++ b/rpython/jit/backend/arm/locations.py
@@ -12,6 +12,9 @@
def is_stack(self):
return False
+ def is_raw_sp(self):
+ return False
+
def is_reg(self):
return False
@@ -145,7 +148,27 @@
return self.position + 10000
def is_float(self):
- return type == FLOAT
+ return self.type == FLOAT
+
+class RawSPStackLocation(AssemblerLocation):
+ _immutable_ = True
+
+ def __init__(self, sp_offset, type=INT):
+ if type == FLOAT:
+ self.width = DOUBLE_WORD
+ else:
+ self.width = WORD
+ self.value = sp_offset
+ self.type = type
+
+ def __repr__(self):
+ return 'SP(%s)+%d' % (self.type, self.value,)
+
+ def is_raw_sp(self):
+ return True
+
+ def is_float(self):
+ return self.type == FLOAT
def imm(i):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit