Author: Tim Felgentreff <[email protected]>
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
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit