diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2015-02-03 09:56:45 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2015-02-03 09:56:45 +0000 |
commit | aa47faf097d5267d382f7e4c70ae67c4b6795966 (patch) | |
tree | c2f8a3eadf7eb715b108682e34f462655b776e7a /gcc/config/sparc/sparc.h | |
parent | 76f0aa6c5ab7d17f06e697eebe064eedf2e6f4f6 (diff) | |
download | gcc-aa47faf097d5267d382f7e4c70ae67c4b6795966.zip gcc-aa47faf097d5267d382f7e4c70ae67c4b6795966.tar.gz gcc-aa47faf097d5267d382f7e4c70ae67c4b6795966.tar.bz2 |
re PR target/62631 (gcc.dg/tree-ssa/ivopts-lt-2.c FAILs)
PR target/62631
* config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
(TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
* config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
From-SVN: r220369
Diffstat (limited to 'gcc/config/sparc/sparc.h')
-rw-r--r-- | gcc/config/sparc/sparc.h | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 48f3f6d..c6100a1 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -426,22 +426,20 @@ extern enum cmodel sparc_cmodel; #define WCHAR_TYPE_SIZE 16 /* Mask of all CPU selection flags. */ -#define MASK_ISA \ -(MASK_V8 + MASK_SPARCLITE + MASK_SPARCLET + MASK_V9 + MASK_DEPRECATED_V8_INSNS) +#define MASK_ISA \ + (MASK_SPARCLITE + MASK_SPARCLET \ + + MASK_V8 + MASK_V9 + MASK_DEPRECATED_V8_INSNS) -/* TARGET_HARD_MUL: Use hardware multiply instructions but not %y. - TARGET_HARD_MUL32: Use hardware multiply instructions with rd %y - to get high 32 bits. False in V8+ or V9 because multiply stores - a 64-bit result in a register. */ - -#define TARGET_HARD_MUL32 \ - ((TARGET_V8 || TARGET_SPARCLITE \ - || TARGET_SPARCLET || TARGET_DEPRECATED_V8_INSNS) \ - && ! TARGET_V8PLUS && TARGET_ARCH32) +/* TARGET_HARD_MUL: Use 32-bit hardware multiply instructions but not %y. */ +#define TARGET_HARD_MUL \ + (TARGET_SPARCLITE || TARGET_SPARCLET \ + || TARGET_V8 || TARGET_DEPRECATED_V8_INSNS) -#define TARGET_HARD_MUL \ - (TARGET_V8 || TARGET_SPARCLITE || TARGET_SPARCLET \ - || TARGET_DEPRECATED_V8_INSNS || TARGET_V8PLUS) +/* TARGET_HARD_MUL32: Use 32-bit hardware multiply instructions with %y + to get high 32 bits. False in 64-bit or V8+ because multiply stores + a 64-bit result in a register. */ +#define TARGET_HARD_MUL32 \ + (TARGET_HARD_MUL && TARGET_ARCH32 && !TARGET_V8PLUS) /* MASK_APP_REGS must always be the default because that's what FIXED_REGISTERS is set to and -ffixed- is processed before |