diff options
author | Joseph Myers <joseph@codesourcery.com> | 2007-01-02 13:03:59 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2007-01-02 13:03:59 +0000 |
commit | 8ef65e3da89bad9551d9ee157750ca7fa783ef6f (patch) | |
tree | 7179dd200a173cab62df32add705ee3c400d6232 /gcc | |
parent | d8934cf1e3a5e6cfe4d85841996e28555d8aea76 (diff) | |
download | gcc-8ef65e3da89bad9551d9ee157750ca7fa783ef6f.zip gcc-8ef65e3da89bad9551d9ee157750ca7fa783ef6f.tar.gz gcc-8ef65e3da89bad9551d9ee157750ca7fa783ef6f.tar.bz2 |
rs6000.c (print_operand): Check (TARGET_SPE || TARGET_E500_DOUBLE), not TARGET_E500, for %y.
* config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
TARGET_E500_DOUBLE), not TARGET_E500, for %y.
(rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
rs6000_emit_cmove): Don't check TARGET_E500.
* config/rs6000/rs6000.md (bunordered, bordered, sunordered,
sordered): Don't check TARGET_E500.
From-SVN: r120339
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 15 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 10 |
3 files changed, 22 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f178159b..6dcf8ad 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-01-02 Joseph Myers <joseph@codesourcery.com> + + * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE || + TARGET_E500_DOUBLE), not TARGET_E500, for %y. + (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch, + rs6000_emit_cmove): Don't check TARGET_E500. + * config/rs6000/rs6000.md (bunordered, bordered, sunordered, + sordered): Don't check TARGET_E500. + 2007-01-01 Eric Christopher <echristo@apple.com> * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 3d4b19c..7401970 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1,6 +1,6 @@ /* Subroutines used for code generation on IBM RS/6000. Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -11016,7 +11016,8 @@ print_operand (FILE *file, rtx x, int code) tmp = XEXP (x, 0); /* Ugly hack because %y is overloaded. */ - if (TARGET_E500 && GET_MODE_SIZE (GET_MODE (x)) == 8) + if ((TARGET_SPE || TARGET_E500_DOUBLE) + && GET_MODE_SIZE (GET_MODE (x)) == 8) { /* Handle [reg]. */ if (GET_CODE (tmp) == REG) @@ -11315,7 +11316,7 @@ rs6000_generate_compare (enum rtx_code code) compare_result = gen_reg_rtx (comp_mode); /* E500 FP compare instructions on the GPRs. Yuck! */ - if ((TARGET_E500 && !TARGET_FPRS && TARGET_HARD_FLOAT) + if ((!TARGET_FPRS && TARGET_HARD_FLOAT) && rs6000_compare_fp_p) { rtx cmp, or_result, compare_result2; @@ -11508,7 +11509,7 @@ rs6000_generate_compare (enum rtx_code code) under flag_finite_math_only we don't bother. */ if (rs6000_compare_fp_p && !flag_finite_math_only - && !(TARGET_HARD_FLOAT && TARGET_E500 && !TARGET_FPRS) + && !(TARGET_HARD_FLOAT && !TARGET_FPRS) && (code == LE || code == GE || code == UNEQ || code == LTGT || code == UNGT || code == UNLT)) @@ -11558,7 +11559,7 @@ rs6000_emit_sCOND (enum rtx_code code, rtx result) condition_rtx = rs6000_generate_compare (code); cond_code = GET_CODE (condition_rtx); - if (TARGET_E500 && rs6000_compare_fp_p + if (rs6000_compare_fp_p && !TARGET_FPRS && TARGET_HARD_FLOAT) { rtx t; @@ -11665,7 +11666,7 @@ output_cbranch (rtx op, const char *label, int reversed, rtx insn) code = reverse_condition (code); } - if ((TARGET_E500 && !TARGET_FPRS && TARGET_HARD_FLOAT) && mode == CCFPmode) + if ((!TARGET_FPRS && TARGET_HARD_FLOAT) && mode == CCFPmode) { /* The efscmp/tst* instructions twiddle bit 2, which maps nicely to the GT bit. */ @@ -12081,7 +12082,7 @@ rs6000_emit_cmove (rtx dest, rtx op, rtx true_cond, rtx false_cond) return rs6000_emit_int_cmove (dest, op, true_cond, false_cond); return 0; } - else if (TARGET_E500 && TARGET_HARD_FLOAT && !TARGET_FPRS + else if (TARGET_HARD_FLOAT && !TARGET_FPRS && SCALAR_FLOAT_MODE_P (compare_mode)) return 0; diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index a4902c4..14b73c2 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1,6 +1,6 @@ ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler ;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; Free Software Foundation, Inc. ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) @@ -11421,12 +11421,12 @@ (define_expand "bunordered" [(use (match_operand 0 "" ""))] - "! (TARGET_HARD_FLOAT && TARGET_E500 && !TARGET_FPRS)" + "! (TARGET_HARD_FLOAT && !TARGET_FPRS)" "{ rs6000_emit_cbranch (UNORDERED, operands[0]); DONE; }") (define_expand "bordered" [(use (match_operand 0 "" ""))] - "! (TARGET_HARD_FLOAT && TARGET_E500 && !TARGET_FPRS)" + "! (TARGET_HARD_FLOAT && !TARGET_FPRS)" "{ rs6000_emit_cbranch (ORDERED, operands[0]); DONE; }") (define_expand "buneq" @@ -11555,12 +11555,12 @@ (define_expand "sunordered" [(clobber (match_operand:SI 0 "gpc_reg_operand" ""))] - "! (TARGET_HARD_FLOAT && TARGET_E500 && !TARGET_FPRS)" + "! (TARGET_HARD_FLOAT && !TARGET_FPRS)" "{ rs6000_emit_sCOND (UNORDERED, operands[0]); DONE; }") (define_expand "sordered" [(clobber (match_operand:SI 0 "gpc_reg_operand" ""))] - "! (TARGET_HARD_FLOAT && TARGET_E500 && !TARGET_FPRS)" + "! (TARGET_HARD_FLOAT && !TARGET_FPRS)" "{ rs6000_emit_sCOND (ORDERED, operands[0]); DONE; }") (define_expand "suneq" |