[pypy-commit] pypy ppc-jit-backend: Use rlwinm for PPC32 zero-extend
edelsohn
noreply at buildbot.pypy.org
Wed Nov 2 19:00:14 CET 2011
Author: edelsohn
Branch: ppc-jit-backend
Changeset: r48672:21ca802d37d8
Date: 2011-11-02 14:00 -0400
http://bitbucket.org/pypy/pypy/changeset/21ca802d37d8/
Log: Use rlwinm for PPC32 zero-extend
diff --git a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
--- a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
+++ b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
@@ -669,8 +669,7 @@
if size == 1:
if not signed: #unsigned char
if IS_PPC32:
- self.mc.load_imm(r.r0, 0xFF)
- self.mc.and_(resloc.value, resloc.value, r.r0.value)
+ self.mc.rlwinm(resloc.value, resloc.value, 0, 24, 31)
else:
self.mc.rldicl(resloc.value, resloc.value, 0, 56)
else:
@@ -678,9 +677,7 @@
elif size == 2:
if not signed:
if IS_PPC_32:
- self.mc.load_imm(r.r0, 16)
- self.mc.slw(resloc.value, resloc.value, r.r0.value)
- self.mc.srw(resloc.value, resloc.value, r.r0.value)
+ self.mc.rlwinm(resloc.value, resloc.value, 0, 16, 31)
else:
self.mc.rldicl(resloc.value, resloc.value, 0, 48)
else:
More information about the pypy-commit
mailing list