diff options
| author | Nickolas Lloyd | 2017-01-29 13:22:06 -0500 |
|---|---|---|
| committer | Nickolas Lloyd | 2017-01-29 13:22:06 -0500 |
| commit | 5b62317b697c04b4120a026e53309e04e15bd9e0 (patch) | |
| tree | a08d28e9fec3aad5aae203fe7727e0cc0ceac7d5 /src/bytecode.c | |
| parent | 932eacc3df12fea80aa4c17cc8413d7a7355f512 (diff) | |
| download | emacs-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.c | 4 |
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); |