diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1999-03-16 15:47:06 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1999-03-16 15:47:06 +0000 |
commit | 3ca0a5247e4180390d82b28433f16a98dbcdb00d (patch) | |
tree | cd2cbf3de58338577503bacb7614ec0b85da7a5b /gcc/config/sh/sh.md | |
parent | bbecc1d6a762c1da720573b1a95848c545c2ec27 (diff) | |
download | gcc-3ca0a5247e4180390d82b28433f16a98dbcdb00d.zip gcc-3ca0a5247e4180390d82b28433f16a98dbcdb00d.tar.gz gcc-3ca0a5247e4180390d82b28433f16a98dbcdb00d.tar.bz2 |
* sh.md (movsi_i): Move t/r alternative after r/rI alternative.
From-SVN: r25804
Diffstat (limited to 'gcc/config/sh/sh.md')
-rw-r--r-- | gcc/config/sh/sh.md | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index a3b8e91..f572d6f 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 |