Author: Ivan Sichmann Freitas <ivansichfrei...@gmail.com>
Branch: ppc-updated-backend
Changeset: r73090:abc36e75739d
Date: 2014-08-27 17:12 -0300
http://bitbucket.org/pypy/pypy/changeset/abc36e75739d/

Log:    Implement regalloc_push for fixed and floating point immediates

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
@@ -1270,12 +1270,18 @@
         """Pushes the value stored in loc to the stack
         Can trash the current value of SCRATCH when pushing a stack
         loc"""
-        if loc.is_imm() or loc.is_imm_float():
-            assert 0, "not implemented yet"
-
         self.mc.addi(r.SP.value, r.SP.value, -WORD) # decrease stack pointer
         assert IS_PPC_64, 'needs to updated for ppc 32'
-        if loc.is_stack():
+
+        if loc.is_imm():
+            with scratch_reg(self.mc):
+                self.regalloc_mov(loc, r.SCRATCH)
+                self.mc.store(r.SCRATCH.value, r.SP.value, 0)
+        elif loc.is_imm_float():
+            with scratch_reg(self.mc):
+                self.regalloc_mov(loc, r.FP_SCRATCH)
+                self.mc.store(r.FP_SCRATCH.value, r.SP.value, 0)
+        elif loc.is_stack():
             # XXX this code has to be verified
             with scratch_reg(self.mc):
                 self.regalloc_mov(loc, r.SCRATCH)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to