diff options
author | Steve McIntyre <steve@einval.com> | 2021-03-23 23:49:46 +0000 |
---|---|---|
committer | Steve McIntyre <steve@einval.com> | 2021-03-23 23:49:46 +0000 |
commit | 1251a7ba86fc40a6aad8b4fecdbca2b61808d9fa (patch) | |
tree | 2125fda549aaca55cb49a48d54be77dec7fbf3df /gnu-efi/lib/x86_64/setjmp.S | |
parent | 85b409232ce89b34626df9d72abedf5d4f5ccef6 (diff) | |
parent | 031e5cce385d3f96b1caa1d53495332a7eb03749 (diff) | |
download | efi-boot-shim-debian/15.3-1.tar.gz efi-boot-shim-debian/15.3-1.zip |
Update upstream source from tag 'upstream/15.3'debian/15.3-1
Update to upstream version '15.3'
with Debian dir 1b484f1c1ac270604a5a1451b34de4b0865c6211
Diffstat (limited to 'gnu-efi/lib/x86_64/setjmp.S')
-rw-r--r-- | gnu-efi/lib/x86_64/setjmp.S | 48 |
1 files changed, 48 insertions, 0 deletions
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) |