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

Reply via email to