diff options
| author | Mattias EngdegÄrd | 2025-09-18 16:25:02 +0200 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2025-09-18 17:05:29 +0200 |
| commit | 0767f1818a25f1efeefeb24a96eecf553396b2ed (patch) | |
| tree | fe6c44cf51336ff65a205c56ed7cff00bf5f1ad6 /src | |
| parent | 979ddc06019cce249a9ada359b85f3cd4b6a0149 (diff) | |
| download | emacs-0767f1818a25f1efeefeb24a96eecf553396b2ed.tar.gz emacs-0767f1818a25f1efeefeb24a96eecf553396b2ed.zip | |
Don't save quitcounter across longjmp in exec_byte_code
* src/bytecode.c (exec_byte_code): Reset quitcounter to 1 after longjmp;
the exact value isn't important. This may reduce register pressure a
tiny bit or at least remove a useless stack slot.
Diffstat (limited to 'src')
| -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 debb08c2347..318b96a12be 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -526,7 +526,6 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template, | |||
| 526 | for (ptrdiff_t i = nargs - rest; i < nonrest; i++) | 526 | for (ptrdiff_t i = nargs - rest; i < nonrest; i++) |
| 527 | PUSH (Qnil); | 527 | PUSH (Qnil); |
| 528 | 528 | ||
| 529 | unsigned char volatile saved_quitcounter; | ||
| 530 | #if GCC_LINT && __GNUC__ && !__clang__ | 529 | #if GCC_LINT && __GNUC__ && !__clang__ |
| 531 | Lisp_Object *volatile saved_vectorp; | 530 | Lisp_Object *volatile saved_vectorp; |
| 532 | unsigned char const *volatile saved_bytestr_data; | 531 | unsigned char const *volatile saved_bytestr_data; |
| @@ -960,7 +959,7 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template, | |||
| 960 | 959 | ||
| 961 | if (sys_setjmp (c->jmp)) | 960 | if (sys_setjmp (c->jmp)) |
| 962 | { | 961 | { |
| 963 | quitcounter = saved_quitcounter; | 962 | quitcounter = 1; /* no need to restore old value */ |
| 964 | struct handler *c = handlerlist; | 963 | struct handler *c = handlerlist; |
| 965 | handlerlist = c->next; | 964 | handlerlist = c->next; |
| 966 | top = c->bytecode_top; | 965 | top = c->bytecode_top; |
| @@ -990,7 +989,6 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template, | |||
| 990 | goto op_branch; | 989 | goto op_branch; |
| 991 | } | 990 | } |
| 992 | 991 | ||
| 993 | saved_quitcounter = quitcounter; | ||
| 994 | #if GCC_LINT && __GNUC__ && !__clang__ | 992 | #if GCC_LINT && __GNUC__ && !__clang__ |
| 995 | saved_vectorp = vectorp; | 993 | saved_vectorp = vectorp; |
| 996 | saved_bytestr_data = bytestr_data; | 994 | saved_bytestr_data = bytestr_data; |