bytecode reference update

gccjit-ravi534
Dibyendu Majumdar 8 years ago
parent e049c9ab73
commit a2a3658923

@ -244,6 +244,8 @@ More examples
x=function() y() end
Produces::
function <stdin:1,1> (3 instructions at 000000CECB2BE040)
0 params, 2 slots, 1 upvalue, 0 locals, 1 constant, 0 functions
1 [1] GETTABUP 0 0 -1 ; _ENV "y"
@ -259,6 +261,8 @@ In line [2], the call has zero parameters (field B is 1), zero results are retai
x=function() z(1,2,3) end
Generates::
function <stdin:1,1> (6 instructions at 000000CECB2D7BC0)
0 params, 4 slots, 1 upvalue, 0 locals, 4 constants, 0 functions
1 [1] GETTABUP 0 0 -1 ; _ENV "z"
@ -282,6 +286,8 @@ Lines [1] to [4] loads the function reference and the arguments in order, then l
x=function() local p,q,r,s = z(y()) end
Produces::
function <stdin:1,1> (5 instructions at 000000CECB2D6CC0)
0 params, 4 slots, 1 upvalue, 4 locals, 2 constants, 0 functions
1 [1] GETTABUP 0 0 -1 ; _ENV "z"
@ -305,6 +311,8 @@ has a field C of 0, meaning multiple return values are accepted. These return va
x=function() print(string.char(64)) end
Leads to::
function <stdin:1,1> (7 instructions at 000000CECB2D6220)
0 params, 3 slots, 1 upvalue, 0 locals, 4 constants, 0 functions
1 [1] GETTABUP 0 0 -1 ; _ENV "print"
@ -351,8 +359,9 @@ An '``OP_TAILCALL``' is used only for one specific return style, described above
::
> function y() return x('foo', 'bar') end
> ravi.dumplua(y)
function y() return x('foo', 'bar') end
Generates::
function <stdin:1,1> (6 instructions at 000000C3C24DE4A0)
0 params, 3 slots, 1 upvalue, 0 locals, 3 constants, 0 functions

Loading…
Cancel
Save