[pypy-commit] pypy ppc-jit-backend: Support push and pop of floating point registers.
edelsohn
noreply at buildbot.pypy.org
Fri Jun 15 16:38:58 CEST 2012
Author: edelsohn
Branch: ppc-jit-backend
Changeset: r55684:21bd23bf1aeb
Date: 2012-06-15 10:38 -0400
http://bitbucket.org/pypy/pypy/changeset/21bd23bf1aeb/
Log: Support push and pop of floating point registers.
diff --git a/pypy/jit/backend/ppc/ppc_assembler.py b/pypy/jit/backend/ppc/ppc_assembler.py
--- a/pypy/jit/backend/ppc/ppc_assembler.py
+++ b/pypy/jit/backend/ppc/ppc_assembler.py
@@ -1269,6 +1269,10 @@
self.mc.addi(r.SP.value, r.SP.value, -WORD) # decrease stack pointer
# push value
self.mc.store(loc.value, r.SP.value, 0)
+ elif loc.is_fp_reg():
+ self.mc.addi(r.SP.value, r.SP.value, -WORD) # decrease stack pointer
+ # push value
+ self.mc.stfd(loc.value, r.SP.value, 0)
elif loc.is_imm():
assert 0, "not implemented yet"
elif loc.is_imm_float():
@@ -1292,6 +1296,9 @@
else:
self.mc.ld(loc.value, r.SP.value, 0)
self.mc.addi(r.SP.value, r.SP.value, WORD) # increase stack pointer
+ elif loc.is_fp_reg():
+ self.mc.lfd(loc.value, r.SP.value, 0)
+ self.mc.addi(r.SP.value, r.SP.value, WORD) # increase stack pointer
else:
raise AssertionError('Trying to pop to an invalid location')
More information about the pypy-commit
mailing list