Author: Armin Rigo <ar...@tunes.org>
Branch: optresult-unroll
Changeset: r79472:0156d890d463
Date: 2015-09-06 12:05 +0200
http://bitbucket.org/pypy/pypy/changeset/0156d890d463/

Log:    32bit: fix test_executor.py

diff --git a/rpython/jit/metainterp/executor.py 
b/rpython/jit/metainterp/executor.py
--- a/rpython/jit/metainterp/executor.py
+++ b/rpython/jit/metainterp/executor.py
@@ -470,8 +470,10 @@
         return ConstInt(value)
     elif isinstance(value, bool):
         return ConstInt(int(value))
+    elif lltype.typeOf(value) == longlong.FLOATSTORAGE:
+        return ConstFloat(value)
     elif isinstance(value, float):
-        return ConstFloat(value)
+        return ConstFloat(longlong.getfloatstorage(value))
     else:
         assert lltype.typeOf(value) == llmemory.GCREF
         return ConstPtr(value)
diff --git a/rpython/jit/metainterp/resoperation.py 
b/rpython/jit/metainterp/resoperation.py
--- a/rpython/jit/metainterp/resoperation.py
+++ b/rpython/jit/metainterp/resoperation.py
@@ -404,6 +404,7 @@
     getfloat = getfloatstorage
     
     def setfloatstorage(self, floatval):
+        assert lltype.typeOf(floatval) is longlong.FLOATSTORAGE
         self._resfloat = floatval
 
     def copy_value_from(self, other):
@@ -478,7 +479,7 @@
         self.setint(intval)
 
 class InputArgFloat(FloatOp, AbstractInputArg):
-    def __init__(self, f=0.0):
+    def __init__(self, f=longlong.ZEROF):
         self.setfloatstorage(f)
 
 class InputArgRef(RefOp, AbstractInputArg):
diff --git a/rpython/jit/metainterp/test/test_executor.py 
b/rpython/jit/metainterp/test/test_executor.py
--- a/rpython/jit/metainterp/test/test_executor.py
+++ b/rpython/jit/metainterp/test/test_executor.py
@@ -84,7 +84,7 @@
     argboxes = [InputArgInt(99999), InputArgInt(321), constfloat(2.25), 
ConstInt(123),
                 InputArgRef(), boxfloat(5.5)]
     box = execute_varargs(cpu, FakeMetaInterp(), rop.CALL_F, argboxes, descr)
-    assert box == 42.5
+    assert longlong.getrealfloat(box) == 42.5
     assert cpu.fakecalled == (99999, [321, 123],
                               [ConstPtr.value],
                               [longlong.getfloatstorage(2.25),
@@ -99,7 +99,7 @@
     argboxes = [InputArgInt(321), ConstInt(123)]
     box = _execute_arglist(cpu, FakeMetaInterp(), rop.CALL_F,
                            argboxes, FakeCallDescr())
-    assert box == 42.5
+    assert longlong.getrealfloat(box) == 42.5
     # arity == 0
     box = _execute_arglist(cpu, None, rop.NEW, [], descr)
     assert box.fakeargs == ('new', descr)
@@ -298,7 +298,7 @@
         boxargs = []
         for x in args:
             if isinstance(x, float):
-                boxargs.append(InputArgFloat(x))
+                boxargs.append(boxfloat(x))
             else:
                 boxargs.append(InputArgInt(x))
         yield opnum, boxargs, rettype, retvalue
@@ -309,13 +309,15 @@
             if (isinstance(args[0], float) and
                 isinstance(args[1], float) and
                 args[0] == args[1]):
-                commonbox = InputArgFloat(args[0])
+                commonbox = boxfloat(args[0])
                 yield opnum, [commonbox, commonbox], rettype, retvalue
 
 def test_float_ops():
     cpu = FakeCPU()
     for opnum, boxargs, rettype, retvalue in get_float_tests(cpu):
         res = _execute_arglist(cpu, None, opnum, boxargs)
+        if rettype == 'float':
+            res = longlong.getrealfloat(res)
         assert res == retvalue
 
 def make_args_for_op(op, a, b):
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to