[pypy-commit] pypy jvm-improvements: Add a missing cast from Unsigned to UnsignedLongLong in the JVM
benol
noreply at buildbot.pypy.org
Tue Jan 17 10:10:24 CET 2012
Author: Michal Bendowski <michal at bendowski.pl>
Branch: jvm-improvements
Changeset: r51378:c59ec9806ac6
Date: 2012-01-14 20:15 +0100
http://bitbucket.org/pypy/pypy/changeset/c59ec9806ac6/
Log: Add a missing cast from Unsigned to UnsignedLongLong in the JVM
backend.
diff --git a/pypy/translator/jvm/metavm.py b/pypy/translator/jvm/metavm.py
--- a/pypy/translator/jvm/metavm.py
+++ b/pypy/translator/jvm/metavm.py
@@ -92,6 +92,7 @@
CASTS = {
# FROM TO
(ootype.Signed, ootype.UnsignedLongLong): jvm.I2L,
+ (ootype.Unsigned, ootype.UnsignedLongLong): jvm.I2L,
(ootype.SignedLongLong, ootype.Signed): jvm.L2I,
(ootype.UnsignedLongLong, ootype.Unsigned): jvm.L2I,
(ootype.UnsignedLongLong, ootype.Signed): jvm.L2I,
diff --git a/pypy/translator/oosupport/test_template/cast.py b/pypy/translator/oosupport/test_template/cast.py
--- a/pypy/translator/oosupport/test_template/cast.py
+++ b/pypy/translator/oosupport/test_template/cast.py
@@ -13,6 +13,9 @@
def to_longlong(x):
return r_longlong(x)
+def to_ulonglong(x):
+ return r_ulonglong(x)
+
def uint_to_int(x):
return intmask(x)
@@ -56,6 +59,9 @@
def test_unsignedlonglong_to_unsigned4(self):
self.check(to_uint, [r_ulonglong(18446744073709551615l)]) # max 64 bit num
+ def test_unsigned_to_usignedlonglong(self):
+ self.check(to_ulonglong, [r_uint(42)])
+
def test_uint_to_int(self):
self.check(uint_to_int, [r_uint(sys.maxint+1)])
More information about the pypy-commit
mailing list