diff options
Diffstat (limited to 'winsup/cygwin/crt0.c')
-rw-r--r-- | winsup/cygwin/crt0.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/winsup/cygwin/crt0.c b/winsup/cygwin/crt0.c deleted file mode 100644 index 1421f6566..000000000 --- a/winsup/cygwin/crt0.c +++ /dev/null @@ -1,55 +0,0 @@ -/* crt0.c. - - Copyright 2001, 2005 Red Hat, Inc. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -/* In the following ifdef'd i386 code, the FPU precision is set to 80 bits - and all FPU exceptions are masked. The former is needed to make long - doubles work correctly. The latter causes the FPU to generate NaNs and - Infinities instead of signals for certain operations. -*/ - -#ifdef __i386__ -#define FPU_RESERVED 0xF0C0 -#define FPU_DEFAULT 0x033f - -/* For debugging on *#!$@ windbg. bp for breakpoint. */ -int __cygwin_crt0_bp = 0; -#endif - -extern int main (int argc, char **argv); - -void cygwin_crt0 (int (*main) (int, char **)); - -void -mainCRTStartup () -{ -#ifdef __i386__ - (void)__builtin_return_address(1); - asm volatile ("andl $-16,%%esp" ::: "%esp"); - if (__cygwin_crt0_bp) - asm volatile ("int3"); - - { - volatile unsigned short cw; - - /* Get Control Word */ - __asm__ volatile ("fnstcw %0" : "=m" (cw) : ); - - /* mask in */ - cw &= FPU_RESERVED; - cw |= FPU_DEFAULT; - - /* set cw */ - __asm__ volatile ("fldcw %0" :: "m" (cw)); - } -#endif - - cygwin_crt0 (main); -} - -void WinMainCRTStartup(void) __attribute__ ((alias("mainCRTStartup"))); - |