Author: Richard Plangger <[email protected]>
Branch: fix-longevity
Changeset: r82522:7cf8129ae01d
Date: 2016-02-25 18:25 +0100
http://bitbucket.org/pypy/pypy/changeset/7cf8129ae01d/
Log: (remi, plan_rich) fixed translation
diff --git a/rpython/jit/backend/llsupport/regalloc.py
b/rpython/jit/backend/llsupport/regalloc.py
--- a/rpython/jit/backend/llsupport/regalloc.py
+++ b/rpython/jit/backend/llsupport/regalloc.py
@@ -374,8 +374,12 @@
self.save_in_callee_regs = [reg for reg in all_regs
if reg not in save_around_call_regs]
self._reinit_free_regs()
- self.is_callee_lookup = [True] * max(
- [r.value + 1 for r in self.all_regs])
+ if we_are_translated():
+ self.is_callee_lookup = [True] * len(self.all_regs)
+ else:
+ # in tests the len of all_regs can change
+ values = [r.value + 1 for r in self.all_regs]
+ self.is_callee_lookup = [True] * max(values)
for reg in self.save_around_call_regs:
self.is_callee_lookup[reg.value] = False
diff --git a/rpython/jit/backend/x86/regalloc.py
b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -281,8 +281,8 @@
def _update_bindings(self, arglocs, inputargs):
# XXX this should probably go to llsupport/regalloc.py
- used = set()
- used_xmm = set()
+ used = {}
+ used_xmm = {}
i = 0
# manually set the register and frame bindings for
# all inputargs (for a bridge)
@@ -294,13 +294,13 @@
if isinstance(loc, RegLoc):
if arg.type == FLOAT:
self.xrm.reg_bindings[arg] = loc
- used_xmm.add(loc)
+ used_xmm[loc] = None
else:
if loc is ebp:
self.rm.bindings_to_frame_reg[arg] = None
else:
self.rm.reg_bindings[arg] = loc
- used.add(loc)
+ used[loc] = None
else:
self.fm.bind(arg, loc)
#
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit