From a1225d2244292daabbb5aeb035f4edeb109450c4 Mon Sep 17 00:00:00 2001 From: cgf Date: Wed, 18 Feb 2004 20:48:37 +0000 Subject: [PATCH] * gendef (stabilize_sig_stack): New function. (setjmp): Import, add sig stack handling. Store sig stack info. (longjmp): Call stabilize_sig_stack. Restore sig stack info. * config/i386/setjmp.c: Remove. --- winsup/cygwin/ChangeLog | 7 +++++ winsup/cygwin/config/i386/setjmp.c | 48 ------------------------------ winsup/cygwin/gendef | 61 ++++++++++++++++++++++++++++++++++---- 3 files changed, 62 insertions(+), 54 deletions(-) delete mode 100644 winsup/cygwin/config/i386/setjmp.c diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index b048677cf3..12e69f5ed8 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2004-02-18 Christopher Faylor + + * gendef (stabilize_sig_stack): New function. + (setjmp): Import, add sig stack handling. Store sig stack info. + (longjmp): Call stabilize_sig_stack. Restore sig stack info. + * config/i386/setjmp.c: Remove. + 2004-02-17 Corinna Vinschen * fork.cc (fork_child): Move fixup_shms_after_fork so that diff --git a/winsup/cygwin/config/i386/setjmp.c b/winsup/cygwin/config/i386/setjmp.c deleted file mode 100644 index 9104c2c83d..0000000000 --- a/winsup/cygwin/config/i386/setjmp.c +++ /dev/null @@ -1,48 +0,0 @@ -/* setjmp.c - - Copyright 1996, 1998, 1999, 2000, 2001 Red Hat, Inc. - -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__ */ diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef index 009c27db14..d46dbb9509 100755 --- a/winsup/cygwin/gendef +++ b/winsup/cygwin/gendef @@ -236,9 +236,8 @@ EOF sub longjmp { return <