Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-02-17 22:38:33 +0300
committerChristopher Faylor <me@cgf.cx>2000-02-17 22:38:33 +0300
commit1fd5e000ace55b323124c7e556a7a864b972a5c4 (patch)
treedc4fcf1e5e22a040716ef92c496b8d94959b2baa /winsup/cygwin/config/i386/setjmp.c
parent369d8a8fd5e887eca547bf34bccfdf755c9e5397 (diff)
import winsup-2000-02-17 snapshot
Diffstat (limited to 'winsup/cygwin/config/i386/setjmp.c')
-rw-r--r--winsup/cygwin/config/i386/setjmp.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/winsup/cygwin/config/i386/setjmp.c b/winsup/cygwin/config/i386/setjmp.c
new file mode 100644
index 000000000..befd7e683
--- /dev/null
+++ b/winsup/cygwin/config/i386/setjmp.c
@@ -0,0 +1,48 @@
+/* setjmp.c
+
+ Copyright 1996, 1998 Cygnus Solutions.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#ifdef __i386__
+
+#if 1
+asm(" .globl _setjmp \n"
+"_setjmp: \n"
+" pushl %ebp \n"
+" movl %esp,%ebp \n"
+" pushl %edi \n"
+" movl 8(%ebp),%edi \n"
+" movl %eax,0(%edi) \n"
+" movl %ebx,4(%edi) \n"
+" movl %ecx,8(%edi) \n"
+" movl %edx,12(%edi) \n"
+" movl %esi,16(%edi) \n"
+" movl -4(%ebp),%eax \n"
+" movl %eax,20(%edi) \n"
+" movl 0(%ebp),%eax \n"
+" movl %eax,24(%edi) \n"
+" movl %esp,%eax \n"
+" addl $12,%eax \n"
+" movl %eax,28(%edi) \n"
+" movl 4(%ebp),%eax \n"
+" movl %eax,32(%edi) \n"
+" movw %es, %ax \n"
+" movw %ax, 36(%edi) \n"
+" movw %fs, %ax \n"
+" movw %ax, 38(%edi) \n"
+" movw %gs, %ax \n"
+" movw %ax, 40(%edi) \n"
+" movw %ss, %ax \n"
+" movw %ax, 42(%edi) \n"
+" popl %edi \n"
+" movl $0,%eax \n"
+" leave \n"
+" ret \n");
+#endif
+
+#endif /* __i386__ */