Major redesign of function call handling.
Drop call gates. Use function headers, dispatched like bytecodes. Emit BC_FUNCF/BC_FUNCV bytecode at PC 0 for all Lua functions. C functions and ASM fast functions get extra bytecodes. Modify internal calling convention: new base in BASE (formerly in RA). Can now use better C function wrapper semantics (dynamic on/off). Prerequisite for call hooks with zero-overhead if disabled. Prerequisite for compiling recursive calls. Prerequisite for efficient 32/64 bit prototype guards.
This commit is contained in:
@@ -705,10 +705,7 @@ void lj_gdbjit_addtrace(jit_State *J, Trace *T, TraceNo traceno)
|
||||
ctx.szmcode = T->szmcode;
|
||||
ctx.spadjp = CFRAME_SIZE + (MSize)(parent ? J->trace[parent]->spadjust : 0);
|
||||
ctx.spadj = CFRAME_SIZE + T->spadjust;
|
||||
if (startpc >= proto_bc(pt))
|
||||
ctx.lineno = proto_line(pt,proto_bcpos(pt,startpc));
|
||||
else
|
||||
ctx.lineno = pt->linedefined;
|
||||
ctx.lineno = proto_line(pt, proto_bcpos(pt, startpc));
|
||||
ctx.filename = strdata(proto_chunkname(pt));
|
||||
if (*ctx.filename == '@' || *ctx.filename == '=')
|
||||
ctx.filename++;
|
||||
|
||||
Reference in New Issue
Block a user