[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