[RS6000] rs6000_linux64_override_options fix
authorAlan Modra <amodra@gmail.com>
Thu, 1 Oct 2020 09:11:37 +0000 (18:41 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 1 Oct 2020 22:43:44 +0000 (08:13 +0930)
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.

gcc/config/rs6000/rs6000.c

index f5f927f30322e8dea27e344af131151b2a37c27c..1b5b8e213bfc35391350f437962e9b6cbd0d7c0a 100644 (file)
@@ -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)
        {