[pypy-commit] pypy default: More 32-bit fixes

arigo noreply at buildbot.pypy.org
Tue Sep 8 17:28:43 CEST 2015


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r79547:38f26fb5de09
Date: 2015-09-08 17:26 +0200
http://bitbucket.org/pypy/pypy/changeset/38f26fb5de09/

Log:	More 32-bit fixes

diff --git a/rpython/jit/backend/test/calling_convention_test.py b/rpython/jit/backend/test/calling_convention_test.py
--- a/rpython/jit/backend/test/calling_convention_test.py
+++ b/rpython/jit/backend/test/calling_convention_test.py
@@ -373,6 +373,7 @@
                                          [funcbox] + argslist,
                                          'float', descr=calldescr)
             expected = func(*argvalues)
+            res = longlong.getrealfloat(res)
             assert abs(res - expected) < 0.0001
 
 
diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -680,7 +680,7 @@
         args = [op.getarg(1), op.getarg(2)]
         loc1 = self.load_xmm_aligned_16_bytes(args[0])
         loc2 = self.load_xmm_aligned_16_bytes(args[1], args)
-        tmpxvar = TempBox()
+        tmpxvar = TempVar()
         loc3 = self.xrm.force_allocate_reg(tmpxvar, args)
         self.xrm.possibly_free_var(tmpxvar)
         loc0 = self.rm.force_allocate_reg(op, need_lower_byte=True)
@@ -691,11 +691,11 @@
         box = op.getarg(2)
         if not isinstance(box, ConstFloat):
             return False
-        if box.getlonglong() != 0:
+        if box.getfloat() != 0.0:    # NaNs are also != 0.0
             return False
-        # "x < 0"
+        # "x < 0.0" or maybe "x < -0.0" which is the same
         box = op.getarg(1)
-        assert isinstance(box, BoxFloat)
+        assert box.type == FLOAT
         loc1 = self.xrm.make_sure_var_in_reg(box)
         loc0 = self.rm.force_allocate_reg(op)
         self.perform_llong(op, [loc1], loc0)
@@ -720,7 +720,7 @@
             loc2 = None    # unused
         else:
             loc1 = self.rm.make_sure_var_in_reg(box)
-            tmpxvar = TempBox()
+            tmpxvar = TempVar()
             loc2 = self.xrm.force_allocate_reg(tmpxvar, [op])
             self.xrm.possibly_free_var(tmpxvar)
         self.perform_llong(op, [loc1, loc2], loc0)
diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py
--- a/rpython/jit/metainterp/history.py
+++ b/rpython/jit/metainterp/history.py
@@ -83,10 +83,6 @@
     def getfloat(self):
         return longlong.getrealfloat(self.getfloatstorage())
 
-    def getlonglong(self):
-        assert longlong.supports_longlong
-        return self.getfloatstorage()
-
     def getref_base(self):
         raise NotImplementedError
 


More information about the pypy-commit mailing list