Lua5.3 虚拟机指令分析(五)函数调用
OP_CLOSURE
OP_CLOSURE,/* A Bx R(A) := closure(KPROTO[Bx]) */
TTcs-Mac-mini:OpCode ttc$ cat tOP_CLOSURE.lua
function f1() end
TTcs-Mac-mini:OpCode ttc$ ./luac -l -l tOP_CLOSURE.lua
main <tOP_CLOSURE.lua:0,0> (3 instructions at 0x7fdcfcc039d0)
0+ params, 2 slots, 1 upvalue, 0 locals, 1 constant, 1 function
1 [1] CLOSURE (iABx) [A]0 [U]0 ; 0x7fdcfcc03b80
2 [1] SETTABUP (iABC) [A]0 [ISK]256[B]-1[ISK]0[C]0 ; _ENV "f1"
3 [1] RETURN (iABC) [A]0 [ISK]0[B]1[ISK]0
constants (1) for 0x7fdcfcc039d0:
1(idx) "f1"
locals (0) for 0x7fdcfcc039d0:
upvalues (1) for 0x7fdcfcc039d0:
0 _ENV(name) 1(instack) 0(idx)
function <tOP_CLOSURE.lua:1,1> (1 instruction at 0x7fdcfcc03b80)
0 params, 2 slots, 0 upvalues, 0 locals, 0 constants, 0 functions
1 [1] RETURN (iABC) [A]0 [ISK]0[B]1[ISK]0
co