Author: Richard Plangger <planri...@gmail.com>
Branch: 
Changeset: r83729:3701004a39a5
Date: 2016-04-18 08:26 +0200
http://bitbucket.org/pypy/pypy/changeset/3701004a39a5/

Log:    (s390x) prevent setting the key none in reg_bindings

diff --git a/rpython/jit/backend/zarch/regalloc.py 
b/rpython/jit/backend/zarch/regalloc.py
--- a/rpython/jit/backend/zarch/regalloc.py
+++ b/rpython/jit/backend/zarch/regalloc.py
@@ -328,6 +328,16 @@
             self.free_regs = [fr for fr in self.free_regs \
                               if fr is not even and \
                                  fr is not odd]
+            if not even_var:
+                even_var = TempVar()
+                self.longevity[even_var] = (self.position, self.position)
+                self.temp_boxes.append(even_var)
+            if not odd_var:
+                odd_var = TempVar()
+                self.longevity[odd_var] = (self.position, self.position)
+                self.temp_boxes.append(odd_var)
+            assert even_var is not None
+            assert odd_var is not None
             self.reg_bindings[even_var] = even
             self.reg_bindings[odd_var] = odd
             return even, odd
@@ -346,6 +356,7 @@
                 if candidate_var is not None:
                     self._sync_var(candidate_var)
                 self.assembler.regalloc_mov(reg, candidate)
+                assert var is not None
                 self.reg_bindings[var] = candidate
                 reverse_mapping[reg] = var
                 self.free_regs.append(reg)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to