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