diff options
| author | Mattias EngdegÄrd | 2022-01-02 11:35:16 +0100 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2022-01-11 15:22:48 +0100 |
| commit | 1eacfb3c888764908d2ee421e16c020e7343b5a1 (patch) | |
| tree | d908a9a5e1d1b17174c9e52d93ed916ddad0ca1b /src/bytecode.c | |
| parent | 1dca615cf9132c59728bba6fd8f3e50498bf2a27 (diff) | |
| download | emacs-1eacfb3c888764908d2ee421e16c020e7343b5a1.tar.gz emacs-1eacfb3c888764908d2ee421e16c020e7343b5a1.zip | |
Remove the unused unbind-all bytecode
It was implemented but never generated, originally intended for
TCO in the pre-lexbind era (which was semantically dubious anyway).
Removing it speeds up the interpreter because there is no longer any
need for the outermost `count` variable unless checking is enabled.
* lisp/emacs-lisp/bytecomp.el:
* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst):
* src/bytecode.c (BYTE_CODES, exec_byte_code):
Remove definition and implementation of unbind-all, freeing up the opcode
for other purposes.
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 635058823c8..97d47a3d9c1 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -227,7 +227,7 @@ DEFINE (Bcondition_case, 0217) /* Obsolete since Emacs-25. */ \ | |||
| 227 | DEFINE (Btemp_output_buffer_setup, 0220) /* Obsolete since Emacs-24.1. */ \ | 227 | DEFINE (Btemp_output_buffer_setup, 0220) /* Obsolete since Emacs-24.1. */ \ |
| 228 | DEFINE (Btemp_output_buffer_show, 0221) /* Obsolete since Emacs-24.1. */ \ | 228 | DEFINE (Btemp_output_buffer_show, 0221) /* Obsolete since Emacs-24.1. */ \ |
| 229 | \ | 229 | \ |
| 230 | DEFINE (Bunbind_all, 0222) /* Obsolete. Never used. */ \ | 230 | /* 0222 was Bunbind_all, never used. */ \ |
| 231 | \ | 231 | \ |
| 232 | DEFINE (Bset_marker, 0223) \ | 232 | DEFINE (Bset_marker, 0223) \ |
| 233 | DEFINE (Bmatch_beginning, 0224) \ | 233 | DEFINE (Bmatch_beginning, 0224) \ |
| @@ -703,12 +703,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 703 | unbind_to (SPECPDL_INDEX () - op, Qnil); | 703 | unbind_to (SPECPDL_INDEX () - op, Qnil); |
| 704 | NEXT; | 704 | NEXT; |
| 705 | 705 | ||
| 706 | CASE (Bunbind_all): /* Obsolete. Never used. */ | ||
| 707 | /* To unbind back to the beginning of this frame. Not used yet, | ||
| 708 | but will be needed for tail-recursion elimination. */ | ||
| 709 | unbind_to (count, Qnil); | ||
| 710 | NEXT; | ||
| 711 | |||
| 712 | CASE (Bgoto): | 706 | CASE (Bgoto): |
| 713 | op = FETCH2; | 707 | op = FETCH2; |
| 714 | op_branch: | 708 | op_branch: |