Author: Richard Plangger <planri...@gmail.com> Branch: ppc-vsx-support Changeset: r86877:0e4fa815252e Date: 2016-09-05 09:28 +0200 http://bitbucket.org/pypy/pypy/changeset/0e4fa815252e/
Log: killed a bug in unpacking multiple diff --git a/rpython/jit/backend/ppc/vector_ext.py b/rpython/jit/backend/ppc/vector_ext.py --- a/rpython/jit/backend/ppc/vector_ext.py +++ b/rpython/jit/backend/ppc/vector_ext.py @@ -534,13 +534,13 @@ self.mc.load_imm(r.SCRATCH2, PARAM_SAVE_AREA_OFFSET+16) self.mc.stvx(res, r.SCRATCH2.value, r.SP.value) if count * size == 8: - stidx = 0 if not IS_BIG_ENDIAN: - idx = (16 // size) - 1 - idx - stidx = 0 - off = PARAM_SAVE_AREA_OFFSET + idx * size + endian_off = 8 + off = PARAM_SAVE_AREA_OFFSET + off = off + endian_off - (idx * size) + assert idx * size + 8 <= 16 self.mc.load(r.SCRATCH.value, r.SP.value, off) - self.mc.store(r.SCRATCH.value, r.SP.value, PARAM_SAVE_AREA_OFFSET+16+stidx) + self.mc.store(r.SCRATCH.value, r.SP.value, PARAM_SAVE_AREA_OFFSET+16+endian_off) self.mc.lvx(res, r.SCRATCH2.value, r.SP.value) return diff --git a/rpython/jit/metainterp/test/test_vector.py b/rpython/jit/metainterp/test/test_vector.py --- a/rpython/jit/metainterp/test/test_vector.py +++ b/rpython/jit/metainterp/test/test_vector.py @@ -826,7 +826,6 @@ (2**31-1 if i%2==0 else 0) def test_unpack_several(self): - # count == 2 values = [1,2,3,4] for i,v in enumerate(values): j = (i // 2) * 2 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit