From: Eric Botcazou Date: Wed, 22 Sep 2004 23:18:28 +0000 (+0200) Subject: sparc.md (cmove splitter): Fix formatting. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ba652ba92560c4aca703d809ff2b535fdb3215cc;p=gcc.git sparc.md (cmove splitter): Fix formatting. * config/sparc/sparc.md (cmove splitter): Fix formatting. (conditional_trap expander): Reject inappropriate CCmodes. (conditional trap expander): Use V9 syntax if possible. From-SVN: r87894 --- 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 + + * 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 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 ""