Author: hager <sven.ha...@uni-duesseldorf.de> Branch: ppc-jit-backend Changeset: r48379:38f0e1f8b91e Date: 2011-10-24 17:57 +0200 http://bitbucket.org/pypy/pypy/changeset/38f0e1f8b91e/
Log: merge diff --git a/pypy/jit/backend/ppc/ppcgen/codebuilder.py b/pypy/jit/backend/ppc/ppcgen/codebuilder.py --- a/pypy/jit/backend/ppc/ppcgen/codebuilder.py +++ b/pypy/jit/backend/ppc/ppcgen/codebuilder.py @@ -954,15 +954,15 @@ self.load_imm(rD, addr) self.lwzx(rD.value, 0, rD.value) else: - self.load_word(rD, addr) - self.ld(rD, rD, 0) + self.load_imm(rD, addr) + self.ldx(rD.value, 0, rD.value) def store_reg(self, source_reg, addr): self.load_imm(r.r0, addr) if IS_PPC_32: self.stwx(source_reg.value, 0, 0) else: - self.std(source_reg.value, 0, 0) + self.stdx(source_reg.value, 0, 0) def b_cond_offset(self, offset, condition): pos = self.currpos() diff --git a/pypy/jit/backend/ppc/ppcgen/opassembler.py b/pypy/jit/backend/ppc/ppcgen/opassembler.py --- a/pypy/jit/backend/ppc/ppcgen/opassembler.py +++ b/pypy/jit/backend/ppc/ppcgen/opassembler.py @@ -262,12 +262,15 @@ def emit_setfield_gc(self, op, arglocs, regalloc): value_loc, base_loc, ofs, size = arglocs if size.value == 8: - assert 0, "not implemented yet" + if ofs.is_imm(): + self.mc.std(value_loc.value, base_loc.value, ofs.value) + else: + self.mc.stdx(value_loc.value, base_loc.value, ofs.value) elif size.value == 4: if ofs.is_imm(): self.mc.stw(value_loc.value, base_loc.value, ofs.value) else: - self.mc.stw(value_loc.value, base_loc.value, ofs.value) + self.mc.stwx(value_loc.value, base_loc.value, ofs.value) elif size.value == 2: if ofs.is_imm(): self.mc.sth(value_loc.value, base_loc.value, ofs.value) @@ -285,7 +288,10 @@ def emit_getfield_gc(self, op, arglocs, regalloc): base_loc, ofs, res, size = arglocs if size.value == 8: - assert 0, "not implemented yet" + if ofs.is_imm(): + self.mc.ld(res.value, base_loc.value, ofs.value) + else: + self.mc.ldx(res.value, base_loc.value, ofs.value) elif size.value == 4: if ofs.is_imm(): self.mc.lwz(res.value, base_loc.value, ofs.value) diff --git a/pypy/jit/backend/ppc/ppcgen/test/test_ppc.py b/pypy/jit/backend/ppc/ppcgen/test/test_ppc.py --- a/pypy/jit/backend/ppc/ppcgen/test/test_ppc.py +++ b/pypy/jit/backend/ppc/ppcgen/test/test_ppc.py @@ -194,9 +194,9 @@ if IS_PPC_32: a.load_imm(r10, call_addr) else: - a.load_from(10, call_addr) - a.load_from(2, call_addr+WORD) - a.load_from(11, call_addr+2*WORD) + a.load_from_addr(r10, call_addr) + a.load_from_addr(r2, call_addr+WORD) + a.load_from_addr(r11, call_addr+2*WORD) a.mtctr(10) a.bctr() a.blr() _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit