[PATCH v2] rs6000: Disable HTM for Power10 and later
Segher Boessenkool
segher@kernel.crashing.org
Mon Nov 30 20:49:53 GMT 2020
Hi!
On Mon, Nov 30, 2020 at 06:36:30PM +0800, Kewen.Lin wrote:
> --- a/gcc/config/rs6000/rs6000-cpus.def
> +++ b/gcc/config/rs6000/rs6000-cpus.def
> @@ -51,7 +51,6 @@
> | OPTION_MASK_CRYPTO \
> | OPTION_MASK_DIRECT_MOVE \
> | OPTION_MASK_EFFICIENT_UNALIGNED_VSX \
> - | OPTION_MASK_HTM \
> | OPTION_MASK_QUAD_MEMORY \
> | OPTION_MASK_QUAD_MEMORY_ATOMIC)
(this is in #define ISA_2_7_MASKS_SERVER)
That looks fine.
> -RS6000_CPU ("power8", PROCESSOR_POWER8, MASK_POWERPC64 | ISA_2_7_MASKS_SERVER)
> -RS6000_CPU ("power9", PROCESSOR_POWER9, MASK_POWERPC64 | ISA_3_0_MASKS_SERVER)
> +RS6000_CPU ("power8", PROCESSOR_POWER8, MASK_POWERPC64 | ISA_2_7_MASKS_SERVER
> + | OPTION_MASK_HTM)
> +RS6000_CPU ("power9", PROCESSOR_POWER9, MASK_POWERPC64 | ISA_3_0_MASKS_SERVER
> + | OPTION_MASK_HTM)
> -RS6000_CPU ("powerpc64le", PROCESSOR_POWER8, MASK_POWERPC64 | ISA_2_7_MASKS_SERVER)
> +RS6000_CPU ("powerpc64le", PROCESSOR_POWER8, MASK_POWERPC64 | ISA_2_7_MASKS_SERVER
> + | OPTION_MASK_HTM)
This, too.
> --- a/gcc/config/rs6000/rs6000.c
> +++ b/gcc/config/rs6000/rs6000.c
> @@ -3807,7 +3807,8 @@ rs6000_option_override_internal (bool global_init_p)
> /* If little-endian, default to -mstrict-align on older processors.
> Testing for htm matches power8 and later. */
> if (!BYTES_BIG_ENDIAN
> - && !(processor_target_table[tune_index].target_enable & OPTION_MASK_HTM))
> + && !(processor_target_table[tune_index].target_enable
> + & OPTION_MASK_CRYPTO))
> rs6000_isa_flags |= ~rs6000_isa_flags_explicit & OPTION_MASK_STRICT_ALIGN;
But not this. Not all ISA 2.07 processors implement the crypto
category. You could use OPTION_MASK_DIRECT_MOVE, instead?
Okay for trunk with that change (if that works ;-) ) Thanks!
Segher
More information about the Gcc-patches
mailing list