diff options
| author | Paul Eggert | 2016-08-09 00:37:40 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-08-09 01:31:22 -0700 |
| commit | 644fc17b9ae181174a842e3876e887666d505666 (patch) | |
| tree | 25fd8d1b3e1a32753d3db759d0909acbc2b12e77 /src/alloc.c | |
| parent | cb71a119f7231984e010cc28ef33854721036a0f (diff) | |
| download | emacs-644fc17b9ae181174a842e3876e887666d505666.tar.gz emacs-644fc17b9ae181174a842e3876e887666d505666.zip | |
Remove interpreter’s byte stack
This improves performance overall on my benchmark on x86-64,
since the interpreted program-counter resides in a machine
register rather than in RAM.
* etc/DEBUG, src/.gdbinit: Remove xbytecode GDB command, as there
is no longer a byte stack to decode.
* src/bytecode.c (struct byte_stack, byte_stack_list)
(relocate_byte_stack): Remove. All uses removed.
(FETCH): Simplify now that pc is now local (typically, in a
register) and no longer needs to be relocated.
(CHECK_RANGE): Remove. All uses now done inline, in a different way.
(BYTE_CODE_QUIT): Remove; now done by op_relative_branch.
(exec_byte_code): Allocate a copy of the function’s bytecode,
so that there is no problem if GC moves it.
* src/lisp.h (struct handler): Remove byte_stack member.
All uses removed.
(SAFE_ALLOCA_LISP_EXTRA): New macro, a generalization of
SAFE_ALLOCA_LISP.
(SAFE_ALLOCA_LISP): Use it.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c index e25d91ff8aa..db165757e19 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -5799,8 +5799,6 @@ garbage_collect_1 (void *end) | |||
| 5799 | 5799 | ||
| 5800 | gc_sweep (); | 5800 | gc_sweep (); |
| 5801 | 5801 | ||
| 5802 | relocate_byte_stack (); | ||
| 5803 | |||
| 5804 | /* Clear the mark bits that we set in certain root slots. */ | 5802 | /* Clear the mark bits that we set in certain root slots. */ |
| 5805 | VECTOR_UNMARK (&buffer_defaults); | 5803 | VECTOR_UNMARK (&buffer_defaults); |
| 5806 | VECTOR_UNMARK (&buffer_local_symbols); | 5804 | VECTOR_UNMARK (&buffer_local_symbols); |