[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