[pypy-svn] r76133 - pypy/branch/kill-caninline/pypy/jit/codewriter

arigo at codespeak.net arigo at codespeak.net
Mon Jul 12 13:21:02 CEST 2010


Author: arigo
Date: Mon Jul 12 13:20:55 2010
New Revision: 76133

Modified:
   pypy/branch/kill-caninline/pypy/jit/codewriter/assembler.py
   pypy/branch/kill-caninline/pypy/jit/codewriter/jitcode.py
Log:
Oups, this goes together with r76131.


Modified: pypy/branch/kill-caninline/pypy/jit/codewriter/assembler.py
==============================================================================
--- pypy/branch/kill-caninline/pypy/jit/codewriter/assembler.py	(original)
+++ pypy/branch/kill-caninline/pypy/jit/codewriter/assembler.py	Mon Jul 12 13:20:55 2010
@@ -53,6 +53,7 @@
         self.liveness = {}
         self.startpoints = set()
         self.alllabels = set()
+        self.resulttypes = {}
 
     def emit_reg(self, reg):
         if reg.index >= self.count_regs[reg.kind]:
@@ -165,7 +166,9 @@
                 raise NotImplementedError(x)
         #
         opname = insn[0]
-        assert '>' not in argcodes or argcodes.index('>') == len(argcodes) - 2
+        if '>' in argcodes:
+            assert argcodes.index('>') == len(argcodes) - 2
+            self.resulttypes[len(self.code)] = argcodes[-1]
         key = opname + '/' + ''.join(argcodes)
         num = self.insns.setdefault(key, len(self.insns))
         self.code[startposition] = chr(num)
@@ -212,7 +215,8 @@
                       self.count_regs['float'],
                       liveness=self.liveness,
                       startpoints=self.startpoints,
-                      alllabels=self.alllabels)
+                      alllabels=self.alllabels,
+                      resulttypes=self.resulttypes)
 
     def see_raw_object(self, value):
         if value._obj not in self._seen_raw_objects:

Modified: pypy/branch/kill-caninline/pypy/jit/codewriter/jitcode.py
==============================================================================
--- pypy/branch/kill-caninline/pypy/jit/codewriter/jitcode.py	(original)
+++ pypy/branch/kill-caninline/pypy/jit/codewriter/jitcode.py	Mon Jul 12 13:20:55 2010
@@ -19,7 +19,8 @@
 
     def setup(self, code='', constants_i=[], constants_r=[], constants_f=[],
               num_regs_i=255, num_regs_r=255, num_regs_f=255,
-              liveness=None, startpoints=None, alllabels=None):
+              liveness=None, startpoints=None, alllabels=None,
+              resulttypes=None):
         self.code = code
         # if the following lists are empty, use a single shared empty list
         self.constants_i = constants_i or self._empty_i
@@ -33,6 +34,7 @@
         self.liveness = make_liveness_cache(liveness)
         self._startpoints = startpoints   # debugging
         self._alllabels = alllabels       # debugging
+        self._resulttypes = resulttypes   # debugging
 
     def get_fnaddr_as_int(self):
         return heaptracker.adr2int(self.fnaddr)



More information about the Pypy-commit mailing list