aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-10-01 18:41:37 +0930
committerAlan Modra <amodra@gmail.com>2020-10-02 08:13:44 +0930
commitd26cc5885a491dedad0bdf3468a7b91c1f75a868 (patch)
treec79aec85630db8c07eff170cd58493b444d0e11c
parent4830b30c823abaea8ea46dcece65c4681877b38d (diff)
downloadgcc-d26cc5885a491dedad0bdf3468a7b91c1f75a868.zip
gcc-d26cc5885a491dedad0bdf3468a7b91c1f75a868.tar.gz
gcc-d26cc5885a491dedad0bdf3468a7b91c1f75a868.tar.bz2
[RS6000] rs6000_linux64_override_options fix
Commit c6be439b37 wrongly left a block of code inside an "else" block, which changed the default for power10 TARGET_NO_FP_IN_TOC accidentally. We don't want FP constants in the TOC when -mcmodel=medium can address them just as efficiently outside the TOC. * config/rs6000/rs6000.c (rs6000_linux64_override_options): Formatting. Correct setting of TARGET_NO_FP_IN_TOC and TARGET_NO_SUM_IN_TOC.
-rw-r--r--gcc/config/rs6000/rs6000.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index f5f927f..1b5b8e2 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3494,8 +3494,7 @@ rs6000_linux64_override_options ()
}
if (!global_options_set.x_rs6000_current_cmodel)
SET_CMODEL (CMODEL_MEDIUM);
- if ((rs6000_isa_flags_explicit
- & OPTION_MASK_MINIMAL_TOC) != 0)
+ if ((rs6000_isa_flags_explicit & OPTION_MASK_MINIMAL_TOC) != 0)
{
if (global_options_set.x_rs6000_current_cmodel
&& rs6000_current_cmodel != CMODEL_SMALL)
@@ -3504,23 +3503,18 @@ rs6000_linux64_override_options ()
SET_CMODEL (CMODEL_SMALL);
else if (TARGET_PCREL
|| (PCREL_SUPPORTED_BY_OS
- && (rs6000_isa_flags_explicit
- & OPTION_MASK_PCREL) == 0))
+ && (rs6000_isa_flags_explicit & OPTION_MASK_PCREL) == 0))
/* Ignore -mno-minimal-toc. */
;
else
SET_CMODEL (CMODEL_SMALL);
}
- else
+ if (rs6000_current_cmodel != CMODEL_SMALL)
{
- if (rs6000_current_cmodel != CMODEL_SMALL)
- {
- if (!global_options_set.x_TARGET_NO_FP_IN_TOC)
- TARGET_NO_FP_IN_TOC
- = rs6000_current_cmodel == CMODEL_MEDIUM;
- if (!global_options_set.x_TARGET_NO_SUM_IN_TOC)
- TARGET_NO_SUM_IN_TOC = 0;
- }
+ if (!global_options_set.x_TARGET_NO_FP_IN_TOC)
+ TARGET_NO_FP_IN_TOC = rs6000_current_cmodel == CMODEL_MEDIUM;
+ if (!global_options_set.x_TARGET_NO_SUM_IN_TOC)
+ TARGET_NO_SUM_IN_TOC = 0;
}
if (TARGET_PLTSEQ && DEFAULT_ABI != ABI_ELFv2)
{