On Mon, Dec 13, 2021 at 10:48 AM Bill Schmidt <wschm...@linux.ibm.com> wrote:
>
> Hi!
>
> PR103624 observes that we get segfaults for the 64-bit darn builtins when 
> compiled
> on a 32-bit architecture.  The old built-in infrastructure requires 
> TARGET_64BIT, and
> this was missed in the new support.  Moving these two builtins from the 
> [power9]
> stanza to the [power9-64] stanza solves the problem.
>
> Tested the fix on a powerpc-e300c3-linux-gnu cross.  Bootstrapped and tested 
> on
> powerpc64le-linux-gnu with no regressions.  Is this okay for trunk?

Okay.

Thanks, David

>
> Thanks!
> Bill
>
>
> 2021-12-13  Bill Schmidt  <wschm...@linux.ibm.com>
>
> gcc/
>         PR target/103624
>         * config/rs6000/rs6000-builtin-new.def (__builtin_darn): Move to
>         [power9-64] stanza.
>         (__builtin_darn_raw): Likewise.
> ---
>  gcc/config/rs6000/rs6000-builtin-new.def | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/gcc/config/rs6000/rs6000-builtin-new.def 
> b/gcc/config/rs6000/rs6000-builtin-new.def
> index 30556e5c7f2..2becd96a36c 100644
> --- a/gcc/config/rs6000/rs6000-builtin-new.def
> +++ b/gcc/config/rs6000/rs6000-builtin-new.def
> @@ -2799,15 +2799,9 @@
>
>  ; Miscellaneous P9 functions
>  [power9]
> -  signed long long __builtin_darn ();
> -    DARN darn {}
> -
>    signed int __builtin_darn_32 ();
>      DARN_32 darn_32 {}
>
> -  signed long long __builtin_darn_raw ();
> -    DARN_RAW darn_raw {}
> -
>    const signed int __builtin_dtstsfi_eq_dd (const int<6>, _Decimal64);
>      TSTSFI_EQ_DD dfptstsfi_eq_dd {}
>
> @@ -2840,6 +2834,12 @@
>    void __builtin_altivec_stxvl (vsc, void *, long);
>      STXVL stxvl {}
>
> +  signed long long __builtin_darn ();
> +    DARN darn {}
> +
> +  signed long long __builtin_darn_raw ();
> +    DARN_RAW darn_raw {}
> +
>    const signed int __builtin_scalar_byte_in_set (signed int, signed long 
> long);
>      CMPEQB cmpeqb {}
>
> --
> 2.27.0
>
>

Reply via email to