https://gcc.gnu.org/g:87277512b8731a25e7d1eb438ee3390233426856
commit 87277512b8731a25e7d1eb438ee3390233426856 Author: Michael Meissner <meiss...@linux.ibm.com> Date: Tue Jun 17 03:07:17 2025 -0400 Revert changes Diff: --- gcc/config/rs6000/rs6000.cc | 10 +++++++++ gcc/testsuite/gcc.target/powerpc/pr120681.c | 32 ----------------------------- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index a268e0d17b5f..80fc500fcec8 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -4360,6 +4360,16 @@ rs6000_option_override_internal (bool global_init_p) && (rs6000_isa_flags_explicit & OPTION_MASK_PCREL) == 0) rs6000_isa_flags |= OPTION_MASK_PCREL; + /* -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", "-mpcrel", "-mcmodel=medium"); + + rs6000_isa_flags &= ~OPTION_MASK_PCREL; + } + /* Enable -mmma by default on power10 systems. */ if (TARGET_POWER10 && (rs6000_isa_flags_explicit & OPTION_MASK_MMA) == 0) rs6000_isa_flags |= OPTION_MASK_MMA; 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" } } */