[pypy-svn] r24720 - pypy/dist/pypy/rpython

pedronis at codespeak.net pedronis at codespeak.net
Tue Mar 21 20:28:21 CET 2006


Author: pedronis
Date: Tue Mar 21 20:28:11 2006
New Revision: 24720

Modified:
   pypy/dist/pypy/rpython/raddress.py
Log:
conversion from Ptr to Address.

equality and hash (bad) functions for addresses. Need a new op for addr->int (later). 



Modified: pypy/dist/pypy/rpython/raddress.py
==============================================================================
--- pypy/dist/pypy/rpython/raddress.py	(original)
+++ pypy/dist/pypy/rpython/raddress.py	Tue Mar 21 20:28:11 2006
@@ -4,6 +4,7 @@
 from pypy.rpython.memory.lladdress import NULL, address
 from pypy.rpython.lltypesystem.llmemory import Address
 from pypy.rpython.rmodel import Repr, IntegerRepr
+from pypy.rpython.rptr import PtrRepr
 from pypy.rpython.lltypesystem import lltype
 
 class __extend__(annmodel.SomeAddress):
@@ -37,6 +38,16 @@
         return hop.genop('adr_ne', [v_addr, c_null],
                          resulttype=lltype.Bool)
 
+    def get_ll_eq_function(self):
+        def ll_eq(addr1, addr2):
+            return addr1 == addr2
+        return ll_eq
+
+    def get_ll_hash_function(self):
+        def ll_hash(addr1):
+            return 0 # XXX do better
+        return ll_hash
+
 
 address_repr = AddressRepr()
 
@@ -111,3 +122,9 @@
         v_addr1, v_addr2 = hop.inputargs(Address, Address)
         return hop.genop('adr_ge', [v_addr1, v_addr2], resulttype=lltype.Bool)
 
+# conversions
+
+class __extend__(pairtype(PtrRepr, AddressRepr)):
+
+    def convert_from_to((r_ptr, r_addr), v, llops):
+        return llops.genop('cast_ptr_to_adr', [v], resulttype=Address)



More information about the Pypy-commit mailing list