From 031e5cce385d3f96b1caa1d53495332a7eb03749 Mon Sep 17 00:00:00 2001 From: Steve McIntyre Date: Tue, 23 Mar 2021 23:49:46 +0000 Subject: New upstream version 15.3 --- gnu-efi/lib/x86_64/setjmp.S | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 gnu-efi/lib/x86_64/setjmp.S (limited to 'gnu-efi/lib/x86_64/setjmp.S') diff --git a/gnu-efi/lib/x86_64/setjmp.S b/gnu-efi/lib/x86_64/setjmp.S new file mode 100644 index 00000000..e3e51959 --- /dev/null +++ b/gnu-efi/lib/x86_64/setjmp.S @@ -0,0 +1,48 @@ + .text + .globl setjmp + +#ifndef __APPLE__ +# ifndef __MINGW32__ + .type setjmp, @function +# else + .def setjmp; .scl 2; .type 32; .endef +# endif +#endif + +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 +#ifndef __APPLE__ +# ifndef __MINGW32__ + .type longjmp, @function +# else + .def longjmp; .scl 2; .type 32; .endef +# endif +#endif + +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) -- cgit v1.2.3