[pypy-svn] r25473 - pypy/dist/pypy/translator/c

mwh at codespeak.net mwh at codespeak.net
Fri Apr 7 10:12:01 CEST 2006


Author: mwh
Date: Fri Apr  7 10:11:59 2006
New Revision: 25473

Modified:
   pypy/dist/pypy/translator/c/stacklesstransform.py
Log:
small forward steps


Modified: pypy/dist/pypy/translator/c/stacklesstransform.py
==============================================================================
--- pypy/dist/pypy/translator/c/stacklesstransform.py	(original)
+++ pypy/dist/pypy/translator/c/stacklesstransform.py	Fri Apr  7 10:11:59 2006
@@ -1,4 +1,5 @@
 from pypy.rpython.lltypesystem import lltype, llmemory
+from pypy.rpython import rarithmetic
 
 STORAGE_TYPES = [llmemory.Address,
                  lltype.Signed,
@@ -25,15 +26,27 @@
     else:
         raise Exception("don't know about %r" % (T,))
 
-state_header = lltype.Struct('state_header',
+STATE_HEADER = lltype.Struct('state_header',
                              ('f_back', lltype.Ptr(lltype.ForwardReference())),
                              ('state', lltype.Signed))
-state_header.f_back.TO.become(state_header)
+STATE_HEADER.f_back.TO.become(STATE_HEADER)
 
 class StacklessTransfomer(object):
     def __init__(self, translator):
         self.translator = translator
+
+        null_frame_p = lltype.nullptr(STATE_HEADER)
         
+        class StacklessData:
+            def __init__(self):
+                top = null_frame_p
+                bottom = null_frame_p
+                restart_substate = 0
+                retval_long = 0
+                retval_longlong = rarithmetic.r_longlong(0)
+                retval_double = 0.0
+                retval_void_p = llmemory.fakeaddress(None)
+
         self.frametypes = {}
 
     def frame_type_for_vars(self, vars):
@@ -52,9 +65,12 @@
                 for j in range(k):
                     fields.append(('state_%s_%d'%(STORAGE_FIELDS[i], j), STORAGE_TYPES[i]))
             T = lltype.Struct("state_%d_%d_%d_%d"%tuple(key),
-                              ('header', state_header),
+                              ('header', STATE_HEADER),
                               *fields)
             self.frametypes[key] = T
             return T
-            
+
+    def transform_graph(self, graph):
+        for block in graph.iterblocks():
+            pass
 



More information about the Pypy-commit mailing list