diff options
| author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-22 23:18:28 +0000 |
|---|---|---|
| committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-22 23:18:28 +0000 |
| commit | f77b9d3c8bd42fcf3a74aec63627d72be2282fe4 (patch) | |
| tree | b3d5bb239932ccbec603d33c9cae56018f182c41 | |
| parent | 6b1e49c4431000233a54179dbb19030d0fb5348e (diff) | |
| download | ppe42-gcc-f77b9d3c8bd42fcf3a74aec63627d72be2282fe4.tar.gz ppe42-gcc-f77b9d3c8bd42fcf3a74aec63627d72be2282fe4.zip | |
* config/sparc/sparc.md (cmove splitter): Fix formatting.
(conditional_trap expander): Reject inappropriate CCmodes.
(conditional trap expander): Use V9 syntax if possible.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87894 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/config/sparc/sparc.md | 17 |
2 files changed, 18 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b0fe994abfd..3680fead8be 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-09-22 Eric Botcazou <ebotcazou@libertysurf.fr> + + * config/sparc/sparc.md (cmove splitter): Fix formatting. + (conditional_trap expander): Reject inappropriate CCmodes. + (conditional trap expander): Use V9 syntax if possible. + 2004-09-22 Joseph S. Myers <jsm@polyomino.org.uk> PR c/16566 diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 886d190d16a..a077f8c881e 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -1209,9 +1209,10 @@ (match_operator:SI 2 "noov_compare_op" [(match_operand 1 "icc_or_fcc_reg_operand" "") (const_int 0)]))] - ;; 32 bit LTU/GEU are better implemented using addx/subx - "TARGET_V9 && REGNO (operands[1]) == SPARC_ICC_REG + "TARGET_V9 + && REGNO (operands[1]) == SPARC_ICC_REG && (GET_MODE (operands[1]) == CCXmode + /* 32 bit LTU/GEU are better implemented using addx/subx. */ || (GET_CODE (operands[2]) != LTU && GET_CODE (operands[2]) != GEU))" [(set (match_dup 0) (const_int 0)) (set (match_dup 0) @@ -8222,19 +8223,25 @@ [(set_attr "type" "trap")]) (define_expand "conditional_trap" - [(trap_if (match_operator 0 "noov_compare_op" - [(match_dup 2) (match_dup 3)]) + [(trap_if (match_operator 0 "noov_compare_op" [(match_dup 2) (match_dup 3)]) (match_operand:SI 1 "arith_operand" ""))] "" "operands[2] = gen_compare_reg (GET_CODE (operands[0]), sparc_compare_op0, sparc_compare_op1); + if (GET_MODE (operands[2]) != CCmode && GET_MODE (operands[2]) != CCXmode) + FAIL; operands[3] = const0_rtx;") (define_insn "" [(trap_if (match_operator 0 "noov_compare_op" [(reg:CC 100) (const_int 0)]) (match_operand:SI 1 "arith_operand" "rM"))] "" - "t%C0\t%1" +{ + if (TARGET_V9) + return "t%C0\t%%icc, %1"; + else + return "t%C0\t%1"; +} [(set_attr "type" "trap")]) (define_insn "" |

