Author: Antonio Cuni <[email protected]>
Branch: faster-rstruct
Changeset: r80740:b5ebdf19edb4
Date: 2015-11-18 08:27 +0100
http://bitbucket.org/pypy/pypy/changeset/b5ebdf19edb4/
Log: support str_storage_getitem(lltype.Float, ...)
diff --git a/rpython/jit/codewriter/jtransform.py
b/rpython/jit/codewriter/jtransform.py
--- a/rpython/jit/codewriter/jtransform.py
+++ b/rpython/jit/codewriter/jtransform.py
@@ -1028,7 +1028,9 @@
ARRAY = getattr(STRUCT, c_field.value)
assert isinstance(ARRAY, lltype.Array)
arraydescr = self.cpu.arraydescrof(STRUCT)
- return SpaceOperation('getarrayitem_gc_i',
+ kind = getkind(op.result.concretetype)[0]
+ assert kind in ('i', 'f')
+ return SpaceOperation('getarrayitem_gc_%s' % kind,
[op.args[0], v_index, arraydescr],
op.result)
diff --git a/rpython/jit/metainterp/test/test_strstorage.py
b/rpython/jit/metainterp/test/test_strstorage.py
--- a/rpython/jit/metainterp/test/test_strstorage.py
+++ b/rpython/jit/metainterp/test/test_strstorage.py
@@ -1,6 +1,7 @@
import py
from rpython.rlib.strstorage import str_storage_getitem
from rpython.rlib.test.test_strstorage import BaseStrStorageTest
+from rpython.jit.metainterp.history import getkind
from rpython.jit.metainterp.test.support import LLJitMixin
class TestStrStorage(BaseStrStorageTest, LLJitMixin):
@@ -12,6 +13,8 @@
def f():
return str_storage_getitem(TYPE, buf, offset)
res = self.interp_operations(f, [])
- self.check_operations_history({'getarrayitem_gc_i': 1,
+ #
+ kind = getkind(TYPE)[0] # 'i' or 'f'
+ self.check_operations_history({'getarrayitem_gc_%s' % kind: 1,
'finish': 1})
return res
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit