rs6000: Fix some missing built-in attributes [PR104004]
authorBill Schmidt <wschmidt@linux.ibm.com>
Fri, 28 Jan 2022 17:50:26 +0000 (11:50 -0600)
committerSegher Boessenkool <segher@kernel.crashing.org>
Thu, 31 Mar 2022 22:11:23 +0000 (22:11 +0000)
PR104004 caught some misses on my part in converting to the new built-in
function infrastructure.  In particular, I forgot to mark all of the "nosoft"
built-ins, and one of those should also have been marked "no32bit".

2022-01-27  Bill Schmidt  <wschmidt@linux.ibm.com>

gcc/
PR target/104004
* config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
(MTFSB0): Likewise.
(MTFSB1): Likewise.
(SET_FPSCR_RN): Likewise.
(SET_FPSCR_DRN): Mark nosoft and no32bit.

gcc/config/rs6000/rs6000-builtins.def

index 296f36e..0f527c5 100644 (file)
 ; processors, this builtin automatically falls back to mffs on older
 ; platforms.  Thus it appears here in the [always] stanza.
   double __builtin_mffsl ();
-    MFFSL rs6000_mffsl {}
+    MFFSL rs6000_mffsl {nosoft}
 
 ; This is redundant with __builtin_pack_ibm128, as it requires long
 ; double to be __ibm128.  Should probably be deprecated.
     MFTB rs6000_mftb_di {32bit}
 
   void __builtin_mtfsb0 (const int<5>);
-    MTFSB0 rs6000_mtfsb0 {}
+    MTFSB0 rs6000_mtfsb0 {nosoft}
 
   void __builtin_mtfsb1 (const int<5>);
-    MTFSB1 rs6000_mtfsb1 {}
+    MTFSB1 rs6000_mtfsb1 {nosoft}
 
   void __builtin_mtfsf (const int<8>, double);
     MTFSF rs6000_mtfsf {}
     PACK_IF packif {ibm128}
 
   void __builtin_set_fpscr_rn (const int[0,3]);
-    SET_FPSCR_RN rs6000_set_fpscr_rn {}
+    SET_FPSCR_RN rs6000_set_fpscr_rn {nosoft}
 
   const double __builtin_unpack_ibm128 (__ibm128, const int<1>);
     UNPACK_IF unpackif {ibm128}
     PACK_TD packtd {}
 
   void __builtin_set_fpscr_drn (const int[0,7]);
-    SET_FPSCR_DRN rs6000_set_fpscr_drn {}
+    SET_FPSCR_DRN rs6000_set_fpscr_drn {nosoft,no32bit}
 
   const unsigned long long __builtin_unpack_dec128 (_Decimal128, const int<1>);
     UNPACK_TD unpacktd {}