aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorNickolas Lloyd2017-01-29 13:22:06 -0500
committerNickolas Lloyd2017-01-29 13:22:06 -0500
commit5b62317b697c04b4120a026e53309e04e15bd9e0 (patch)
treea08d28e9fec3aad5aae203fe7727e0cc0ceac7d5 /src/bytecode.c
parent932eacc3df12fea80aa4c17cc8413d7a7355f512 (diff)
downloademacs-5b62317b697c04b4120a026e53309e04e15bd9e0.tar.gz
emacs-5b62317b697c04b4120a026e53309e04e15bd9e0.zip
Small speed improvement for JITed lisp function dispatch
* src/alloc.c (make-byte-code): * src/bytecode-jit.c (jit_byte_code__): * src/bytecode.c [HAVE_LIBJIT] (exec_byte_code): * src/eval.c (funcall_lambda): * src/lisp.h (funcall_lambda): Store pointer to bytecode execution function (either `exec_byte_code' or `jit_exec') in Lisp_Compiled objects to avoid the need for an extra function call in `exec_byte_code'.
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index 8b132caac0a..3e64d2f42b6 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -1291,9 +1291,7 @@ exec_byte_code (Lisp_Object byte_code, Lisp_Object args_template,
1291 ptrdiff_t nargs, Lisp_Object *args) 1291 ptrdiff_t nargs, Lisp_Object *args)
1292{ 1292{
1293#ifdef HAVE_LIBJIT 1293#ifdef HAVE_LIBJIT
1294 if (AREF (byte_code, COMPILED_JIT_CTXT) != (Lisp_Object )NULL) 1294 if (byte_code_jit_on)
1295 return jit_exec (byte_code, args_template, nargs, args);
1296 else if (byte_code_jit_on)
1297 { 1295 {
1298 jit_byte_code__ (byte_code); 1296 jit_byte_code__ (byte_code);
1299 return jit_exec (byte_code, args_template, nargs, args); 1297 return jit_exec (byte_code, args_template, nargs, args);