[pypy-svn] r71364 - pypy/branch/debug-vref2/pypy/jit/backend/x86

arigo at codespeak.net arigo at codespeak.net
Sat Feb 20 19:29:03 CET 2010


Author: arigo
Date: Sat Feb 20 19:29:02 2010
New Revision: 71364

Modified:
   pypy/branch/debug-vref2/pypy/jit/backend/x86/regalloc.py
Log:
Don't rely on the fact that remember_young_pointer()
will not overwrite its arguments in the stack.
(Looking again at the assembler, it really seems not to,
but better safe than sorry)


Modified: pypy/branch/debug-vref2/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/branch/debug-vref2/pypy/jit/backend/x86/regalloc.py	(original)
+++ pypy/branch/debug-vref2/pypy/jit/backend/x86/regalloc.py	Sat Feb 20 19:29:02 2010
@@ -665,8 +665,7 @@
         # See remember_young_pointer() in rpython/memory/gc/generation.py.
         for v, reg in self.rm.reg_bindings.items():
             if ((reg is eax or reg is ecx or reg is edx)
-                and self.rm.stays_alive(v)
-                and reg not in arglocs[3:]):
+                and self.rm.stays_alive(v)):
                 arglocs.append(reg)
         self.PerformDiscard(op, arglocs)
         self.rm.possibly_free_vars(op.args)



More information about the Pypy-commit mailing list