[pypy-svn] r71379 - pypy/trunk/pypy/jit/backend/x86

arigo at codespeak.net arigo at codespeak.net
Sun Feb 21 15:08:34 CET 2010


Author: arigo
Date: Sun Feb 21 15:08:32 2010
New Revision: 71379

Modified:
   pypy/trunk/pypy/jit/backend/x86/regalloc.py
Log:
Mention a possible issue here, with a link to the revisions
that fix it (on branch/debug-vref2).  Not applied to trunk
so far because it doesn't really seems necessary.


Modified: pypy/trunk/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/x86/regalloc.py	(original)
+++ pypy/trunk/pypy/jit/backend/x86/regalloc.py	Sun Feb 21 15:08:32 2010
@@ -668,6 +668,11 @@
                 and self.rm.stays_alive(v)
                 and reg not in arglocs[3:]):
                 arglocs.append(reg)
+        # XXX this generates code that looks like: push eax / call / pop eax
+        # and expects eax to be saved, even though it's also an argument to
+        # the call.  This holds so far, by looking at the assembler of
+        # remember_young_pointer(), but it may be a bit fragile.  For a
+        # fix see r71364+r71370.
         self.PerformDiscard(op, arglocs)
         self.rm.possibly_free_vars(op.args)
 



More information about the Pypy-commit mailing list