re PR bootstrap/77993 (bootstrap failure on PowerPC/Linux)
2016-11-03 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/77993 * config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or ICmode unless we have standard PowerPC floating point. * config/rs6000/rs6000.md (FP iterator): Likewise. (FMOVE128 iterator): Likewise. From-SVN: r241833
This commit is contained in:
parent
6905c577d1
commit
0bc36dec0f
@ -1,3 +1,11 @@
|
||||
2016-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
PR target/77993
|
||||
* config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or
|
||||
ICmode unless we have standard PowerPC floating point.
|
||||
* config/rs6000/rs6000.md (FP iterator): Likewise.
|
||||
(FMOVE128 iterator): Likewise.
|
||||
|
||||
2016-11-03 Jakub Jelinek <jakub@redhat.com>
|
||||
Alexandre Oliva <aoliva@redhat.com>
|
||||
Jason Merrill <jason@redhat.com>
|
||||
|
@ -442,14 +442,15 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
|
||||
point. KFmode was added as a way to represent IEEE 128-bit floating point,
|
||||
even if the default for long double is the IBM long double format.
|
||||
Similarly IFmode is the IBM long double format even if the default is IEEE
|
||||
128-bit. */
|
||||
128-bit. Don't allow IFmode if -msoft-float. */
|
||||
#define FLOAT128_IEEE_P(MODE) \
|
||||
((TARGET_IEEEQUAD && ((MODE) == TFmode || (MODE) == TCmode)) \
|
||||
|| ((MODE) == KFmode) || ((MODE) == KCmode))
|
||||
|
||||
#define FLOAT128_IBM_P(MODE) \
|
||||
((!TARGET_IEEEQUAD && ((MODE) == TFmode || (MODE) == TCmode)) \
|
||||
|| ((MODE) == IFmode) || ((MODE) == ICmode))
|
||||
|| (TARGET_HARD_FLOAT && TARGET_FPRS \
|
||||
&& ((MODE) == IFmode) || ((MODE) == ICmode)))
|
||||
|
||||
/* Helper macros to say whether a 128-bit floating point type can go in a
|
||||
single vector register, or whether it needs paired scalar values. */
|
||||
|
@ -376,7 +376,7 @@
|
||||
(TF "TARGET_HARD_FLOAT
|
||||
&& (TARGET_FPRS || TARGET_E500_DOUBLE)
|
||||
&& TARGET_LONG_DOUBLE_128")
|
||||
(IF "TARGET_LONG_DOUBLE_128")
|
||||
(IF "TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128")
|
||||
(KF "TARGET_FLOAT128_TYPE")
|
||||
(DD "TARGET_DFP")
|
||||
(TD "TARGET_DFP")])
|
||||
@ -398,7 +398,7 @@
|
||||
(define_mode_iterator FMOVE64 [DF DD])
|
||||
(define_mode_iterator FMOVE64X [DI DF DD])
|
||||
(define_mode_iterator FMOVE128 [(TF "TARGET_LONG_DOUBLE_128")
|
||||
(IF "TARGET_LONG_DOUBLE_128")
|
||||
(IF "FLOAT128_IBM_P (IFmode)")
|
||||
(TD "TARGET_HARD_FLOAT && TARGET_FPRS")])
|
||||
|
||||
(define_mode_iterator FMOVE128_FPR [(TF "FLOAT128_2REG_P (TFmode)")
|
||||
|
Loading…
Reference in New Issue
Block a user