[pypy-svn] r68053 - in pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport: . test

fijal at codespeak.net fijal at codespeak.net
Wed Sep 30 20:33:18 CEST 2009


Author: fijal
Date: Wed Sep 30 20:33:18 2009
New Revision: 68053

Modified:
   pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/regalloc.py
   pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/test/test_regalloc.py
Log:
A controversial checkin. Const does not go into reg_bindings, but we
need to make sure that we don't move stuff after we pass imm_fine=False,
because we might override what we have


Modified: pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/regalloc.py
==============================================================================
--- pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/regalloc.py	(original)
+++ pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/regalloc.py	Wed Sep 30 20:33:18 2009
@@ -221,7 +221,7 @@
                 self.assembler.regalloc_mov(self.convert_to_imm(v), selected_reg)
                 return selected_reg
             if selected_reg is None and self.free_regs:
-                loc = self.free_regs.pop()
+                loc = self.free_regs[-1]
                 self.assembler.regalloc_mov(self.convert_to_imm(v), loc)
                 return loc
             loc = self._spill_var(v, forbidden_vars, selected_reg)

Modified: pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/test/test_regalloc.py
==============================================================================
--- pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/test/test_regalloc.py	(original)
+++ pypy/branch/floats-via-sse2/pypy/jit/backend/llsupport/test/test_regalloc.py	Wed Sep 30 20:33:18 2009
@@ -233,10 +233,11 @@
         assert isinstance(loc, ConstInt)
         for box in boxes[:-1]:
             rm.force_allocate_reg(box)
-        assert len(asm.moves) == 4
+        assert len(asm.moves) == 3
         loc = rm.return_constant(ConstInt(1), imm_fine=False)
         assert isinstance(loc, FakeReg)
-        assert len(asm.moves) == 6
+        assert len(asm.moves) == 5
+        assert len(rm.reg_bindings) == 3
 
     def test_force_result_in_reg_const(self):
         boxes, longevity = boxes_and_longevity(2)



More information about the Pypy-commit mailing list