[pypy-svn] r21309 - in pypy/dist/pypy: annotation rpython

ac at codespeak.net ac at codespeak.net
Mon Dec 19 14:31:28 CET 2005


Author: ac
Date: Mon Dec 19 14:31:28 2005
New Revision: 21309

Modified:
   pypy/dist/pypy/annotation/builtin.py
   pypy/dist/pypy/rpython/rbuiltin.py
Log:
Imporve on r_ulonglong support.

Modified: pypy/dist/pypy/annotation/builtin.py
==============================================================================
--- pypy/dist/pypy/annotation/builtin.py	(original)
+++ pypy/dist/pypy/annotation/builtin.py	Mon Dec 19 14:31:28 2005
@@ -89,6 +89,10 @@
     return constpropagate(pypy.rpython.rarithmetic.r_longlong, [s_obj],
                           SomeInteger(size=2))
 
+def restricted_ulonglong(s_obj):    # for r_uint
+    return constpropagate(pypy.rpython.rarithmetic.r_ulonglong, [s_obj],
+                          SomeInteger(size=2, nonneg=True, unsigned=True))
+
 def builtin_float(s_obj):
     return constpropagate(float, [s_obj], SomeFloat())
 
@@ -335,6 +339,7 @@
 
 BUILTIN_ANALYZERS[pypy.rpython.rarithmetic.r_uint] = restricted_uint
 BUILTIN_ANALYZERS[pypy.rpython.rarithmetic.r_longlong] = restricted_longlong
+BUILTIN_ANALYZERS[pypy.rpython.rarithmetic.r_ulonglong] = restricted_ulonglong
 ##BUILTIN_ANALYZERS[pypy.rpython.rarithmetic.ovfcheck] = rarith_ovfcheck
 ##BUILTIN_ANALYZERS[pypy.rpython.rarithmetic.ovfcheck_lshift] = rarith_ovfcheck_lshift
 BUILTIN_ANALYZERS[pypy.rpython.rarithmetic.intmask] = rarith_intmask

Modified: pypy/dist/pypy/rpython/rbuiltin.py
==============================================================================
--- pypy/dist/pypy/rpython/rbuiltin.py	(original)
+++ pypy/dist/pypy/rpython/rbuiltin.py	Mon Dec 19 14:31:28 2005
@@ -167,6 +167,10 @@
     vlist = hop.inputargs(lltype.SignedLongLong)
     return vlist[0]
 
+def rtype_r_ulonglong(hop):
+    vlist = hop.inputargs(lltype.UnsignedLongLong)
+    return vlist[0]
+
 def rtype_builtin_min(hop):
     rint1, rint2 = hop.args_r
     assert isinstance(rint1, IntegerRepr)
@@ -319,6 +323,7 @@
 BUILTIN_TYPER[rarithmetic.intmask] = rtype_intmask
 BUILTIN_TYPER[rarithmetic.r_uint] = rtype_r_uint
 BUILTIN_TYPER[rarithmetic.r_longlong] = rtype_r_longlong
+BUILTIN_TYPER[rarithmetic.r_ulonglong] = rtype_r_ulonglong
 BUILTIN_TYPER[objectmodel.r_dict] = rtype_r_dict
 BUILTIN_TYPER[objectmodel.we_are_translated] = rtype_we_are_translated
 BUILTIN_TYPER[objectmodel.cast_object_to_int] = rtype_cast_object_to_int



More information about the Pypy-commit mailing list