diff options
author | Alexandre Oliva <aoliva@cygnus.com> | 2000-04-27 14:46:55 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2000-04-27 14:46:55 +0000 |
commit | 5e849f6e86c9cccc8fcc145d887dfdbd08134da7 (patch) | |
tree | 1fb4b0ff1db61a90034ef90be3d76feb82967e65 /gcc | |
parent | 2a5b96fdb1cdccc1dfe2c8feb36ddaec7ac08069 (diff) | |
download | gcc-5e849f6e86c9cccc8fcc145d887dfdbd08134da7.zip gcc-5e849f6e86c9cccc8fcc145d887dfdbd08134da7.tar.gz gcc-5e849f6e86c9cccc8fcc145d887dfdbd08134da7.tar.bz2 |
mn10300.md (movqi): Simplify.
* config/mn10300/mn10300.md (movqi): Simplify. Prefer data
registers.
From-SVN: r33485
Diffstat (limited to 'gcc')
-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 e2063af..c563b21 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.md (movqi): Simplify. Prefer data + registers. + Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz> * expr.c (store_expr): Use clear_storage instead of direct memset diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index 17195b4..12e809f 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -56,8 +56,8 @@ }") (define_insn "" - [(set (match_operand:QI 0 "general_operand" "=dx,a,dx,a,dx,a,dx,a,dxa,m") - (match_operand:QI 1 "general_operand" "0,0,I,I,a,dx,dxi,ia,m,dxa"))] + [(set (match_operand:QI 0 "general_operand" "=d*x*a,d*x,d*x*a,d*x*a,m") + (match_operand:QI 1 "general_operand" "0,I,d*xai,m,d*xa"))] "TARGET_AM33 && (register_operand (operands[0], QImode) || register_operand (operands[1], QImode))" @@ -66,15 +66,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]; @@ -94,18 +89,18 @@ return \"movu %1,%0\"; } return \"mov %1,%0\"; - case 8: - case 9: + case 3: + case 4: return \"movbu %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:QI 0 "general_operand" "=dx,*a,dx,*a,dx,*a,dx,*a,dx,m") - (match_operand:QI 1 "general_operand" "0,0,I,I,a,dx,dxi,ia,m,dx"))] + [(set (match_operand:QI 0 "general_operand" "=d*a,d,d*a,d,m") + (match_operand:QI 1 "general_operand" "0,I,dai,m,d"))] "register_operand (operands[0], QImode) || register_operand (operands[1], QImode)" "* @@ -113,15 +108,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]; @@ -132,14 +122,14 @@ } return \"mov %1,%0\"; - case 8: - case 9: + case 3: + case 4: return \"movbu %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")]) ;; movhi |