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