Author: Antonio Cuni <anto.c...@gmail.com> Branch: faster-rstruct-2 Changeset: r91266:88ae2f6e9df5 Date: 2017-05-12 16:25 +0200 http://bitbucket.org/pypy/pypy/changeset/88ae2f6e9df5/
Log: implement support for gc_store_indexed also in llsupport: this fixes the tests for the x86 backend, and hopefully for the other backends as well diff --git a/rpython/jit/backend/llsupport/llmodel.py b/rpython/jit/backend/llsupport/llmodel.py --- a/rpython/jit/backend/llsupport/llmodel.py +++ b/rpython/jit/backend/llsupport/llmodel.py @@ -754,6 +754,16 @@ offset = base_ofs + scale * index return self.read_float_at_mem(addr, offset) + def bh_gc_store_indexed_i(self, addr, index, val, scale, base_ofs, bytes, + descr): + offset = base_ofs + scale * index + self.write_int_at_mem(addr, offset, bytes, val) + + def bh_gc_store_indexed_f(self, addr, index, val, scale, base_ofs, bytes, + descr): + offset = base_ofs + scale * index + self.write_float_at_mem(addr, offset, val) + def bh_new(self, sizedescr): return self.gc_ll_descr.gc_malloc(sizedescr) diff --git a/rpython/jit/metainterp/executor.py b/rpython/jit/metainterp/executor.py --- a/rpython/jit/metainterp/executor.py +++ b/rpython/jit/metainterp/executor.py @@ -262,7 +262,7 @@ raise AssertionError("cannot store GC pointers in gc_store_indexed for now") elif arraydescr.is_array_of_floats(): floatval = valuebox.getfloat() - cpu.bh_gc_store_indexed_i(addr, index, floatval, scale, base_ofs, bytes, + cpu.bh_gc_store_indexed_f(addr, index, floatval, scale, base_ofs, bytes, arraydescr) else: intval = valuebox.getint() diff --git a/rpython/jit/metainterp/test/test_llop.py b/rpython/jit/metainterp/test/test_llop.py --- a/rpython/jit/metainterp/test/test_llop.py +++ b/rpython/jit/metainterp/test/test_llop.py @@ -33,7 +33,9 @@ def f(value): lst = newlist_and_gc_store(TYPE, value) got = ''.join(lst) - assert got == expected + if got != expected: + # I'm not sure why, but if I use an assert, the test doesn't fail + raise ValueError('got != expected') return len(got) return self.interp_operations(f, [value], supports_singlefloats=True) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit