Posted to tcl by kbk at Mon Mar 13 14:51:30 GMT 2017view raw
- % proc bar {vname} {
- upvar 1 $vname v
- puts $v
- }
- % tcl::unsupported::disassemble proc bar
- ByteCode 0x0x13f6e10, refCt 1, epoch 15, interp 0x0x13665b0 (epoch 15)
- Source "\n upvar 1 $vname v\n puts $..."
- Cmds 2, src 34, inst 20, litObjs 3, aux 0, stkDepth 2, code/src 0.00
- Proc 0x0x13c6ea0, refCt 1, args 1, compiled locals 2
- slot 0, scalar, arg, "vname"
- slot 1, scalar, "v"
- Commands 2:
- 1: pc 0-12, src 5-20 2: pc 13-18, src 26-32
- Command 1: "upvar 1 $vname v..."
- (0) push1 0 # "1"
- (2) loadScalar1 %v0 # var "vname"
- (4) upvar %v1 # var "v"
- (9) pop
- (10) nop
- (11) nop
- (12) nop
- Command 2: "puts $v..."
- (13) push1 2 # "puts"
- (15) loadScalar1 %v1 # var "v"
- (17) invokeStk1 2
- (19) done