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: _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit