diff options
author | Mike Pall <mike> | 2010-02-13 04:51:56 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-02-13 04:51:56 +0100 |
commit | c93138b59e8f28b3d412cd7ec0c6631fd27e3e1b (patch) | |
tree | 8c0ffe2086ab0b032ed8e9f92ae6fb9d4d040d66 /src/lj_vm.h | |
parent | 4f8d7be8ea8a103f4d9046188d6005740b74f3d4 (diff) | |
download | luajit-c93138b59e8f28b3d412cd7ec0c6631fd27e3e1b.tar.gz luajit-c93138b59e8f28b3d412cd7ec0c6631fd27e3e1b.tar.bz2 luajit-c93138b59e8f28b3d412cd7ec0c6631fd27e3e1b.zip |
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.
Diffstat (limited to '')
-rw-r--r-- | src/lj_vm.h | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/src/lj_vm.h b/src/lj_vm.h index b25f182a..46312bb8 100644 --- a/src/lj_vm.h +++ b/src/lj_vm.h | |||
@@ -44,12 +44,6 @@ LJ_ASMF void lj_vm_exp2(void); | |||
44 | LJ_ASMF void lj_vm_pow_sse(void); | 44 | LJ_ASMF void lj_vm_pow_sse(void); |
45 | LJ_ASMF void lj_vm_powi_sse(void); | 45 | LJ_ASMF void lj_vm_powi_sse(void); |
46 | 46 | ||
47 | /* Call gates for functions. */ | ||
48 | LJ_ASMF void lj_gate_lf(void); | ||
49 | LJ_ASMF void lj_gate_lv(void); | ||
50 | LJ_ASMF void lj_gate_c(void); | ||
51 | LJ_ASMF void lj_gate_cwrap(void); | ||
52 | |||
53 | /* Continuations for metamethods. */ | 47 | /* Continuations for metamethods. */ |
54 | LJ_ASMF void lj_cont_cat(void); /* Continue with concatenation. */ | 48 | LJ_ASMF void lj_cont_cat(void); /* Continue with concatenation. */ |
55 | LJ_ASMF void lj_cont_ra(void); /* Store result in RA from instruction. */ | 49 | LJ_ASMF void lj_cont_ra(void); /* Store result in RA from instruction. */ |