2 Copyright © 2015, The AROS Development Team. All rights reserved.
5 Desc: ANSI C function siglongjmp()
9 #include "aros/x86_64/asm.h"
13 .globl AROS_CDEFNAME(siglongjmp)
14 _FUNCTION
(AROS_CDEFNAME
(siglongjmp
))
16 .set FirstArg, 8 /* Skip Return-Adress */
20 AROS_CDEFNAME
(siglongjmp
):
23 /* Make sure return value is not 0 */
29 /* Restore stack pointer and all registers from env */
30 mov
120(%rax
),%rsp
/* Restore original stack */
33 mov
%rcx
,retaddr
(%rsp
) /* Restore return address */
35 push
%rsi
/* Save return value on new stack */
37 /* Restore all registers */
38 mov
8(%rax
),%rbx
/* %ebx */
39 mov
16(%rax
),%rcx
/* %ecx */
40 mov
24(%rax
),%rdx
/* %edx */
41 mov
32(%rax
),%rsi
/* %esi */
42 mov
40(%rax
),%rdi
/* %edi */
43 mov
48(%rax
),%rbp
/* %ebp */
53 pop
%rax
/* Fetch return value */