diff options
author | Alan Modra <amodra@gmail.com> | 2020-10-01 18:41:37 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-10-02 08:13:44 +0930 |
commit | d26cc5885a491dedad0bdf3468a7b91c1f75a868 (patch) | |
tree | c79aec85630db8c07eff170cd58493b444d0e11c | |
parent | 4830b30c823abaea8ea46dcece65c4681877b38d (diff) | |
download | gcc-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.c | 20 |
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) { |