[pypy-commit] pypy jit-targets: Fix.
arigo
noreply at buildbot.pypy.org
Wed Nov 9 14:48:36 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch: jit-targets
Changeset: r49016:132fd58cb353
Date: 2011-11-09 14:48 +0100
http://bitbucket.org/pypy/pypy/changeset/132fd58cb353/
Log: Fix.
diff --git a/pypy/jit/backend/x86/regalloc.py b/pypy/jit/backend/x86/regalloc.py
--- a/pypy/jit/backend/x86/regalloc.py
+++ b/pypy/jit/backend/x86/regalloc.py
@@ -1396,10 +1396,23 @@
inputargs = op.getarglist()
floatlocs = [None] * len(inputargs)
nonfloatlocs = [None] * len(inputargs)
+ #
+ # we need to make sure that the tmpreg and xmmtmp are free
+ tmpreg = X86RegisterManager.all_regs[0]
+ tmpvar = TempBox()
+ self.rm.force_allocate_reg(tmpvar, selected_reg=tmpreg)
+ self.rm.possibly_free_var(tmpvar)
+ #
+ xmmtmp = X86XMMRegisterManager.all_regs[0]
+ tmpvar = TempBox()
+ self.xrm.force_allocate_reg(tmpvar, selected_reg=xmmtmp)
+ self.xrm.possibly_free_var(tmpvar)
+ #
for i in range(len(inputargs)):
arg = inputargs[i]
assert not isinstance(arg, Const)
loc = self.loc(arg)
+ assert not (loc is tmpreg or loc is xmmtmp)
if arg.type == FLOAT:
floatlocs[i] = loc
else:
More information about the pypy-commit
mailing list