From 9cf106c86514bf6cf415fd198c89d4ab304f2990 Mon Sep 17 00:00:00 2001 From: Julian Brown Date: Fri, 12 Jan 2007 09:20:49 +0000 Subject: [PATCH] 200x-xx-xx Julian Brown gcc/ 200x-xx-xx Julian Brown * config/m68k/m68k.h (TUNE_68040_60): New macro. * config/m68k/m68k.c (standard_68881_constant_p): Use it. * config/m68k/m68k.md: Likewise. From-SVN: r120707 --- gcc/ChangeLog | 6 ++++++ gcc/config/m68k/m68k.c | 2 +- gcc/config/m68k/m68k.h | 1 + gcc/config/m68k/m68k.md | 14 +++++++------- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a8e0835c34c..23634722288 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-01-12 Julian Brown + + * config/m68k/m68k.h (TUNE_68040_60): New macro. + * config/m68k/m68k.c (standard_68881_constant_p): Use it. + * config/m68k/m68k.md: Likewise. + 2007-01-12 Julian Brown Richard Sandiford diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 0fae1d902a0..2a2b1aaa6e4 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -2789,7 +2789,7 @@ standard_68881_constant_p (rtx x) /* fmovecr must be emulated on the 68040 and 68060, so it shouldn't be used at all on those chips. */ - if (TUNE_68040 || TUNE_68060) + if (TUNE_68040_60) return 0; if (! inited_68881_table) diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index b50bf10c550..5eedd9acc0f 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -130,6 +130,7 @@ Boston, MA 02110-1301, USA. */ #define TUNE_68030 TARGET_68030 #define TUNE_68040 TARGET_68040 #define TUNE_68060 TARGET_68060 +#define TUNE_68040_60 (TUNE_68040 || TUNE_68060) #define TUNE_CFV2 TARGET_5200 #define OVERRIDE_OPTIONS override_options() diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index 92fd31c38a4..c02c75cd8df 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -618,10 +618,10 @@ if (ADDRESS_REG_P (operands[0])) { /* On the '040, 'subl an,an' takes 2 clocks while lea takes only 1 */ - if (!TUNE_68040 && !TUNE_68060) - return "sub%.l %0,%0"; - else + if (TUNE_68040_60) return MOTOROLA ? "lea 0.w,%0" : "lea 0:w,%0"; + else + return "sub%.l %0,%0"; } /* moveq is faster on the 68000. */ if (DATA_REG_P (operands[0]) && TUNE_68000_10) @@ -846,10 +846,10 @@ if (ADDRESS_REG_P (operands[0])) { /* On the '040, 'subl an,an' takes 2 clocks while lea takes only 1 */ - if (!TUNE_68040 && !TUNE_68060) - return "sub%.l %0,%0"; - else + if (TUNE_68040_60) return MOTOROLA ? "lea 0.w,%0" : "lea 0:w,%0"; + else + return "sub%.l %0,%0"; } /* moveq is faster on the 68000. */ if (DATA_REG_P (operands[0]) && TUNE_68000_10) @@ -2869,7 +2869,7 @@ "TARGET_68881" { if (GET_CODE (operands[2]) == CONST_DOUBLE - && floating_exact_log2 (operands[2]) && !TUNE_68040 && !TUNE_68060) + && floating_exact_log2 (operands[2]) && !TUNE_68040_60) { int i = floating_exact_log2 (operands[2]); operands[2] = GEN_INT (i);