https://gcc.gnu.org/g:552fa024fe55559f7cf6bef52337de3270e6c46d
commit 552fa024fe55559f7cf6bef52337de3270e6c46d Author: Michael Meissner <meiss...@linux.ibm.com> Date: Tue Jun 17 02:17:32 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 2c808bceb433..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} } } */