From: Eric Botcazou Date: Mon, 18 Jan 2021 10:19:01 +0000 (+0100) Subject: [Ada] Reset x87 FPU to 64-bit precision for floating-point I/O on Linux X-Git-Tag: basepoints/gcc-13~7776 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bc178bb6c6f5c959c9fb0d929734c08ad5aa1d5;p=thirdparty%2Fgcc.git [Ada] Reset x87 FPU to 64-bit precision for floating-point I/O on Linux gcc/ada/ * init.c (__gnat_init_float): Use full version on Linux too. --- diff --git a/gcc/ada/init.c b/gcc/ada/init.c index 8efec63d6b34..88a62fd8fa55 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -2749,11 +2749,7 @@ __gnat_install_handler (void) /* __gnat_init_float */ /*********************/ -/* This routine is called as each process thread is created, for possible - initialization of the FP processor. This version is used under INTERIX - and WIN32. */ - -#if defined (_WIN32) || defined (__INTERIX) \ +#if defined (_WIN32) || defined (__INTERIX) || defined (__linux__) \ || defined (__Lynx__) || defined(__NetBSD__) || defined(__FreeBSD__) \ || defined (__OpenBSD__) || defined (__DragonFly__) || defined(__QNX__) @@ -2763,13 +2759,10 @@ void __gnat_init_float (void) { #if defined (__i386__) || defined (__x86_64__) - - /* This is used to properly initialize the FPU on an x86 for each - process thread. */ - + /* This is used to properly initialize the FPU to 64-bit precision on an x86 + for each process thread and also for floating-point I/O. */ asm ("finit"); - -#endif /* Defined __i386__ */ +#endif } #endif