summaryrefslogtreecommitdiffstats
path: root/generic/tclAssembly.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * tests/assemble.test: Added tryCvtToNumeric and several more listKevin B Kenny2010-09-301-1/+124
| | | | * generic/tclAssemble.c: operations.
* * tests/assemble.test: Completed conversion of tests to aKevin B Kenny2010-09-291-2/+37
| | | | | | * generic/tclAssemble.c: "white box" structure that follows the C code. Added missing safety checks on the operands of 'over' and 'reverse' so that negative operand counts don't smash the stack.
* * tests/assemble.test: Added more "white box" tests.Kevin B Kenny2010-09-281-116/+136
| | | | | | | | | | | | * generic/tclAssembly.c: Added the error checking and reporting for undefined labels. Revised code so that no pointers into the bytecode sequence are held (because the sequence can move!), that no Tcl_HashEntry pointers are held (because the hash table doesn't guarantee their stability!) and to eliminate the BBHash table, which is merely additional information indexed by jump labels and can just as easily be held in the 'label' structure. Renamed shared structures to CamelCase, and renamed 'label' to JumpLabel because other types of labels may eventually be possible.
* Merged from HEAD.Kevin B Kenny2010-09-271-1/+4
| | | | Also replaced a funky NRCallTEBC with the new call TclNRExecuteByteCode.
* * tests/assemble.test: Added more "white box" tests.Kevin B Kenny2010-09-271-16/+43
| | | | | | | | * generic/tclAssembly.c: Fixed bugs exposed by the new tests. (a) [eval] and [expr] had incorrect stack balance computed if the arg was not a simple word. (b) [concat] accepted a negative operand count. (c) [invoke] accepted a zero or negative operand count. (d) more misspelt error messages.
* * tests/assemble.test: Added many new tests moving toward a moreKevin B Kenny2010-09-261-22/+61
| | | | | | | | | | comprehensive test suite for the assembler. * generic/tclAssembly.c: Fixed bugs exposed by the new tests: (a) [bitnot] and [not] had incorrect operand counts. (b) INST_CONCAT cannot concatenate zero objects. (c) misspelt error messages. (d) the "assembly code" internal representation lacked a duplicator, which caused double-frees of the Bytecode object if assembly code ever was duplicated.
* added more tests; fixed a bug in initialization of BasicBlock objKevin B Kenny2010-09-251-0/+10
|
* * tclAssembly.c: Massive refactoring of the assemblerKevin B Kenny2010-09-251-628/+1196
| | | | | | | | | * tclAssembly.h: to use a Tcl-like syntax (and use * tests/assemble.test: Tcl_ParseCommand to parse it). The * tests/assemble1.bench: refactoring also ensures that Tcl_Tokens in the assembler have string ranges inside the source code, which allows for [eval] and [expr] assembler directives that simply call TclCompileScript and TclCompileExpr recursively.
* initial commit of Ozgur Dogan Ugurlu's (SF user:dogeen) assembler for the ↵Kevin B Kenny2010-09-211-0/+1537
Tcl bytecode language