summaryrefslogtreecommitdiffstats
path: root/generic/tclAssembly.c
diff options
context:
space:
mode:
authorKevin B Kenny <kennykb@acm.org>2010-09-25 17:10:59 (GMT)
committerKevin B Kenny <kennykb@acm.org>2010-09-25 17:10:59 (GMT)
commit7d3c5ee50772e024e914d513957937fe46ada16d (patch)
treeb1eef0a8a7a97f7deb0c5c4dff84c59f516e01d6 /generic/tclAssembly.c
parenta65bf10cd7e281f19056e37d4bab5dae217c6394 (diff)
downloadtcl-7d3c5ee50772e024e914d513957937fe46ada16d.zip
tcl-7d3c5ee50772e024e914d513957937fe46ada16d.tar.gz
tcl-7d3c5ee50772e024e914d513957937fe46ada16d.tar.bz2
added more tests; fixed a bug in initialization of BasicBlock obj
Diffstat (limited to 'generic/tclAssembly.c')
-rw-r--r--generic/tclAssembly.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c
index 40e79f5..689e9f9 100644
--- a/generic/tclAssembly.c
+++ b/generic/tclAssembly.c
@@ -39,6 +39,15 @@ static void AddInstructionToErrorInfo(Tcl_Interp* interp, Tcl_Obj* bcList,
int index);
static BasicBlock * AllocBB(AssembleEnv*);
static int AssembleOneLine(AssembleEnv* envPtr);
+static void BBAdjustStackDepth(BasicBlock* bbPtr, int consumed, int produced);
+static void BBUpdateStackReqs(BasicBlock* bbPtr, int tblind, int count);
+static void BBEmitInstInt1(AssembleEnv* assemEnvPtr, int tblind,
+ unsigned char opnd, int count);
+static void BBEmitInstInt4(AssembleEnv* assemEnvPtr, int tblind, int opnd,
+ int count);
+static void BBEmitInst1or4(AssembleEnv* assemEnvPtr, int tblind, int param,
+ int count);
+static void BBEmitOpcode(AssembleEnv* assemEnvPtr, int tblind, int count);
static int CheckNamespaceQualifiers(Tcl_Interp*, const char*, int);
static int CheckOneByte(Tcl_Interp*, int);
static int CheckSignedOneByte(Tcl_Interp*, int);
@@ -1779,6 +1788,7 @@ AllocBB(AssembleEnv* assemEnvPtr)
bb->visited = 0;
bb->predecessor = NULL;
+ bb->may_fall_thru = 0;
bb->jumpTargetLabelHashEntry = NULL;
bb->successor1 = NULL;