Message ID | 20150126094643.GI1746@tucnak.redhat.com |
---|---|
State | New |
Headers | show |
On Mon, Jan 26, 2015 at 4:46 AM, Jakub Jelinek <jakub@redhat.com> wrote: > On Sat, Jan 17, 2015 at 09:18:14PM -0500, David Edelsohn wrote: >> Thanks, David >> >> * config/rs6000/default64.h: Include rs6000-cpus.def. >> (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8). >> * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7. >> * config/rs6000/linux64.h: Always default to POWER8. >> * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine >> pseudo-op to specify assembler dialect. > > Unfortunately, this broke all qi/hi mode atomics on ppc64le, when configured > --with-cpu=power7 --with-tune=power8. > The problem is that TARGET_SYNC_HI_QI is defined as > TARGET_QUAD_MEMORY || TARGET_QUAD_MEMORY_ATOMIC || TARGET_DIRECT_MOVE > and from these 3, despite the configured default or even explicit > -mcpu=power7 the second one was never cleared. > > The following patch seems to fix it, ok for trunk if testing passes? > > What about release branches? > > 2015-01-26 Jakub Jelinek <jakub@redhat.com> > > * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add > OPTION_MASK_QUAD_MEMORY_ATOMIC. Okay. Thanks, David
--- gcc/config/rs6000/rs6000-cpus.def.jj 2015-01-05 13:07:17.000000000 +0100 +++ gcc/config/rs6000/rs6000-cpus.def 2015-01-26 10:41:54.267031985 +0100 @@ -93,6 +93,7 @@ | OPTION_MASK_PPC_GFXOPT \ | OPTION_MASK_PPC_GPOPT \ | OPTION_MASK_QUAD_MEMORY \ + | OPTION_MASK_QUAD_MEMORY_ATOMIC \ | OPTION_MASK_RECIP_PRECISION \ | OPTION_MASK_SOFT_FLOAT \ | OPTION_MASK_STRICT_ALIGN_OPTIONAL \