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:
@@ -32,7 +32,7 @@ if exist buildvm.exe.manifest^
|
||||
%LJMT% -manifest buildvm.exe.manifest -outputresource:buildvm.exe
|
||||
|
||||
buildvm -m peobj -o lj_vm.obj
|
||||
buildvm -m bcdef -o lj_bcdef.h
|
||||
buildvm -m bcdef -o lj_bcdef.h %ALL_LIB%
|
||||
buildvm -m ffdef -o lj_ffdef.h %ALL_LIB%
|
||||
buildvm -m libdef -o lj_libdef.h %ALL_LIB%
|
||||
buildvm -m recdef -o lj_recdef.h %ALL_LIB%
|
||||
|
||||
Reference in New Issue
Block a user