diff options
author | Alexandre Oliva <aoliva@cygnus.com> | 2000-04-27 15:49:20 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2000-04-27 15:49:20 +0000 |
commit | b340d2b8de4571dce424c3c53e8bcca26277fc13 (patch) | |
tree | cf305e0e988a67957d335fb3159a5e471f3959fb | |
parent | 1b513b771182dcaf9d849d73cf43624074f54ff5 (diff) | |
download | gcc-b340d2b8de4571dce424c3c53e8bcca26277fc13.zip gcc-b340d2b8de4571dce424c3c53e8bcca26277fc13.tar.gz gcc-b340d2b8de4571dce424c3c53e8bcca26277fc13.tar.bz2 |
mn10300.md (movhi): Simplify.
* config/mn10300/mn10300.md (movhi): Simplify. Prefer data
registers.
From-SVN: r33489
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.md | 38 |
2 files changed, 19 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e309f7e..d33cd55 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.md (movhi): Simplify. Prefer data + registers. + Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz> * function.c (epilogue_done): Pass whole insn to record_insns. diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index 12e809f..c3a7d9c 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -146,8 +146,8 @@ }") (define_insn "" - [(set (match_operand:HI 0 "general_operand" "=dx,a,dx,a,dx,a,dx,a,dxa,m") - (match_operand:HI 1 "general_operand" "0,0,I,I,a,dx,dxi,ia,m,dxa"))] + [(set (match_operand:HI 0 "general_operand" "=d*x*a,d*x,d*x*a,d*x*a,m") + (match_operand:HI 1 "general_operand" "0,I,d*x*ai,m,d*x*a"))] "TARGET_AM33 && (register_operand (operands[0], HImode) || register_operand (operands[1], HImode))" @@ -156,15 +156,10 @@ switch (which_alternative) { case 0: - case 1: return \"nop\"; - case 2: + case 1: return \"clr %0\"; - case 3: - case 4: - case 5: - case 6: - case 7: + case 2: if (GET_CODE (operands[1]) == CONST_DOUBLE) { rtx xoperands[2]; @@ -184,18 +179,18 @@ return \"movu %1,%0\"; } return \"mov %1,%0\"; - case 8: - case 9: + case 3: + case 4: return \"movhu %1,%0\"; default: abort (); } }" - [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) + [(set_attr "cc" "none,clobber,none_0hit,none_0hit,none_0hit")]) (define_insn "" - [(set (match_operand:HI 0 "general_operand" "=dx,*a,dx,*a,dx,*a,dx,*a,dx,m") - (match_operand:HI 1 "general_operand" "0,0,I,I,a,dx,dxi,ia,m,dx"))] + [(set (match_operand:HI 0 "general_operand" "=d*a,d,d*a,d,m") + (match_operand:HI 1 "general_operand" "0,I,dai,m,d"))] "register_operand (operands[0], HImode) || register_operand (operands[1], HImode)" "* @@ -203,15 +198,10 @@ switch (which_alternative) { case 0: - case 1: return \"nop\"; - case 2: + case 1: return \"clr %0\"; - case 3: - case 4: - case 5: - case 6: - case 7: + case 2: if (GET_CODE (operands[1]) == CONST_DOUBLE) { rtx xoperands[2]; @@ -221,14 +211,14 @@ return \"\"; } return \"mov %1,%0\"; - case 8: - case 9: + case 3: + case 4: return \"movhu %1,%0\"; default: abort (); } }" - [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) + [(set_attr "cc" "none,clobber,none_0hit,none_0hit,none_0hit")]) ;; movsi and helpers |