summaryrefslogtreecommitdiff
path: root/src/lj_vm.h
diff options
context:
space:
mode:
authorMike Pall <mike>2010-02-13 04:51:56 +0100
committerMike Pall <mike>2010-02-13 04:51:56 +0100
commitc93138b59e8f28b3d412cd7ec0c6631fd27e3e1b (patch)
tree8c0ffe2086ab0b032ed8e9f92ae6fb9d4d040d66 /src/lj_vm.h
parent4f8d7be8ea8a103f4d9046188d6005740b74f3d4 (diff)
downloadluajit-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.h6
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);
44LJ_ASMF void lj_vm_pow_sse(void); 44LJ_ASMF void lj_vm_pow_sse(void);
45LJ_ASMF void lj_vm_powi_sse(void); 45LJ_ASMF void lj_vm_powi_sse(void);
46 46
47/* Call gates for functions. */
48LJ_ASMF void lj_gate_lf(void);
49LJ_ASMF void lj_gate_lv(void);
50LJ_ASMF void lj_gate_c(void);
51LJ_ASMF void lj_gate_cwrap(void);
52
53/* Continuations for metamethods. */ 47/* Continuations for metamethods. */
54LJ_ASMF void lj_cont_cat(void); /* Continue with concatenation. */ 48LJ_ASMF void lj_cont_cat(void); /* Continue with concatenation. */
55LJ_ASMF void lj_cont_ra(void); /* Store result in RA from instruction. */ 49LJ_ASMF void lj_cont_ra(void); /* Store result in RA from instruction. */