]> git.proxmox.com Git - wasi-libc.git/blob - libc-top-half/musl/src/setjmp/x32/setjmp.s
Update to musl 1.2.2.
[wasi-libc.git] / libc-top-half / musl / src / setjmp / x32 / setjmp.s
1 /* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */
2 .global __setjmp
3 .global _setjmp
4 .global setjmp
5 .type __setjmp,@function
6 .type _setjmp,@function
7 .type setjmp,@function
8 __setjmp:
9 _setjmp:
10 setjmp:
11 mov %rbx,(%rdi) /* rdi is jmp_buf, move registers onto it */
12 mov %rbp,8(%rdi)
13 mov %r12,16(%rdi)
14 mov %r13,24(%rdi)
15 mov %r14,32(%rdi)
16 mov %r15,40(%rdi)
17 lea 8(%rsp),%rdx /* this is our rsp WITHOUT current ret addr */
18 mov %rdx,48(%rdi)
19 mov (%rsp),%rdx /* save return addr ptr for new rip */
20 mov %rdx,56(%rdi)
21 xor %eax,%eax /* always return 0 */
22 ret