Author: Richard Plangger <[email protected]>
Branch: ppc-vsx-support
Changeset: r86439:01d2126c6305
Date: 2016-08-23 11:08 +0200
http://bitbucket.org/pypy/pypy/changeset/01d2126c6305/
Log: wrong offset loaded wrong value (passing unpack for i64)
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
@@ -470,8 +470,6 @@
self.mc.load_imm(r.SCRATCH2, PARAM_SAVE_AREA_OFFSET)
self.mc.stvx(vector, r.SCRATCH2.value, r.SP.value)
idx = residx
- if not IS_BIG_ENDIAN:
- idx = 1 - idx
self.mc.store(src, r.SP.value, PARAM_SAVE_AREA_OFFSET+8*idx)
self.mc.lvx(res, r.SCRATCH2.value, r.SP.value)
else:
@@ -499,7 +497,7 @@
self.mc.stvx(src, r.SCRATCH2.value, r.SP.value)
off = off + size * idx
if size == 8:
- self.mc.load(res, r.SP.value, off+size*idx)
+ self.mc.load(res, r.SP.value, off)
return
elif size == 4:
self.mc.lwa(res, r.SP.value, off)
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
@@ -789,7 +789,7 @@
#
looptoken = JitCellToken()
cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
- import pdb; pdb.set_trace()
+ #import pdb; pdb.set_trace()
deadframe = cpu.execute_token(looptoken, *args_values)
print(source)
if float:
@@ -805,10 +805,10 @@
"[2xf64]", {'x': (50.33,4321.0)}) == 4321.0
def test_unpack_i64(self):
# int64
+ assert self.run_unpack("i{i} = vec_unpack_i({x}, 1, 1)",
+ "[2xi64]", {'x': (14,15)}, float=False) == 15
assert self.run_unpack("i{i} = vec_unpack_i({x}, 0, 1)",
"[2xi64]", {'x': (11,12)}, float=False) == 11
- assert self.run_unpack("i{i} = vec_unpack_i({x}, 1, 1)",
- "[2xi64]", {'x': (14,15)}, float=False) == 15
def test_unpack_i(self):
for i in range(16):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit