[pypy-commit] pypy ppc-jit-backend: Add srd, cmpd and srdi.
edelsohn
noreply at buildbot.pypy.org
Mon Aug 22 22:45:22 CEST 2011
Author: edelsohn
Branch: ppc-jit-backend
Changeset: r46710:43ed955340a9
Date: 2011-08-22 16:44 -0400
http://bitbucket.org/pypy/pypy/changeset/43ed955340a9/
Log: Add srd, cmpd and srdi.
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
@@ -483,6 +483,9 @@
srawi = Form("rA", "rS", "SH", "XO1", "Rc")(31, XO1=824, Rc=0)
srawix = Form("rA", "rS", "SH", "XO1", "Rc")(31, XO1=824, Rc=1)
+ srd = XS(31, XO1=539, Rc=0)
+ srdx = XS(31, XO1=539, Rc=1)
+
srw = XS(31, XO1=536, Rc=0)
srwx = XS(31, XO1=536, Rc=1)
@@ -580,9 +583,13 @@
# F.3 Simplified Mnemonics for Compare Instructions
+ cmpdi = BA.cmpi(L=1)
cmpwi = BA.cmpi(L=0)
+ cmpldi = BA.cmpli(L=1)
cmplwi = BA.cmpli(L=0)
+ cmpd = BA.cmp(L=1)
cmpw = BA.cmp(L=0)
+ cmpld = BA.cmpl(L=1)
cmplw = BA.cmpl(L=0)
# F.4 Simplified Mnemonics for Rotate and Shift Instructions
@@ -617,6 +624,9 @@
def sldi(self, rA, rS, n):
self.rldicr(rA, rS, n, 63-n)
+ def srdi(self, rA, rS, n):
+ self.rldicl(rA, rS, 64-n, n)
+
# F.5 Simplified Mnemonics for Branch Instructions
# there's a lot of these!
@@ -899,10 +909,10 @@
def load_word(self, rD, word):
if IS_PPC_32:
- self.addis(rD, 0, hi(word))
+ self.lis(rD, hi(word))
self.ori(rD, rD, lo(word))
else:
- self.addis(rD, 0, highest(word))
+ self.lis(rD, highest(word))
self.ori(rD, rD, higher(word))
self.sldi(rD, rD, 32)
self.oris(rD, rD, high(word))
More information about the pypy-commit
mailing list