summaryrefslogtreecommitdiff
path: root/contrib/SDL-3.2.8/src/stdlib/SDL_mslibc_x64.masm
blob: 1590d88ae7aec386866a9fc62e3ab5aaa712004a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
include ksamd64.inc

text        SEGMENT EXECUTE

public      __chkstk

__chkstk:
    sub         rsp,010h
    mov         QWORD PTR [rsp],r10
    mov         QWORD PTR [rsp+08h],r11
    xor         r11,r11
    lea         r10,[rsp+018h]
    sub         r10,rax
    cmovb       r10,r11
    mov         r11,QWORD PTR gs:[TeStackLimit]
    cmp         r10,r11
    jae         chkstk_finish
    and         r10w,0f000h
chkstk_loop:
    lea         r11,[r11-PAGE_SIZE]
    mov         BYTE PTR [r11],0h
    cmp         r10,r11
    jne         chkstk_loop
chkstk_finish:
    mov         r10,QWORD PTR [rsp]
    mov         r11,QWORD PTR [rsp+08h]
    add         rsp,010h
    ret
end