Implement __chkstk for arm64

Lifted from a previously built SDL3.dll
This commit is contained in:
Anonymous Maarten authored and Anonymous Maarten committed 2025-01-02 01:15:28 +01:00
1 parent 578ac0ef52
commit 4fbf59ac3a
4 files changed
+47 -13

No files matched your search

-8
View File
@@ -728,14 +728,6 @@ void __declspec(naked) _alloca_probe_16(void)
#endif // _M_IX86
#ifdef _M_ARM64
void __chkstk(void);
void __chkstk() {
}
#endif
#endif // MSC_VER
#ifdef __ICL
+26
View File
@@ -0,0 +1,26 @@
TeStackLimit EQU 0x00010
PAGE_SIZE equ 0x1000
AREA CODE, READONLY
EXPORT __chkstk
__chkstk PROC
ldr x17,[x18, #TeStackLimit]
subs x16,sp,x15, LSL #0x4
csel x16,xzr,x16,cc
cmp x16,x17
b.cc chkstk_start_loop
ret
chkstk_start_loop
and x16,x16,#-PAGE_SIZE
chkstk_loop
sub x17,x17,#0x1, LSL #12
ldr xzr,[x17]
cmp x17,x16
b.ne chkstk_loop
ret
ENDP
END