diff options
author | Nick Clifton <nickc@redhat.com> | 2011-04-07 14:02:37 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2011-04-07 14:02:37 +0000 |
commit | 5a10b0a943a1e7d7a1d0169d7d1c69f128783ca3 (patch) | |
tree | 7a59917fe5037aea60cc9ac116105d7513978fa8 | |
parent | 20c033673b645e883b34e2695f7af287bf839fa9 (diff) | |
download | gcc-5a10b0a943a1e7d7a1d0169d7d1c69f128783ca3.zip gcc-5a10b0a943a1e7d7a1d0169d7d1c69f128783ca3.tar.gz gcc-5a10b0a943a1e7d7a1d0169d7d1c69f128783ca3.tar.bz2 |
mn10300.md (movqi_internal): Add alternatives to handle MDR <-> data register transfers.
* config/mn10300/mn10300.md (movqi_internal): Add alternatives
to handle MDR <-> data register transfers.
(movhi_internal): Likewise.
From-SVN: r172099
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.md | 18 |
2 files changed, 20 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7cbbbfb..503fbad 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-04-05 Nick Clifton <nickc@redhat.com> + + * config/mn10300/mn10300.md (movqi_internal): Add alternatives + to handle MDR <-> data register transfers. + (movhi_internal): Likewise. + 2011-04-07 Alan Modra <amodra@gmail.com> * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index 3d8e914..f3f23e7 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -239,8 +239,8 @@ }) (define_insn "*movqi_internal" - [(set (match_operand:QI 0 "nonimmediate_operand" "=*r,D*r,D*r,D,m") - (match_operand:QI 1 "general_operand" " 0,D*r, i,m,D"))] + [(set (match_operand:QI 0 "nonimmediate_operand" "=*r,D*r,D*r,D,m,*z,d") + (match_operand:QI 1 "general_operand" " 0,D*r, i,m,D,d,*z"))] "(register_operand (operands[0], QImode) || register_operand (operands[1], QImode))" { @@ -250,6 +250,8 @@ return ""; case 1: case 2: + case 5: + case 6: return "mov %1,%0"; case 3: case 4: @@ -266,6 +268,8 @@ (const_int 13) (const_int 24)) (if_then_else (eq_attr "cpu" "am34") (const_int 11) (const_int 22)) + (const_int 11) + (const_int 11) ])] ) @@ -283,8 +287,8 @@ }) (define_insn "*movhi_internal" - [(set (match_operand:HI 0 "nonimmediate_operand" "=*r,D*r,D*r,D,m") - (match_operand:HI 1 "general_operand" " 0, i,D*r,m,D"))] + [(set (match_operand:HI 0 "nonimmediate_operand" "=*r,D*r,D*r,D,m,*z,d") + (match_operand:HI 1 "general_operand" " 0, i,D*r,m,D,d,*z"))] "(register_operand (operands[0], HImode) || register_operand (operands[1], HImode))" { @@ -302,6 +306,8 @@ && REGNO_EXTENDED_P (REGNO (operands[0]), 1)) return "movu %1,%0"; /* FALLTHRU */ + case 5: + case 6: case 2: return "mov %1,%0"; case 3: @@ -320,6 +326,10 @@ (const_int 13) (const_int 24)) (if_then_else (eq_attr "cpu" "am34") (const_int 11) (const_int 22)) + (if_then_else (eq_attr "cpu" "am34") + (const_int 11) (const_int 22)) + (if_then_else (eq_attr "cpu" "am34") + (const_int 11) (const_int 22)) ])] ) |