[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