Author: edelsohn Branch: ppc-jit-backend Changeset: r48648:09dd516eeee3 Date: 2011-11-01 10:55 -0400 http://bitbucket.org/pypy/pypy/changeset/09dd516eeee3/
Log: Use sld for PPC64 shifts in getitem and unicode. 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 @@ -332,7 +332,10 @@ if scale.value > 0: scale_loc = r.r0 self.mc.load_imm(r.r0, scale.value) - self.mc.slw(r.r0.value, ofs_loc.value, r.r0.value) + if IS_PPC_32: + self.mc.slw(r.r0.value, ofs_loc.value, r.r0.value) + else: + self.mc.sld(r.r0.value, ofs_loc.value, r.r0.value) else: scale_loc = ofs_loc @@ -356,7 +359,10 @@ if scale.value > 0: scale_loc = r.r0 self.mc.load_imm(r.r0, scale.value) - self.mc.slw(r.r0.value, ofs_loc.value, scale.value) + if IS_PPC_32: + self.mc.slw(r.r0.value, ofs_loc.value, scale.value) + else: + self.mc.sld(r.r0.value, ofs_loc.value, scale.value) else: scale_loc = ofs_loc if ofs.value > 0: @@ -416,7 +422,10 @@ def emit_unicodegetitem(self, op, arglocs, regalloc): res, base_loc, ofs_loc, scale, basesize, itemsize = arglocs - self.mc.slwi(ofs_loc.value, ofs_loc.value, scale.value) + if IS_PPC_32: + self.mc.slwi(ofs_loc.value, ofs_loc.value, scale.value) + else: + self.mc.sldi(ofs_loc.value, ofs_loc.value, scale.value) self.mc.add(res.value, base_loc.value, ofs_loc.value) if scale.value == 2: @@ -430,7 +439,10 @@ def emit_unicodesetitem(self, op, arglocs, regalloc): value_loc, base_loc, ofs_loc, scale, basesize, itemsize = arglocs - self.mc.slwi(ofs_loc.value, ofs_loc.value, scale.value) + if IS_PPC_32: + self.mc.slwi(ofs_loc.value, ofs_loc.value, scale.value) + else: + self.mc.sldi(ofs_loc.value, ofs_loc.value, scale.value) self.mc.add(base_loc.value, base_loc.value, ofs_loc.value) if scale.value == 2: _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit