[pypy-svn] r21016 - in pypy/dist/pypy/translator/c: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Sun Dec 11 01:20:23 CET 2005
Author: cfbolz
Date: Sun Dec 11 01:20:22 2005
New Revision: 21016
Modified:
pypy/dist/pypy/translator/c/funcgen.py
pypy/dist/pypy/translator/c/test/test_backendoptimized.py
Log:
final step: support the new operation in genc
Modified: pypy/dist/pypy/translator/c/funcgen.py
==============================================================================
--- pypy/dist/pypy/translator/c/funcgen.py (original)
+++ pypy/dist/pypy/translator/c/funcgen.py Sun Dec 11 01:20:22 2005
@@ -545,6 +545,12 @@
result.append(self.pyobj_incref(op.result))
return '\t'.join(result)
+ def OP_CAST_INT_TO_PTR(self, op, err):
+ TYPE = self.lltypemap(op.result)
+ typename = self.db.gettype(TYPE)
+ return "%s = (%s)%s;" % (self.expr(op.result), cdecl(typename, ""),
+ self.expr(op.args[0]))
+
def OP_SAME_AS(self, op, err):
result = []
TYPE = self.lltypemap(op.result)
Modified: pypy/dist/pypy/translator/c/test/test_backendoptimized.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_backendoptimized.py (original)
+++ pypy/dist/pypy/translator/c/test/test_backendoptimized.py Sun Dec 11 01:20:22 2005
@@ -1,6 +1,7 @@
import autopath
from pypy.translator.c.test.test_typed import TestTypedTestCase as _TestTypedTestCase
from pypy.translator.backendopt.all import backend_optimizations
+from pypy.rpython import objectmodel
class TestTypedOptimizedTestCase(_TestTypedTestCase):
@@ -75,4 +76,22 @@
fn = self.getcompiled(f)
res = fn()
assert res == 42
-
+
+ def test_casttoandfromint(self):
+ class A(object):
+ pass
+ def f():
+ a = A()
+ return objectmodel.cast_object_to_int(a)
+ def g():
+ a = A()
+ i = objectmodel.cast_object_to_int(a)
+ return objectmodel.cast_object_to_int(
+ objectmodel.cast_int_to_object(i, A)) == i
+ fn = self.getcompiled(f)
+ res = fn()
+ assert res > 0
+ gn = self.getcompiled(g)
+ res = gn()
+ assert res
+
More information about the Pypy-commit
mailing list