Home | History | Annotate | Line # | Download | only in x86_64
      1  1.1  jmcneill /*	$NetBSD: setjmp.S,v 1.1.1.1 2018/08/16 18:17:47 jmcneill Exp $	*/
      2  1.1  jmcneill 
      3  1.1  jmcneill 	.text
      4  1.1  jmcneill 	.globl	setjmp
      5  1.1  jmcneill #ifndef __MINGW32__
      6  1.1  jmcneill 	.type setjmp, @function
      7  1.1  jmcneill #else
      8  1.1  jmcneill 	.def setjmp; .scl 2; .type 32; .endef
      9  1.1  jmcneill #endif
     10  1.1  jmcneill setjmp:
     11  1.1  jmcneill 	pop	%rsi
     12  1.1  jmcneill 	movq	%rbx,0x00(%rdi)
     13  1.1  jmcneill 	movq	%rsp,0x08(%rdi)
     14  1.1  jmcneill 	push	%rsi
     15  1.1  jmcneill 	movq	%rbp,0x10(%rdi)
     16  1.1  jmcneill 	movq	%r12,0x18(%rdi)
     17  1.1  jmcneill 	movq	%r13,0x20(%rdi)
     18  1.1  jmcneill 	movq	%r14,0x28(%rdi)
     19  1.1  jmcneill 	movq	%r15,0x30(%rdi)
     20  1.1  jmcneill 	movq	%rsi,0x38(%rdi)
     21  1.1  jmcneill 	xor	%rax,%rax
     22  1.1  jmcneill 	ret
     23  1.1  jmcneill 
     24  1.1  jmcneill 	.globl	longjmp
     25  1.1  jmcneill #ifndef __MINGW32__
     26  1.1  jmcneill 	.type	longjmp, @function
     27  1.1  jmcneill #else
     28  1.1  jmcneill 	.def longjmp; .scl 2; .type 32; .endef
     29  1.1  jmcneill #endif
     30  1.1  jmcneill longjmp:
     31  1.1  jmcneill 	movl	%esi, %eax
     32  1.1  jmcneill 	movq	0x00(%rdi), %rbx
     33  1.1  jmcneill 	movq	0x08(%rdi), %rsp
     34  1.1  jmcneill 	movq	0x10(%rdi), %rbp
     35  1.1  jmcneill 	movq	0x18(%rdi), %r12
     36  1.1  jmcneill 	movq	0x20(%rdi), %r13
     37  1.1  jmcneill 	movq	0x28(%rdi), %r14
     38  1.1  jmcneill 	movq	0x30(%rdi), %r15
     39  1.1  jmcneill 	xor	%rdx,%rdx
     40  1.1  jmcneill 	mov	$1,%rcx
     41  1.1  jmcneill 	cmp	%rax,%rdx
     42  1.1  jmcneill 	cmove	%rcx,%rax
     43  1.1  jmcneill 	jmp	*0x38(%rdi)
     44