[pypy-svn] r53496 - pypy/branch/jit-hotpath/pypy/jit/codegen/ia32
fijal at codespeak.net
fijal at codespeak.net
Mon Apr 7 04:08:58 CEST 2008
Author: fijal
Date: Mon Apr 7 04:08:58 2008
New Revision: 53496
Modified:
pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
Log:
Attempt to fix translation a bit
Modified: pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py (original)
+++ pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py Mon Apr 7 04:08:58 2008
@@ -27,8 +27,12 @@
if objectmodel.we_are_translated():
if T is lltype.Float:
return addr.float[0]
+ elif T is llmemory.Address:
+ return addr.address[0]
+ elif isinstance(T, lltype.Ptr):
+ return lltype.cast_int_to_ptr(T, addr.signed[0])
else:
- return addr.signed[0]
+ return lltype.cast_primitive(T, addr.signed[0])
else:
tp = ctypes_mapping[T]
p = cast(c_void_p(addr), POINTER(tp))
@@ -42,8 +46,12 @@
if objectmodel.we_are_translated():
if T is lltype.Float:
addr.float[0] = value
+ elif isinstance(T, lltype.Ptr):
+ addr.signed[0] = intmask(lltype.cast_ptr_to_int(value))
+ elif T is llmemory.Address:
+ addr.signed[0] = intmask(llmemory.cast_adr_to_int(value))
else:
- addr.signed[0] = value
+ addr.signed[0] = lltype.cast_primitive(lltype.Signed, value)
else:
tp = ctypes_mapping[T]
p = cast(c_void_p(addr), POINTER(tp))
More information about the Pypy-commit
mailing list