summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2014-02-02 14:42:12 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2014-02-02 14:42:12 (GMT)
commit347264f196f57e2f4433f33dbaa6c8e2e4a2c83d (patch)
treefc5cf587462875a6acc982a5766096613af20bcc
parent60e360f12b1c25a8e89f5893a564ca17d3b99217 (diff)
downloadtcl-347264f196f57e2f4433f33dbaa6c8e2e4a2c83d.zip
tcl-347264f196f57e2f4433f33dbaa6c8e2e4a2c83d.tar.gz
tcl-347264f196f57e2f4433f33dbaa6c8e2e4a2c83d.tar.bz2
improve the disassemblydkf_bytecode_8_6_string_is
-rw-r--r--generic/tclCompile.c7
-rw-r--r--generic/tclCompile.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index 08a7a4c..c5d0107 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -644,7 +644,7 @@ InstructionDesc const tclInstructionTable[] = {
{"tryCvtToBoolean", 1, +1, 0, {OPERAND_NONE}},
/* Try converting stktop to boolean if possible. No errors.
* Stack: ... value => ... value isStrictBool */
- {"strclass", 2, 0, 1, {OPERAND_UINT1}},
+ {"strclass", 2, 0, 1, {OPERAND_SCLS1}},
/* See if all the characters of the given string are a member of the
* specified (by opnd) character class. Note that an empty string will
* satisfy the class check (standard definition of "all").
@@ -5097,6 +5097,11 @@ FormatInstruction(
}
Tcl_AppendPrintfToObj(bufferObj, "%%v%u ", (unsigned) opnd);
break;
+ case OPERAND_SCLS1:
+ opnd = TclGetUInt1AtPtr(pc+numBytes); numBytes++;
+ Tcl_AppendPrintfToObj(bufferObj, "%s ",
+ tclStringClassTable[opnd].name);
+ break;
case OPERAND_NONE:
default:
break;
diff --git a/generic/tclCompile.h b/generic/tclCompile.h
index 502a2e6..5665ca9 100644
--- a/generic/tclCompile.h
+++ b/generic/tclCompile.h
@@ -825,8 +825,9 @@ typedef enum InstOperandType {
* variable table. */
OPERAND_LVT4, /* Four byte unsigned index into the local
* variable table. */
- OPERAND_AUX4 /* Four byte unsigned index into the aux data
+ OPERAND_AUX4, /* Four byte unsigned index into the aux data
* table. */
+ OPERAND_SCLS1 /* Index into tclStringClassTable. */
} InstOperandType;
typedef struct InstructionDesc {