Author: Richard Plangger <planri...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit