summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/i386/__longjmp.S
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-01-04 20:04:45 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-01-04 20:04:45 +0000
commit02fec4701cee79f875c1d02b8b4aee09380dbcb8 (patch)
treef4f291aedbb2e60ee58351481858a8cd3ec80b6b /mdk-stage1/dietlibc/i386/__longjmp.S
parent9887fe04751edf39e8389f2c3ec3f020b5e1c17d (diff)
downloaddrakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar.gz
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar.bz2
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar.xz
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.zip
integrate dietlibc/stdio per default for cdrom and disk only installs
Diffstat (limited to 'mdk-stage1/dietlibc/i386/__longjmp.S')
-rw-r--r--mdk-stage1/dietlibc/i386/__longjmp.S20
1 files changed, 20 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/i386/__longjmp.S b/mdk-stage1/dietlibc/i386/__longjmp.S
new file mode 100644
index 000000000..312e01ed1
--- /dev/null
+++ b/mdk-stage1/dietlibc/i386/__longjmp.S
@@ -0,0 +1,20 @@
+#define _ASM
+#define _SETJMP_H
+#include <bits/setjmp.h>
+
+.text
+.global __longjmp
+__longjmp:
+ movl 4(%esp), %ecx /* User's jmp_buf in %ecx. */
+ movl 8(%esp), %eax /* Second argument is return value. */
+ /* Save the return address now. */
+ movl (JB_PC*4)(%ecx), %edx
+ /* Restore registers. */
+ movl (JB_BX*4)(%ecx), %ebx
+ movl (JB_SI*4)(%ecx), %esi
+ movl (JB_DI*4)(%ecx), %edi
+ movl (JB_BP*4)(%ecx), %ebp
+ movl (JB_SP*4)(%ecx), %esp
+ /* Jump to saved PC. */
+ jmp *%edx
+.size __longjmp,.-__longjmp;