[pypy-commit] pypy int-tag-untag-as-operations: fix test_lloperation.py::test_canfold_opimpl_complete

timfel noreply at buildbot.pypy.org
Wed Apr 24 14:29:03 CEST 2013


Author: Tim Felgentreff <timfelgentreff at gmail.com>
Branch: int-tag-untag-as-operations
Changeset: r63591:b3a63e7e8555
Date: 2013-04-24 14:23 +0200
http://bitbucket.org/pypy/pypy/changeset/b3a63e7e8555/

Log:	fix test_lloperation.py::test_canfold_opimpl_complete

diff --git a/rpython/rtyper/lltypesystem/opimpl.py b/rpython/rtyper/lltypesystem/opimpl.py
--- a/rpython/rtyper/lltypesystem/opimpl.py
+++ b/rpython/rtyper/lltypesystem/opimpl.py
@@ -185,6 +185,15 @@
     assert type(b) is bool
     return not b
 
+def op_int_untag(a):
+    assert is_valid_int(a)
+    assert ((a & 1) == 1, "op_int_untag: not an odd int")
+    return a >> 1
+
+def op_int_tag(a):
+    assert is_valid_int(a)
+    return intmask(a << 1) + 1
+
 def op_int_add(x, y):
     if not isinstance(x, (int, long, llmemory.AddressOffset)):
         from rpython.rtyper.lltypesystem import llgroup


More information about the pypy-commit mailing list