[pypy-svn] r65164 - in pypy/branch/pyjitpl5/pypy/jit: backend/x86 metainterp

arigo at codespeak.net arigo at codespeak.net
Fri May 8 15:24:22 CEST 2009


Author: arigo
Date: Fri May  8 15:24:19 2009
New Revision: 65164

Modified:
   pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py
   pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py
Log:
Another case in which only the exception type is cleared,
not the exception value.


Modified: pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py	Fri May  8 15:24:19 2009
@@ -772,6 +772,7 @@
         if resloc is not None:
             self.mc.MOV(resloc, addr_add(imm(self._exception_addr), imm(WORD)))
         self.mc.MOV(heap(self._exception_addr), imm(0))
+        self.mc.MOV(addr_add(imm(self._exception_addr), imm(WORD)), imm(0))
 
     def genop_guard_guard_false(self, op, ign_1, addr, locs, ign_2):
         loc = locs[0]

Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/pyjitpl.py	Fri May  8 15:24:19 2009
@@ -1338,6 +1338,7 @@
     def handle_exception(self):
         etype = self.cpu.get_exception()
         evalue = self.cpu.get_exc_value()
+        assert bool(etype) == bool(evalue)
         self.cpu.clear_exception()
         frame = self.framestack[-1]
         if etype:



More information about the Pypy-commit mailing list