Posted to tcl by kbk at Mon Mar 13 14:51:30 GMT 2017view raw

  1. % proc bar {vname} {
  2. upvar 1 $vname v
  3. puts $v
  4. }
  5. % tcl::unsupported::disassemble proc bar
  6. ByteCode 0x0x13f6e10, refCt 1, epoch 15, interp 0x0x13665b0 (epoch 15)
  7. Source "\n upvar 1 $vname v\n puts $..."
  8. Cmds 2, src 34, inst 20, litObjs 3, aux 0, stkDepth 2, code/src 0.00
  9. Proc 0x0x13c6ea0, refCt 1, args 1, compiled locals 2
  10. slot 0, scalar, arg, "vname"
  11. slot 1, scalar, "v"
  12. Commands 2:
  13. 1: pc 0-12, src 5-20 2: pc 13-18, src 26-32
  14. Command 1: "upvar 1 $vname v..."
  15. (0) push1 0 # "1"
  16. (2) loadScalar1 %v0 # var "vname"
  17. (4) upvar %v1 # var "v"
  18. (9) pop
  19. (10) nop
  20. (11) nop
  21. (12) nop
  22. Command 2: "puts $v..."
  23. (13) push1 2 # "puts"
  24. (15) loadScalar1 %v1 # var "v"
  25. (17) invokeStk1 2
  26. (19) done
  27.  
  28.