summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/x86_64/setjmp.S
blob: 3d1ec11f0c0228defadd46e6c37fe2b7c3a2a3af (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
30
31
32
33
34
35
36
37
#include <setjmp.h>
#include "dietwarning.h"

.text
.weak setjmp
.type setjmp,@function
setjmp:
.globl __setjmp
.type __setjmp,@function
__setjmp:
	xorq	%rsi,%rsi

.globl __sigsetjmp
.type __sigsetjmp,@function
__sigsetjmp:
	movq	%rbx,(JB_RBX*8)(%rdi)
	movq	%rbp,(JB_RBP*8)(%rdi)
	movq	%r12,(JB_R12*8)(%rdi)
	movq	%r13,(JB_R13*8)(%rdi)
	movq	%r14,(JB_R14*8)(%rdi)
	movq	%r15,(JB_R15*8)(%rdi)
	leaq	8(%rsp),%rdx
	movq	%rdx,(JB_RSP*8)(%rdi)
	movq	(%rsp),%rdx
	movq	%rdx,(JB_PC*8)(%rdi)
#ifdef	PIC
	jmp	__sigjmp_save@PLT
#else
	jmp	__sigjmp_save
#endif
.size __sigsetjmp,.-__sigsetjmp;

link_warning("setjmp","setjmp() not yet tested")
link_warning("__sigsetjmp","setjmp() not yet tested")
//link_warning("setjmp","error: setjmp() not yet implemented")
//link_warning("__sigsetjmp","error: setjmp() not yet implemented")