mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-30 00:08:30 +00:00
Allocate explicit stack on aarch64
This commit is contained in:
parent
0e586c834a
commit
de3f3a9e5a
10 changed files with 144 additions and 74 deletions
|
@ -154,19 +154,16 @@ forceinline pureconst bool IsStackFrame(int x) {
|
|||
}
|
||||
|
||||
forceinline pureconst bool IsOldStack(const void *x) {
|
||||
/* openbsd uses 4mb stack by default */
|
||||
/* freebsd uses 512mb stack by default */
|
||||
/* most systems use 8mb stack by default */
|
||||
size_t foss_stack_size = 1ul * 1024 * 1024;
|
||||
uintptr_t top = ROUNDUP(__oldstack + 1, foss_stack_size);
|
||||
uintptr_t bot = ROUNDDOWN(__oldstack, foss_stack_size);
|
||||
size_t foss_stack_size = 8ul * 1024 * 1024;
|
||||
uintptr_t top = __oldstack + foss_stack_size;
|
||||
uintptr_t bot = __oldstack - foss_stack_size;
|
||||
return bot <= (uintptr_t)x && (uintptr_t)x < top;
|
||||
}
|
||||
|
||||
forceinline pureconst bool IsOldStackFrame(int x) {
|
||||
size_t foss_stack_size = 1ul * 1024 * 1024;
|
||||
uintptr_t top = ROUNDUP(__oldstack + 1, foss_stack_size);
|
||||
uintptr_t bot = ROUNDDOWN(__oldstack, foss_stack_size);
|
||||
size_t foss_stack_size = 8ul * 1024 * 1024;
|
||||
uintptr_t top = __oldstack + foss_stack_size;
|
||||
uintptr_t bot = __oldstack - foss_stack_size;
|
||||
return (int)(bot >> 16) <= x && x <= (int)((top >> 16) - 1);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue