diff mbox

[RFC] POWER8 default for PPC64LE

Message ID 20150126094643.GI1746@tucnak.redhat.com
State New
Headers show

Commit Message

Jakub Jelinek Jan. 26, 2015, 9:46 a.m. UTC
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.



	Jakub

Comments

David Edelsohn Jan. 26, 2015, 3:36 p.m. UTC | #1
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
diff mbox

Patch

--- 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	\