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 <ja...@redhat.com> * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_QUAD_MEMORY_ATOMIC. --- 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 \ Jakub