Commit 9b19b026 by Stuart Henderson

2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>

        From Bernd Schmidt
        * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.

From-SVN: r173368
parent 502bc3df
2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
From Bernd Schmidt
* config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB) * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
......
...@@ -1217,22 +1217,21 @@ ...@@ -1217,22 +1217,21 @@
"%0 = %h2 * %h1 (IS,M)%!" "%0 = %h2 * %h1 (IS,M)%!"
[(set_attr "type" "dsp32")]) [(set_attr "type" "dsp32")])
;; The processor also supports ireg += mreg or ireg -= mreg, but these ;; The alternative involving IREGS requires that the corresponding L register
;; are unusable if we don't ensure that the corresponding lreg is zero. ;; is zero.
;; The same applies to the add/subtract constant versions involving
;; iregs
(define_insn "addsi3" (define_insn "addsi3"
[(set (match_operand:SI 0 "register_operand" "=ad,a,d") [(set (match_operand:SI 0 "register_operand" "=ad,a,d,b")
(plus:SI (match_operand:SI 1 "register_operand" "%0, a,d") (plus:SI (match_operand:SI 1 "register_operand" "%0, a,d,0")
(match_operand:SI 2 "reg_or_7bit_operand" "Ks7, a,d")))] (match_operand:SI 2 "reg_or_7bit_operand" "Ks7, a,d,fP2P4")))]
"" ""
"@ "@
%0 += %2; %0 += %2;
%0 = %1 + %2; %0 = %1 + %2;
%0 = %1 + %2;" %0 = %1 + %2;
%0 += %2;"
[(set_attr "type" "alu0") [(set_attr "type" "alu0")
(set_attr "length" "2,2,2")]) (set_attr "length" "2,2,2,2")])
(define_insn "ssaddsi3" (define_insn "ssaddsi3"
[(set (match_operand:SI 0 "register_operand" "=d") [(set (match_operand:SI 0 "register_operand" "=d")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment