On Wed, 23 Apr 2014, H.J. Lu wrote:

On Wed, Apr 23, 2014 at 11:48 AM, Marc Glisse <marc.gli...@inria.fr> wrote:
(Adding an i386 maintainer in Cc)
http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00620.html


On Sun, 13 Apr 2014, Marc Glisse wrote:

Hello,

some people like having a macro to test if a type is available
(__SIZEOF_INT128__ for instance). This adds macros for __float80 and
__float128. The types seem to be always available, so I didn't add any
condition.

If you think this is a bad idea, please close the PR.

Bootstrap+testsuite on x86_64-linux-gnu.

2014-04-13  Marc Glisse  <marc.gli...@inria.fr>

        PR preprocessor/56540
        * config/i386/i386-c.c (ix86_target_macros): Define
        __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.


For __SIZEOF_FLOAT80__, you should check TARGET_128BIT_LONG_DOUBLE
instead of TARGET_64BIT.

Good point, thanks! It now matches i386-modes.def. Is this version (same changelog) ok?

--
Marc Glisse
Index: gcc/config/i386/i386-c.c
===================================================================
--- gcc/config/i386/i386-c.c    (revision 209721)
+++ gcc/config/i386/i386-c.c    (working copy)
@@ -511,20 +511,27 @@ ix86_target_macros (void)
 
   if (!TARGET_80387)
     cpp_define (parse_in, "_SOFT_FLOAT");
 
   if (TARGET_LONG_DOUBLE_64)
     cpp_define (parse_in, "__LONG_DOUBLE_64__");
 
   if (TARGET_LONG_DOUBLE_128)
     cpp_define (parse_in, "__LONG_DOUBLE_128__");
 
+  if (TARGET_128BIT_LONG_DOUBLE)
+    cpp_define (parse_in, "__SIZEOF_FLOAT80__=16");
+  else
+    cpp_define (parse_in, "__SIZEOF_FLOAT80__=12");
+
+  cpp_define (parse_in, "__SIZEOF_FLOAT128__=16");
+
   cpp_define_formatted (parse_in, "__ATOMIC_HLE_ACQUIRE=%d", IX86_HLE_ACQUIRE);
   cpp_define_formatted (parse_in, "__ATOMIC_HLE_RELEASE=%d", IX86_HLE_RELEASE);
 
   ix86_target_macros_internal (ix86_isa_flags,
                               ix86_arch,
                               ix86_tune,
                               ix86_fpmath,
                               cpp_define);
 }
 

Reply via email to