diff options
author | dgp <dgp@users.sourceforge.net> | 2013-10-23 14:58:04 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-10-23 14:58:04 (GMT) |
commit | 65e312c749478df27e6d3ec9f23f516d7fc91849 (patch) | |
tree | 2af2a0df78df23b29562ff6142317358cfd796cb | |
parent | 7572328004e55698c9a674e5028bace7dc8b01f0 (diff) | |
download | tcl-65e312c749478df27e6d3ec9f23f516d7fc91849.zip tcl-65e312c749478df27e6d3ec9f23f516d7fc91849.tar.gz tcl-65e312c749478df27e6d3ec9f23f516d7fc91849.tar.bz2 |
Avoid stack verificaton steps in macros when called by assembler. It uses
them differently. Also suspend optimization pass.
-rw-r--r-- | generic/tclAssembly.c | 2 | ||||
-rw-r--r-- | generic/tclCompile.c | 2 | ||||
-rw-r--r-- | generic/tclCompile.h | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c index a833729..83f48fa 100644 --- a/generic/tclAssembly.c +++ b/generic/tclAssembly.c @@ -28,6 +28,8 @@ *- returnCodeBranch */ +#define TCL_ASSEMBLE + #include "tclInt.h" #include "tclCompile.h" #include "tclOOInt.h" diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 374816b..c520a33 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -735,7 +735,7 @@ TclSetByteCodeFromAny( * faster code in some cases, and more compact code in more. */ - if (Tcl_GetMaster(interp) == NULL && + if (0 && Tcl_GetMaster(interp) == NULL && !Tcl_LimitTypeEnabled(interp, TCL_LIMIT_COMMANDS|TCL_LIMIT_TIME) && IsCompactibleCompileEnv(interp, &compEnv)) { TclFreeCompileEnv(&compEnv); diff --git a/generic/tclCompile.h b/generic/tclCompile.h index df3a7af..6f5720c 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -1246,7 +1246,7 @@ MODULE_SCOPE Tcl_Obj *TclNewInstNameObj(unsigned char inst); */ -#if defined(TCL_COMPILE_DEBUG) +#if defined(TCL_COMPILE_DEBUG) && !defined(TCL_ASSEMBLE) #define TclEmitInt1(i, envPtr) \ do { \ if ((envPtr)->codeNext == (envPtr)->codeEnd) { \ @@ -1271,7 +1271,7 @@ MODULE_SCOPE Tcl_Obj *TclNewInstNameObj(unsigned char inst); } while (0) #endif -#if defined(TCL_COMPILE_DEBUG) +#if defined(TCL_COMPILE_DEBUG) && !defined(TCL_ASSEMBLE) #define TclEmitInt4(i, envPtr) \ do { \ if (((envPtr)->codeNext + 4) > (envPtr)->codeEnd) { \ |