From: J"orn Rennecke Date: Tue, 16 Mar 1999 15:47:06 +0000 (+0000) Subject: * sh.md (movsi_i): Move t/r alternative after r/rI alternative. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ca0a5247e4180390d82b28433f16a98dbcdb00d;p=gcc.git * sh.md (movsi_i): Move t/r alternative after r/rI alternative. From-SVN: r25804 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bca2a6cb323..609f7d3cf56 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Tue Mar 16 23:40:09 1999 J"orn Rennecke + + * sh.md (movsi_i): Move t/r alternative after r/rI alternative. + Tue Mar 16 13:44:50 1999 Jim Wilson * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3): diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index a3b8e9142a9..f572d6f343d 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -2143,19 +2143,20 @@ "" "sett") -;; t/r is first, so that it will be preferred over r/r when reloading a move -;; of a pseudo-reg into the T reg +;; t/r must come after r/r, lest reload will try to reload stuff like +;; (set (subreg:SI (mem:QI (plus:SI (reg:SI 15 r15) (const_int 12)) 0) 0) +;; (made from (set (subreg:SI (reg:QI 73) 0) ) into T. (define_insn "movsi_i" - [(set (match_operand:SI 0 "general_movdst_operand" "=t,r,r,r,r,r,m,<,<,xl,x,l,r") - (match_operand:SI 1 "general_movsrc_operand" "r,Q,rI,mr,xl,t,r,x,l,r,>,>,i"))] + [(set (match_operand:SI 0 "general_movdst_operand" "=r,r,t,r,r,r,m,<,<,xl,x,l,r") + (match_operand:SI 1 "general_movsrc_operand" "Q,rI,r,mr,xl,t,r,x,l,r,>,>,i"))] " ! TARGET_SH3E && (register_operand (operands[0], SImode) || register_operand (operands[1], SImode))" "@ - cmp/pl %1 mov.l %1,%0 mov %1,%0 + cmp/pl %1 mov.l %1,%0 sts %1,%0 movt %0 @@ -2166,7 +2167,7 @@ lds.l %1,%0 lds.l %1,%0 fake %1,%0" - [(set_attr "type" "*,pcload_si,move,load_si,move,move,store,store,pstore,move,load,pload,pcload_si") + [(set_attr "type" "pcload_si,move,*,load_si,move,move,store,store,pstore,move,load,pload,pcload_si") (set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*")]) ;; t/r must come after r/r, lest reload will try to reload stuff like