Hi Bill,

On Wed, May 22, 2019 at 12:51:50PM -0500, Bill Schmidt wrote:
> +/* Define if your assembler supports FUTURE instructions.  */
> +#ifndef USED_FOR_TARGET
> +#undef HAVE_AS_FUTURE
> +#endif

Let's not use that?  I removed HAVE_AS_* (for ISA version support) in
r264675:

"""
rs6000: Delete many HAVE_AS_* (PR87149)

This deletes most HAVE_AS_* that determine if the assembler supports
some ISA level (and also HAVE_AS_MFPGPR and HAVE_AS_DFP).

These are not useful: we will only generate an instruction that requires
some newer ISA if the user specifically asked for it (with -mcpu=, say).
If the assembler cannot handle that, it is fine if it gives an error.

They also hurt: it increases the number of possible situations that all
need handling and all need testing.  We do not handle all cases, and
obviously do not test all either.
"""

So, just generate FUTURE insns when the user asked for that, don't worry
about checking if the assembler can handle that -- the user will find out
soon enough if not, and on any normal install everything will work fine.

>  /* Flags that need to be turned off if -mno-power9-vector.  */
>  #define OTHER_P9_VECTOR_MASKS        (OPTION_MASK_FLOAT128_HW                
> \
> +                              | OPTION_MASK_FUTURE                   \
>                                | OPTION_MASK_P9_MINMAX)

Why this?

> @@ -134,7 +139,8 @@
>                                | OPTION_MASK_RECIP_PRECISION          \
>                                | OPTION_MASK_SOFT_FLOAT               \
>                                | OPTION_MASK_STRICT_ALIGN_OPTIONAL    \
> -                              | OPTION_MASK_VSX)
> +                              | OPTION_MASK_VSX                      \
> +                              | OPTION_MASK_FUTURE)

This list is alphabetic.  Well, was alphabetic :-)

> -RS6000_CPU ("powerpc64le", PROCESSOR_POWER8, MASK_POWERPC64 | 
> ISA_2_7_MASKS_SERVER)
> +RS6000_CPU ("powerpc64le", PROCESSOR_POWER8, MASK_POWERPC64
> +         | ISA_2_7_MASKS_SERVER)

Please don't reformat mixed with other (non-random) changes.

> -@samp{power9}, @samp{powerpc}, @samp{powerpc64}, @samp{powerpc64le},
> -@samp{rs64}, and @samp{native}.
> +@samp{power9}, @samp{future}, @samp{powerpc}, @samp{powerpc64},
> +@samp{powerpc64le}, @samp{rs64}, and @samp{native}.

Maybe *not* documenting this would be less confusing?

> diff --git a/gcc/testsuite/gcc.target/powerpc/cpu-future.c 
> b/gcc/testsuite/gcc.target/powerpc/cpu-future.c
> new file mode 100644
> index 00000000000..b62d40341d1
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/powerpc/cpu-future.c
> @@ -0,0 +1,7 @@
> +/* { dg-do compile } */
> +/* { dg-options "-mcpu=future -O2" } */
> +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { 
> "-mcpu=future" } } */

Drop this last line, use -mdejagnu-cpu=future instead?


Segher

Reply via email to