Files
emacs/src
Mattias Engdegård 751c8f88c4 Put bytecode stack frame metadata in a struct
Using a plain C struct instead of type-punning Lisp_Object stack slots
makes the bytecode interpreter code more type-safe and potentially
faster (from better alias analysis), and the special-purpose accessors
are no longer needed.  It also reduces the stack requirements when
using 64-bit Lisp_Object on 32-bit platforms.

* src/bytecode.c (enum stack_frame_index)
(sf_get_ptr, sf_set_ptr, sf_get_lisp_ptr, sf_set_lisp_ptr,
sf_get_saved_pc, sf_set_saved_pc): Remove.
(BC_STACK_SIZE): Now in bytes, not Lisp words.
(struct bc_frame): New.
(init_bc_thread, mark_bytecode, Finternal_stack_stats, valid_sp)
(exec_byte_code):
* src/lisp.h (struct handler, get_act_rec, set_act_rec):
Adapt to new struct bc_frame.
2022-03-17 16:38:22 +01:00
..
2022-03-13 17:51:49 +01:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-03-15 21:21:20 +02:00
2022-03-16 17:52:41 -07:00
2022-03-16 17:52:41 -07:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-24 11:41:47 +01:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-02-16 12:33:35 +01:00
2022-03-12 06:34:05 +01:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-03-14 09:06:20 -07:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-03-04 00:52:18 +00:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-03-13 17:51:49 +01:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-03-16 17:52:41 -07:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-03-04 00:52:18 +00:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-03-16 08:42:33 +08:00
2022-03-16 13:28:53 +00:00
2022-03-17 07:17:13 +00:00
2022-01-01 07:07:15 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-03-08 18:51:18 -08:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 07:03:03 -05:00
2022-03-10 21:23:55 +00:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-03-17 11:51:32 +08:00
2022-01-01 07:07:15 -05:00
2022-02-07 10:38:15 +08:00
2022-03-10 11:48:12 +08:00
2022-02-07 10:38:15 +08:00
2022-01-01 07:07:15 -05:00
2022-03-17 11:59:56 +08:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:07:15 -05:00
2022-01-01 02:45:51 -05:00
2022-03-16 17:52:41 -07:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-03-13 17:51:49 +01:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-26 12:59:10 +01:00
2022-01-01 07:03:03 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-03-04 00:52:18 +00:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-03-10 11:48:12 +08:00
2022-02-10 18:45:35 +08:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 02:45:51 -05:00
2022-01-01 07:03:03 -05:00
2022-01-16 19:45:54 +08:00
2022-01-01 02:45:51 -05:00

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Copyright (C) 2001-2022 Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs is copied elsewhere.

See the files ../README and then ../INSTALL for installation instructions.

The file 'Makefile.in' is used as a template by the script
'../configure' to produce 'Makefile'.  This is the file which actually
controls the compilation of Emacs C source files.  All of this should
work transparently; you should only need to change to the parent
directory, run './configure', and then run 'make'.

This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.