summaryrefslogtreecommitdiff
path: root/gnu-efi/lib/ia32/setjmp.S
diff options
context:
space:
mode:
authorSteve McIntyre <steve@einval.com>2021-03-23 23:49:46 +0000
committerSteve McIntyre <steve@einval.com>2021-03-23 23:49:46 +0000
commit1251a7ba86fc40a6aad8b4fecdbca2b61808d9fa (patch)
tree2125fda549aaca55cb49a48d54be77dec7fbf3df /gnu-efi/lib/ia32/setjmp.S
parent85b409232ce89b34626df9d72abedf5d4f5ccef6 (diff)
parent031e5cce385d3f96b1caa1d53495332a7eb03749 (diff)
downloadefi-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/ia32/setjmp.S')
-rw-r--r--gnu-efi/lib/ia32/setjmp.S45
1 files changed, 45 insertions, 0 deletions
diff --git a/gnu-efi/lib/ia32/setjmp.S b/gnu-efi/lib/ia32/setjmp.S
new file mode 100644
index 00000000..aa9c0846
--- /dev/null
+++ b/gnu-efi/lib/ia32/setjmp.S
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ * This program and the accompanying materials are licensed and made
+available
+ * under the terms and conditions of the BSD License which accompanies
+this
+ * distribution. The full text of the license may be found at
+ * http://opensource.org/licenses/bsd-license.php.
+ *
+ * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
+BASIS,
+ * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED.
+ */
+ .text
+ .globl setjmp
+#ifndef __MINGW32__
+ .type setjmp, @function
+#else
+ .def setjmp; .scl 2; .type 32; .endef
+#endif
+setjmp:
+ pop %ecx
+ movl (%esp), %edx
+ movl %ebx, (%edx)
+ movl %esi, 4(%edx)
+ movl %edi, 8(%edx)
+ movl %ebp, 12(%edx)
+ movl %esp, 16(%edx)
+ xorl %eax, %eax
+ jmp *%ecx
+
+ .globl longjmp
+#ifndef __MINGW32__
+ .type longjmp, @function
+#else
+ .def longjmp; .scl 2; .type 32; .endef
+#endif
+longjmp:
+ pop %eax
+ pop %edx
+ pop %eax
+ movl (%edx), %ebx
+ movl 4(%edx), %esi
+ movl 8(%edx), %edi