.text .globl setjmp .type setjmp, @function setjmp: pop %rsi movq %rbx,0x00(%rdi) movq %rsp,0x08(%rdi) push %rsi movq %rbp,0x10(%rdi) movq %r12,0x18(%rdi) movq %r13,0x20(%rdi) movq %r14,0x28(%rdi) movq %r15,0x30(%rdi) movq %rsi,0x38(%rdi) xor %rax,%rax ret .globl longjmp .type longjmp, @function longjmp: movl %esi, %eax movq 0x00(%rdi), %rbx movq 0x08(%rdi), %rsp movq 0x10(%rdi), %rbp movq 0x18(%rdi), %r12 movq 0x20(%rdi), %r13 movq 0x28(%rdi), %r14 movq 0x30(%rdi), %r15 xor %rdx,%rdx mov $1,%rcx cmp %rax,%rdx cmove %rcx,%rax jmp *0x38(%rdi)