[pypy-commit] pypy default: oups. test and fix
arigo
noreply at buildbot.pypy.org
Wed Dec 3 11:06:40 CET 2014
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r74793:d088178015dd
Date: 2014-12-03 11:06 +0100
http://bitbucket.org/pypy/pypy/changeset/d088178015dd/
Log: oups. test and fix
diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -3892,12 +3892,16 @@
def test_int_signext(self):
numbytes_cases = [1, 2] if IS_32_BIT else [1, 2, 4]
- for numbytes in numbytes_cases:
+ for spill in ["", "force_spill(i1)"]:
+ for numbytes in numbytes_cases:
+ print (spill, numbytes)
ops = """
[i0]
- i1 = int_signext(i0, %d)
- finish(i1, descr=descr)
- """ % numbytes
+ i1 = int_sub(i0, 0) # force in register
+ %s
+ i2 = int_signext(i1, %d)
+ finish(i2, descr=descr)
+ """ % (spill, numbytes)
descr = BasicFinalDescr()
loop = parse(ops, self.cpu, namespace=locals())
looptoken = JitCellToken()
diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -1148,6 +1148,8 @@
argloc, numbytesloc = arglocs
assert isinstance(numbytesloc, ImmedLoc)
if numbytesloc.value == 1:
+ if isinstance(argloc, RegLoc):
+ argloc = argloc.lowest8bits()
self.mc.MOVSX8(resloc, argloc)
elif numbytesloc.value == 2:
self.mc.MOVSX16(resloc, argloc)
More information about the pypy-commit
mailing list