Posted to tcl by kbk at Mon Mar 13 14:51:30 GMT 2017view pretty
% 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