[pypy-svn] r53244 - pypy/branch/jit-hotpath/pypy/jit/codegen/ia32

fijal at codespeak.net fijal at codespeak.net
Wed Apr 2 04:23:49 CEST 2008


Author: fijal
Date: Wed Apr  2 04:23:47 2008
New Revision: 53244

Modified:
   pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
Log:
steal from i386 simplified version (we always have default case by now)


Modified: pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py	(original)
+++ pypy/branch/jit-hotpath/pypy/jit/codegen/ia32/rgenop.py	Wed Apr  2 04:23:47 2008
@@ -263,24 +263,15 @@
         return targetbuilder
     
     def _add_case(self, gv_case, targetbuilder):
-        # XXX this code needs to be simplified, now that we always
-        # have a default case
         start = self.nextfreepos
         end   = self.endfreepos
         mc = self.rgenop.InMemoryCodeBuilder(start, end)
         mc.CMP(eax, gv_case.operand(None))
         self._je_key = targetbuilder.come_from(mc, 'JE', self._je_key)
         pos = mc.tell()
-        if self.default_case_builder:
-            self.default_case_key = self.default_case_builder.come_from(
-                mc, 'JMP', self.default_case_key)
-        else:
-            illegal_start = mc.tell()
-            mc.JMP(rel32(0))
-            ud2_addr = mc.tell()
-            mc.UD2()
-            illegal_mc = self.rgenop.InMemoryCodeBuilder(illegal_start, end)
-            illegal_mc.JMP(rel32(ud2_addr))
+        assert self.defaultcaseaddr != 0
+        self.default_case_key = self.default_case_builder.come_from(
+            mc, 'JMP', self.default_case_key)
         mc.done()
         self._je_key = 0
         self.nextfreepos = pos



More information about the Pypy-commit mailing list