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:
@@ -9,11 +9,6 @@
|
||||
#include "lj_obj.h"
|
||||
#include "lj_bc.h"
|
||||
|
||||
/* Bytecode instruction modes. */
|
||||
LJ_DATADEF const uint16_t lj_bc_mode[BC__MAX+1] = {
|
||||
BCDEF(BCMODE)
|
||||
0
|
||||
};
|
||||
|
||||
/* Bytecode offsets and bytecode instruction modes. */
|
||||
#include "lj_bcdef.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user