revert between 56095 -> 55830 in arch
[AROS.git] / arch / x86_64-all / posixc / sigsetjmp.s
blob698c85159444d8bab33e830c922a348e756094cc
1 /*
2 Copyright © 2015, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: ANSI C function sigsetjmp()
6 Lang: english
7 */
9 #include "aros/x86_64/asm.h"
11 .text
12 _ALIGNMENT
13 .globl AROS_CDEFNAME(sigsetjmp)
14 _FUNCTION(AROS_CDEFNAME(sigsetjmp))
16 AROS_CDEFNAME(sigsetjmp):
17 /* Save stack pointer and all registers into env */
18 mov %rbx,8(%rdi) /* %ebx */
19 mov %rcx,16(%rdi) /* %ecx */
20 mov %rdx,24(%rdi) /* %edx */
21 mov %rsi,32(%rdi) /* %esi */
22 mov %rdi,40(%rdi) /* %edi */
23 mov %rbp,48(%rdi) /* %ebp */
24 mov %r8,56(%rdi)
25 mov %r9,64(%rdi)
26 mov %r10,72(%rdi)
27 mov %r11,80(%rdi)
28 mov %r12,88(%rdi)
29 mov %r13,96(%rdi)
30 mov %r14,104(%rdi)
31 mov %r15,112(%rdi)
32 mov %rsp,120(%rdi) /* %esp */
34 mov retaddr(%rsp),%rax /* Save return address (%esp has changed) */
35 mov %rax,0(%rdi)
37 xor %rax,%rax /* Return 0 */
38 ret