On 2014.10.15 at 17:00 -0400, DJ Delorie wrote: > > > If you could implement the second option, it would be appreciated. > > Could you please test this for me? It builds as a powerpc-elf > cross-compiler (at least the host half) but I don't have a power > machine here to test on. > > Index: rs6000-c.c > =================================================================== > --- rs6000-c.c (revision 216241) > +++ rs6000-c.c (working copy) > @@ -157,12 +157,29 @@ init_vector_keywords (void) > { > __int128_type = get_identifier ("__int128_t"); > __uint128_type = get_identifier ("__uint128_t"); > } > } > > +/* 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. */ > > static cpp_hashnode * > rs6000_macro_to_expand (cpp_reader *pfile, const cpp_token *tok) > @@ -231,13 +248,13 @@ rs6000_macro_to_expand (cpp_reader *pfil > > if (rid_code == RID_UNSIGNED || rid_code == RID_LONG > || rid_code == RID_SHORT || rid_code == RID_SIGNED > || 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 > will need to be expanded as well. */ > do > tok = cpp_peek_token (pfile, idx++); >
Testing went fine (although there is a lot of noise because of the -std=gnu11 standard change). But I cannot approve the patch. Adding more people to CC. Thanks. -- Markus