xref: /kvm-unit-tests/lib/x86/setjmp64.S (revision 9dde4243e6f1759280d3fed2486ae62e80c3f8c7)
1*9dde4243SPaolo Bonzini.globl setjmp
2*9dde4243SPaolo Bonzinisetjmp:
3*9dde4243SPaolo Bonzini	mov (%rsp), %rsi
4*9dde4243SPaolo Bonzini	mov %rsi, (%rdi)
5*9dde4243SPaolo Bonzini	mov %rsp, 0x8(%rdi)
6*9dde4243SPaolo Bonzini	mov %rbp, 0x10(%rdi)
7*9dde4243SPaolo Bonzini	mov %rbx, 0x18(%rdi)
8*9dde4243SPaolo Bonzini	mov %r12, 0x20(%rdi)
9*9dde4243SPaolo Bonzini	mov %r13, 0x28(%rdi)
10*9dde4243SPaolo Bonzini	mov %r14, 0x30(%rdi)
11*9dde4243SPaolo Bonzini	mov %r15, 0x38(%rdi)
12*9dde4243SPaolo Bonzini	xor %eax, %eax
13*9dde4243SPaolo Bonzini	ret
14*9dde4243SPaolo Bonzini
15*9dde4243SPaolo Bonzini.globl longjmp
16*9dde4243SPaolo Bonzinilongjmp:
17*9dde4243SPaolo Bonzini	mov %esi, %eax
18*9dde4243SPaolo Bonzini	mov 0x38(%rdi), %r15
19*9dde4243SPaolo Bonzini	mov 0x30(%rdi), %r14
20*9dde4243SPaolo Bonzini	mov 0x28(%rdi), %r13
21*9dde4243SPaolo Bonzini	mov 0x20(%rdi), %r12
22*9dde4243SPaolo Bonzini	mov 0x18(%rdi), %rbx
23*9dde4243SPaolo Bonzini	mov 0x10(%rdi), %rbp
24*9dde4243SPaolo Bonzini	mov 0x8(%rdi), %rsp
25*9dde4243SPaolo Bonzini	mov (%rdi), %rsi
26*9dde4243SPaolo Bonzini	mov %rsi, (%rsp)
27*9dde4243SPaolo Bonzini	ret
28