[pypy-commit] pypy cleanup-llgraph-backend: (fijal, arigo) completely random progress
arigo
noreply at buildbot.pypy.org
Wed Oct 17 12:27:54 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch: cleanup-llgraph-backend
Changeset: r58161:80b606bc9e83
Date: 2012-10-17 12:27 +0200
http://bitbucket.org/pypy/pypy/changeset/80b606bc9e83/
Log: (fijal, arigo) completely random progress
diff --git a/pypy/jit/backend/llgraph/runner.py b/pypy/jit/backend/llgraph/runner.py
--- a/pypy/jit/backend/llgraph/runner.py
+++ b/pypy/jit/backend/llgraph/runner.py
@@ -259,31 +259,39 @@
array = a._obj.container
return array.getlength()
+ def bh_getarrayitem_gc(self, a, index, descr):
+ array = a._obj.container
+ return support.cast_result(descr.A.OF, array.getitem(index))
+
+ bh_getarrayitem_gc_i = bh_getarrayitem_gc
+ bh_getarrayitem_gc_r = bh_getarrayitem_gc
+ bh_getarrayitem_gc_f = bh_getarrayitem_gc
+
def bh_setarrayitem_gc(self, a, index, item, descr):
array = a._obj.container
array.setitem(index, support.cast_arg(descr.A.OF, item))
- def bh_getarrayitem_gc(self, a, index, descr):
- array = a._obj.container
- return support.cast_result(descr.A.OF, array.getitem(index))
+ bh_setarrayitem_gc_i = bh_setarrayitem_gc
+ bh_setarrayitem_gc_r = bh_setarrayitem_gc
+ bh_setarrayitem_gc_f = bh_setarrayitem_gc
def bh_getinteriorfield_gc(self, a, index, descr):
array = a._obj.container
return support.cast_result(descr.FIELD,
getattr(array.getitem(index), descr.fieldname))
- bh_getinteriorfield_gc_f = bh_getinteriorfield_gc
bh_getinteriorfield_gc_i = bh_getinteriorfield_gc
bh_getinteriorfield_gc_r = bh_getinteriorfield_gc
+ bh_getinteriorfield_gc_f = bh_getinteriorfield_gc
def bh_setinteriorfield_gc(self, a, index, item, descr):
array = a._obj.container
setattr(array.getitem(index), descr.fieldname,
support.cast_arg(descr.FIELD, item))
+ bh_setinteriorfield_gc_i = bh_setinteriorfield_gc
+ bh_setinteriorfield_gc_r = bh_setinteriorfield_gc
bh_setinteriorfield_gc_f = bh_setinteriorfield_gc
- bh_setinteriorfield_gc_r = bh_setinteriorfield_gc
- bh_setinteriorfield_gc_i = bh_setinteriorfield_gc
def bh_newstr(self, length):
return lltype.cast_opaque_ptr(llmemory.GCREF,
diff --git a/pypy/jit/backend/test/runner_test.py b/pypy/jit/backend/test/runner_test.py
--- a/pypy/jit/backend/test/runner_test.py
+++ b/pypy/jit/backend/test/runner_test.py
@@ -2564,13 +2564,13 @@
A = lltype.GcArray(lltype.Char)
descr_A = cpu.arraydescrof(A)
a = lltype.malloc(A, 5)
- x = cpu.bh_arraylen_gc(descr_A,
- lltype.cast_opaque_ptr(llmemory.GCREF, a))
+ x = cpu.bh_arraylen_gc(lltype.cast_opaque_ptr(llmemory.GCREF, a),
+ descr_A)
assert x == 5
#
a[2] = 'Y'
x = cpu.bh_getarrayitem_gc_i(
- descr_A, lltype.cast_opaque_ptr(llmemory.GCREF, a), 2)
+ lltype.cast_opaque_ptr(llmemory.GCREF, a), 2, descr_A)
assert x == ord('Y')
#
B = lltype.GcArray(lltype.Ptr(A))
@@ -2578,7 +2578,7 @@
b = lltype.malloc(B, 4)
b[3] = a
x = cpu.bh_getarrayitem_gc_r(
- descr_B, lltype.cast_opaque_ptr(llmemory.GCREF, b), 3)
+ lltype.cast_opaque_ptr(llmemory.GCREF, b), 3, descr_B)
assert lltype.cast_opaque_ptr(lltype.Ptr(A), x) == a
if self.cpu.supports_floats:
C = lltype.GcArray(lltype.Float)
@@ -2610,8 +2610,7 @@
assert x == ord('Z')
#
cpu.bh_setfield_gc_i(lltype.cast_opaque_ptr(llmemory.GCREF, s),
- descrfld_x,
- ord('4'))
+ ord('4'), descrfld_x)
assert s.x == '4'
#
descrfld_y = cpu.fielddescrof(S, 'y')
@@ -2622,7 +2621,7 @@
#
s.y = lltype.nullptr(A)
cpu.bh_setfield_gc_r(lltype.cast_opaque_ptr(llmemory.GCREF, s),
- descrfld_y, x)
+ x, descrfld_y)
assert s.y == a
#
RS = lltype.Struct('S', ('x', lltype.Char)) #, ('y', lltype.Ptr(A)))
@@ -2685,11 +2684,11 @@
array = lltype.cast_opaque_ptr(lltype.Ptr(A), x)
assert len(array) == 7
#
- cpu.bh_setarrayitem_gc_i(descr_A, x, 5, ord('*'))
+ cpu.bh_setarrayitem_gc_i(x, 5, ord('*'), descr_A)
assert array[5] == '*'
#
cpu.bh_setarrayitem_gc_r(
- descr_B, lltype.cast_opaque_ptr(llmemory.GCREF, b), 1, x)
+ lltype.cast_opaque_ptr(llmemory.GCREF, b), 1, x, descr_B)
assert b[1] == array
#
x = cpu.bh_newstr(5)
More information about the pypy-commit
mailing list