Author: Armin Rigo <[email protected]>
Branch: jit-singlefloat
Changeset: r46093:0bd0ef88fb4e
Date: 2011-07-29 19:42 +0200
http://bitbucket.org/pypy/pypy/changeset/0bd0ef88fb4e/

Log:    Test and fix.

diff --git a/pypy/jit/metainterp/test/test_warmstate.py 
b/pypy/jit/metainterp/test/test_warmstate.py
--- a/pypy/jit/metainterp/test/test_warmstate.py
+++ b/pypy/jit/metainterp/test/test_warmstate.py
@@ -43,9 +43,12 @@
     assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
     if longlong.supports_longlong:
         import sys
-        value = longlong.r_float_storage(sys.maxint*17)
+        from pypy.rlib.rarithmetic import r_longlong, r_ulonglong
+        value = r_longlong(-sys.maxint*17)
         assert _is(wrap(None, value), BoxFloat(value))
         assert _is(wrap(None, value, in_const_box=True), ConstFloat(value))
+        value_unsigned = r_ulonglong(-sys.maxint*17)
+        assert _is(wrap(None, value_unsigned), BoxFloat(value))
     sfval = r_singlefloat(42.5)
     ival = longlong.singlefloat2int(sfval)
     assert _is(wrap(None, sfval), BoxInt(ival))
diff --git a/pypy/jit/metainterp/warmstate.py b/pypy/jit/metainterp/warmstate.py
--- a/pypy/jit/metainterp/warmstate.py
+++ b/pypy/jit/metainterp/warmstate.py
@@ -92,6 +92,8 @@
           longlong.is_longlong(lltype.typeOf(value))):
         if isinstance(value, float):
             value = longlong.getfloatstorage(value)
+        else:
+            value = rffi.cast(lltype.SignedLongLong, value)
         if in_const_box:
             return history.ConstFloat(value)
         else:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to