diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-01-09 15:45:27 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-01-09 15:45:27 -0800 |
commit | 7d5f0b7e3613f8e8be84ac0d541a7bbcb4782f1d (patch) | |
tree | b76f4aa9c360724a432b5ebe6ced2dcd11e49858 /arith.h | |
parent | fdf67dae2092e0d6fe460e16a939080493e00a3b (diff) | |
download | txr-7d5f0b7e3613f8e8be84ac0d541a7bbcb4782f1d.tar.gz txr-7d5f0b7e3613f8e8be84ac0d541a7bbcb4782f1d.tar.bz2 txr-7d5f0b7e3613f8e8be84ac0d541a7bbcb4782f1d.zip |
gc: obtain stack top using alloca.
This trick gets rid of the hack for aarch64. If we call
alloca, the pointer we get should be below all frame
information. Even if for the given target, the
compiler-generated code happens to be saving callee-saved
registers below the declared variables, any pointer we get
from alloca must be below all of that still.
* gc.c (STACK_TOP_EXTRA_WORDS): Macro removed.
(mark): Don't subtract STACK_TOP_EXTRA_WORDS from
gc_stack_top; take the top as-is.
(gc): Don't allocate the machine context as an automatic
variable; obtain the storage for it from alloca.
That then also serves as the stack top.
Diffstat (limited to 'arith.h')
0 files changed, 0 insertions, 0 deletions