mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 06:48:31 +00:00
[metal] Fix some issues that were breaking UEFI boot (#822)
Co-authored-by: tkchia <tkchia-cosmo@gmx.com>
This commit is contained in:
parent
5c40800d69
commit
90645f4dac
2 changed files with 4 additions and 1 deletions
|
@ -73,6 +73,9 @@ _start:
|
||||||
// align stack to GetStackSize() so GetStackAddr() is fast
|
// align stack to GetStackSize() so GetStackAddr() is fast
|
||||||
.weak ape_stack_memsz
|
.weak ape_stack_memsz
|
||||||
mov $ape_stack_memsz,%r8d
|
mov $ape_stack_memsz,%r8d
|
||||||
|
mov $ape_stack_align,%r9d
|
||||||
|
cmp $_HOSTMETAL,%cl
|
||||||
|
cmove %r9d,%r8d
|
||||||
neg %r8
|
neg %r8
|
||||||
and %r8,%rsp
|
and %r8,%rsp
|
||||||
xor %ebp,%ebp
|
xor %ebp,%ebp
|
||||||
|
|
|
@ -61,7 +61,7 @@ noasan texthead uint64_t __new_page(struct mman *mm) {
|
||||||
struct ReclaimedPage *rp = (struct ReclaimedPage *)(BANE + p);
|
struct ReclaimedPage *rp = (struct ReclaimedPage *)(BANE + p);
|
||||||
_unassert(p == (p & PAGE_TA));
|
_unassert(p == (p & PAGE_TA));
|
||||||
q = rp->next;
|
q = rp->next;
|
||||||
_unassert(q == (q & PAGE_TA));
|
_unassert(q == (q & PAGE_TA) || q == NOPAGE);
|
||||||
mm->frp = q;
|
mm->frp = q;
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue