summaryrefslogtreecommitdiff
path: root/astartup.asm
diff options
context:
space:
mode:
Diffstat (limited to 'astartup.asm')
-rw-r--r--astartup.asm34
1 files changed, 30 insertions, 4 deletions
diff --git a/astartup.asm b/astartup.asm
index 4481e3d..f525ba7 100644
--- a/astartup.asm
+++ b/astartup.asm
@@ -603,11 +603,24 @@ _DATA ends
abc_main:
push rbx
- push rcx
- push rdx
push rbp
push rsi
push rdi
+ ifndef LINUX
+ db 49h
+ push rsp
+ db 49h
+ push rbp
+ db 49h
+ push rsi
+ db 49h
+ push rdi
+ else
+ push r12
+ push r13
+ push r14
+ push r15
+ endif
call init_clean
test rax,rax
@@ -638,11 +651,24 @@ exit:
call exit_clean
init_error:
+ ifndef LINUX
+ db 49h
+ pop rdi
+ db 49h
+ pop rsi
+ db 49h
+ pop rbp
+ db 49h
+ pop rsp
+ else
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ endif
pop rdi
pop rsi
pop rbp
- pop rdx
- pop rcx
pop rbx
ifdef LINUX