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" } } */