[pypy-svn] r63651 - in pypy/branch/pyjitpl5-simplify/pypy/jit: backend/llgraph backend/test backend/x86 metainterp metainterp/test
fijal at codespeak.net
fijal at codespeak.net
Sun Apr 5 02:43:23 CEST 2009
Author: fijal
Date: Sun Apr 5 02:43:22 2009
New Revision: 63651
Modified:
pypy/branch/pyjitpl5-simplify/pypy/jit/backend/llgraph/llimpl.py
pypy/branch/pyjitpl5-simplify/pypy/jit/backend/test/runner.py
pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py
pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/codewriter.py
pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/executor.py
pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py
pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/resoperation.py
pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/test/test_basic.py
Log:
support cast on codewriter level
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/backend/llgraph/llimpl.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/backend/llgraph/llimpl.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/backend/llgraph/llimpl.py Sun Apr 5 02:43:22 2009
@@ -115,7 +115,6 @@
'strgetitem' : (('ptr', 'int'), 'int'),
'strsetitem' : (('ptr', 'int', 'int'), None),
'cast_ptr_to_int' : (('ptr',), 'int'),
- 'cast_unichar_to_int' : (('int',), 'int'),
'cast_int_to_ptr' : (('int',), 'ptr'),
#'getitem' : (('void', 'ptr', 'int'), 'int'),
#'setitem' : (('void', 'ptr', 'int', 'int'), None),
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/backend/test/runner.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/backend/test/runner.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/backend/test/runner.py Sun Apr 5 02:43:22 2009
@@ -74,11 +74,7 @@
[BoxPtr(x)], 'int').value
res2 = self.execute_operation(rop.CAST_INT_TO_PTR,
[BoxInt(res)], 'ptr').value
- assert res2 == x
- x = execute(self.cpu, rop.CAST_UNICHAR_TO_INT, [BoxInt(1234)])
- assert x.value == 1234
- assert self.execute_operation(rop.CAST_UNICHAR_TO_INT,
- [BoxInt(1234)], 'int').value == 1234
+ assert res2 == x
def test_uint_xor(self):
x = execute(self.cpu, rop.UINT_XOR, [BoxInt(100), ConstInt(4)])
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/backend/x86/regalloc.py Sun Apr 5 02:43:22 2009
@@ -949,10 +949,6 @@
consider_cast_int_to_ptr = _same_as
consider_cast_ptr_to_int = _same_as
- consider_cast_unichar_to_int = _same_as
-
- xxx_consider_cast_int_to_char = _same_as
- xxx_consider_cast_int_to_ptr = _same_as
def consider_int_is_true(self, op, ignored):
argloc = self.force_allocate_reg(op.args[0], [])
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/codewriter.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/codewriter.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/codewriter.py Sun Apr 5 02:43:22 2009
@@ -510,6 +510,8 @@
serialize_op_cast_bool_to_int = serialize_op_same_as
serialize_op_cast_int_to_uint = serialize_op_same_as
serialize_op_cast_uint_to_int = serialize_op_same_as
+ serialize_op_cast_unichar_to_int = serialize_op_same_as
+ serialize_op_cast_int_to_unichar = serialize_op_same_as
serialize_op_resume_point = serialize_op_same_as
_defl = default_serialize_op
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/executor.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/executor.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/executor.py Sun Apr 5 02:43:22 2009
@@ -88,9 +88,6 @@
def do_uint_ge(cpu, args, descr=None):
return ConstInt(r_uint(args[0].getint()) >= r_uint(args[1].getint()))
-def do_cast_unichar_to_int(cpu, args, descr=None):
- return args[0].clonebox()
-
# ----------
def do_int_is_true(cpu, args, descr=None):
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py Sun Apr 5 02:43:22 2009
@@ -255,7 +255,6 @@
for _opimpl in ['int_is_true', 'int_neg', 'int_invert', 'bool_not',
'uint_is_true', 'cast_ptr_to_int', 'cast_int_to_ptr',
- 'cast_unichar_to_int',
]:
exec py.code.Source('''
@arguments("box")
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/resoperation.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/resoperation.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/resoperation.py Sun Apr 5 02:43:22 2009
@@ -105,8 +105,7 @@
#
CAST_INT_TO_PTR = 21
CAST_PTR_TO_INT = 22
- CAST_UNICHAR_TO_INT = 23
- UINT_XOR = 24
+ UINT_XOR = 29
INT_ADD = 30
INT_SUB = 31
INT_MUL = 32
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/test/test_basic.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/test/test_basic.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/test/test_basic.py Sun Apr 5 02:43:22 2009
@@ -176,6 +176,21 @@
res = self.interp_operations(f, [42])
assert res == ord("?")
+ def test_unicode(self):
+ def f(n):
+ bytecode = u'adlfkj' + unichr(n)
+ if n < len(bytecode):
+ return bytecode[n]
+ else:
+ return u"?"
+ res = self.interp_operations(f, [1])
+ assert res == ord(u"d") # XXX should be "d"
+ res = self.interp_operations(f, [6])
+ assert res == 6
+ res = self.interp_operations(f, [42])
+ assert res == ord(u"?")
+
+
def test_residual_call(self):
def externfn(x, y):
return x * y
More information about the Pypy-commit
mailing list