Lua5.3 虚拟机指令分析(六)不定参数
OP_VARARG
OP_VARARG,/* A B R(A), R(A+1), ..., R(A+B-2) = vararg */
TTcs-Mac-mini:OpCode ttc$ cat tOP_VARARG.lua
f1 = function(...) end
f1(10,20,...)
TTcs-Mac-mini:OpCode ttc$ ./luac -l -l tOP_VARARG.lua
main <tOP_VARARG.lua:0,0> (8 instructions at 0x7fa857403870)
0+ params, 4 slots, 1 upvalue, 0 locals, 3 constants, 1 function
1 [1] CLOSURE (iABx) [A]0 [U]0 ; 0x7fa857403a20
2 [1] SETTABUP (iABC) [A]0 [ISK]256[B]-1[ISK]0[C]0 ; _ENV "f1"
3 [3] GETTABUP (iABC) [A]0 [ISK]0[B]0[ISK]256[C]-1 ; _ENV "f1"
4 [3] LOADK (iABx) [A]1 [K]-2 ; 10
5 [3] LOADK (iABx) [A]2 [K]-3 ; 20
6 [3] VARARG (iABC) [A]3 [ISK]0[B]0[ISK]0
7 [3] CALL (iABC) [A]0 [ISK]0[B]0[ISK]0[C]1
8 [3] RETURN (iABC) [A]0 [ISK]0[B]1[ISK]0
constants (3) for 0x7fa857403870:
1(idx)