rs6000-c.c (rid_int128): New.
authorDJ Delorie <dj@redhat.com>
Thu, 16 Oct 2014 20:50:18 +0000 (16:50 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Thu, 16 Oct 2014 20:50:18 +0000 (16:50 -0400)
* config/rs6000/rs6000-c.c (rid_int128): New.
(rs6000_macro_to_expand): Use instead of RID_INT128.

From-SVN: r216348

gcc/ChangeLog
gcc/config/rs6000/rs6000-c.c

index 7e4b5d4aae1442d247930fb1968017bdb9ebf005..cf31da6958bfea36d637f0d57ccb3553d55605de 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-16  DJ Delorie  <dj@redhat.com>
+
+       * config/rs6000/rs6000-c.c (rid_int128): New.
+       (rs6000_macro_to_expand): Use instead of RID_INT128.
+
 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
 
        * function.h: Flatten file.  Remove includes, adjust prototypes to 
index f024dccfdfc23fe65506e23d3d374d9ed5d365e4..18a2688dba79797de0e967a8a4a7099c15902645 100644 (file)
@@ -160,6 +160,23 @@ init_vector_keywords (void)
     }
 }
 
+/* Helper function to find out which RID_INT_N_* code is the one for
+   __int128, if any.  Returns RID_MAX+1 if none apply, which is safe
+   (for our purposes, since we always expect to have __int128) to
+   compare against.  */
+static int
+rid_int128(void)
+{
+  int i;
+
+  for (i = 0; i < NUM_INT_N_ENTS; i ++)
+    if (int_n_enabled_p[i]
+       && int_n_data[i].bitsize == 128)
+      return RID_INT_N_0 + i;
+
+  return RID_MAX + 1;
+}
+
 /* Called to decide whether a conditional macro should be expanded.
    Since we have exactly one such macro (i.e, 'vector'), we do not
    need to examine the 'tok' parameter.  */
@@ -234,7 +251,7 @@ rs6000_macro_to_expand (cpp_reader *pfile, const cpp_token *tok)
              || rid_code == RID_INT || rid_code == RID_CHAR
              || rid_code == RID_FLOAT
              || (rid_code == RID_DOUBLE && TARGET_VSX)
-             || (rid_code == RID_INT128 && TARGET_VADDUQM))
+             || (rid_code == rid_int128 () && TARGET_VADDUQM))
            {
              expand_this = C_CPP_HASHNODE (__vector_keyword);
              /* If the next keyword is bool or pixel, it