diff --git a/libc/crt/crt.S b/libc/crt/crt.S index 9b24c907d..83a06c735 100644 --- a/libc/crt/crt.S +++ b/libc/crt/crt.S @@ -73,6 +73,9 @@ _start: // align stack to GetStackSize() so GetStackAddr() is fast .weak ape_stack_memsz mov $ape_stack_memsz,%r8d + mov $ape_stack_align,%r9d + cmp $_HOSTMETAL,%cl + cmove %r9d,%r8d neg %r8 and %r8,%rsp xor %ebp,%ebp diff --git a/libc/intrin/mman.greg.c b/libc/intrin/mman.greg.c index 1686f9932..70bcb9cd3 100644 --- a/libc/intrin/mman.greg.c +++ b/libc/intrin/mman.greg.c @@ -61,7 +61,7 @@ noasan texthead uint64_t __new_page(struct mman *mm) { struct ReclaimedPage *rp = (struct ReclaimedPage *)(BANE + p); _unassert(p == (p & PAGE_TA)); q = rp->next; - _unassert(q == (q & PAGE_TA)); + _unassert(q == (q & PAGE_TA) || q == NOPAGE); mm->frp = q; return p; }