https://gcc.gnu.org/g:dca38420af1ebb121c90b9dc62d0717f9ecdc26b

commit dca38420af1ebb121c90b9dc62d0717f9ecdc26b
Author: Michael Meissner <meiss...@linux.ibm.com>
Date:   Tue Jun 17 11:58:57 2025 -0400

    Revert changes

Diff:
---
 gcc/config/rs6000/linux64.h                 |  5 ++---
 gcc/config/rs6000/rs6000.cc                 | 13 +++++-------
 gcc/testsuite/gcc.target/powerpc/pr120681.c | 32 -----------------------------
 3 files changed, 7 insertions(+), 43 deletions(-)

diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index cf60ff14e108..0316d8cb65da 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -564,8 +564,7 @@ extern int dot_symbols;
 
 /* Enable using prefixed PC-relative addressing on POWER10 if the ABI
    supports it.  The ELF v2 ABI only supports PC-relative relocations for
-   the medium/large code models.  */
+   the medium code model.  */
 #define PCREL_SUPPORTED_BY_OS  (TARGET_POWER10 && TARGET_PREFIXED      \
                                 && ELFv2_ABI_CHECK                     \
-                                && (TARGET_CMODEL == CMODEL_MEDIUM     \
-                                    || TARGET_CMODEL == CMODEL_LARGE))
+                                && TARGET_CMODEL == CMODEL_MEDIUM)
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index d0e92f2f7898..80fc500fcec8 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -4360,15 +4360,12 @@ rs6000_option_override_internal (bool global_init_p)
       && (rs6000_isa_flags_explicit & OPTION_MASK_PCREL) == 0)
     rs6000_isa_flags |= OPTION_MASK_PCREL;
 
-  /* -mpcrel requires medium or large code models, but we can't check
-      TARGET_CMODEL until after the subtarget override options are done.  */
-  else if (TARGET_PCREL
-          && TARGET_CMODEL != CMODEL_MEDIUM
-          && TARGET_CMODEL != CMODEL_LARGE)
+  /* -mpcrel requires -mcmodel=medium, but we can't check TARGET_CMODEL until
+      after the subtarget override options are done.  */
+  else if (TARGET_PCREL && TARGET_CMODEL != CMODEL_MEDIUM)
     {
       if ((rs6000_isa_flags_explicit & OPTION_MASK_PCREL) != 0)
-       error ("%qs requires %qs or %qs", "-mpcrel", "-mcmodel=medium",
-              "-mcmodel=large");
+       error ("%qs requires %qs", "-mpcrel", "-mcmodel=medium");
 
       rs6000_isa_flags &= ~OPTION_MASK_PCREL;
     }
@@ -21359,7 +21356,7 @@ rs6000_elf_declare_function_name (FILE *file, const 
char *name, tree decl)
   ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
   ASM_DECLARE_RESULT (file, DECL_RESULT (decl));
 
-  if (TARGET_CMODEL == CMODEL_LARGE && !TARGET_PCREL
+  if (TARGET_CMODEL == CMODEL_LARGE
       && rs6000_global_entry_point_prologue_needed_p ())
     {
       char buf[256];
diff --git a/gcc/testsuite/gcc.target/powerpc/pr120681.c 
b/gcc/testsuite/gcc.target/powerpc/pr120681.c
deleted file mode 100644
index dd3fbb3db653..000000000000
--- a/gcc/testsuite/gcc.target/powerpc/pr120681.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* { dg-do compile { target { lp64 } } } */
-/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2 -mcmodel=large" } */
-
-/* PR target/120681 -- verify that -mcpu=power10 -mcmodel=large uses prefixed
-   addressing instead of forcing using TOC addressing.  */
-
-#ifndef TYPE
-#define TYPE unsigned long
-#endif
-
-extern TYPE global_var;
-
-void
-set_global (TYPE value)
-{
-  /*
-   * Generate:
-   * pld 9,global_var@got@pcrel
-   * std 3,0(9)
-   *
-   * Not:
-   * addis 9,2,.LC0@toc@ha
-   * ld    9,.LC0@toc@l(9)
-   * std   3,0(9)
-   */
-
-  global_var = value;
-}
-
-/* { dg-final { scan-assembler     "@got@pcrel" } } */
-/* { dg-final { scan-assembler-not "@toc"       } } */

Reply via email to