[pypy-svn] r62951 - pypy/branch/pyjitpl5/pypy/jit/backend/llgraph

fijal at codespeak.net fijal at codespeak.net
Sat Mar 14 13:51:40 CET 2009


Author: fijal
Date: Sat Mar 14 13:51:38 2009
New Revision: 62951

Modified:
   pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/llimpl.py
   pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/runner.py
Log:
couple of missing ops + a minor improvement in descr display


Modified: pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/llimpl.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/llimpl.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/llimpl.py	Sat Mar 14 13:51:38 2009
@@ -532,12 +532,16 @@
         else:
             return do_getarrayitem_gc_int(array, index, self.memocast)
 
+    op_getarrayitem_gc_pure = op_getarrayitem_gc
+
     def op_getfield_gc(self, fielddescr, struct):
         if fielddescr.type == 'p':
             return do_getfield_gc_ptr(struct, fielddescr.ofs)
         else:
             return do_getfield_gc_int(struct, fielddescr.ofs, self.memocast)
 
+    op_getfield_gc_pure = op_getfield_gc
+
     def op_getfield_raw(self, fielddescr, struct):
         if fielddescr.type == 'p':
             return do_getfield_raw_ptr(struct, fielddescr.ofs)
@@ -581,6 +585,8 @@
             err_result = 0
         return _do_call_common(func, self.memocast, err_result)
 
+    op_call_pure = op_call
+
     def op_new_array(self, arraydescr, count):
         return do_new_array(arraydescr.ofs, count)
 

Modified: pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/runner.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/runner.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/runner.py	Sat Mar 14 13:51:38 2009
@@ -15,6 +15,8 @@
 
 
 class Descr(history.AbstractDescr):
+    name = None
+    
     def __init__(self, ofs, type='?'):
         self.ofs = ofs
         self.type = type
@@ -45,9 +47,10 @@
         raise TypeError("cannot use comparison on Descrs")
 
     def __repr__(self):
+        if self.name is not None:
+            return '<Descr %r, %r, %r>' % (self.ofs, self.type, self.name)
         return '<Descr %r, %r>' % (self.ofs, self.type)
 
-
 class CPU(object):
 
     def __init__(self, rtyper, stats=None, translate_support_code=False,
@@ -234,7 +237,9 @@
     def fielddescrof(S, fieldname):
         ofs, size = symbolic.get_field_token(S, fieldname)
         token = history.getkind(getattr(S, fieldname))
-        return Descr(ofs, token[0])
+        res = Descr(ofs, token[0])
+        res.name = fieldname
+        return res
 
     @staticmethod
     def arraydescrof(A):
@@ -368,7 +373,6 @@
         else:  # calldescr.type == 'v'  # void
             llimpl.do_call_void(func, self.memo_cast)
 
-
 class GuardFailed(object):
     returns = False
 



More information about the Pypy-commit mailing list