diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-25 16:21:05 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-25 16:21:05 +0000 |
commit | 6c4a5e40ef0b9878ac9fda55cca44eae27d0a7e0 (patch) | |
tree | ab86ba73c588274c2fdb976735333d6da7d1239b /gcc/config/arm/iwmmxt.md | |
parent | 08715a1a4174323a24f9554b49bf02428cc15965 (diff) | |
download | gcc-6c4a5e40ef0b9878ac9fda55cca44eae27d0a7e0.tar.gz |
* config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
movv2si_internal): Add mem = reg alternative.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138146 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/iwmmxt.md')
-rw-r--r-- | gcc/config/arm/iwmmxt.md | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/gcc/config/arm/iwmmxt.md b/gcc/config/arm/iwmmxt.md index 633aaaa875f..b484b55e6cd 100644 --- a/gcc/config/arm/iwmmxt.md +++ b/gcc/config/arm/iwmmxt.md @@ -168,8 +168,8 @@ ) (define_insn "movv8qi_internal" - [(set (match_operand:V8QI 0 "nonimmediate_operand" "=y,m,y,?r,?y,?r,?r") - (match_operand:V8QI 1 "general_operand" "y,y,mi,y,r,r,mi"))] + [(set (match_operand:V8QI 0 "nonimmediate_operand" "=y,m,y,?r,?y,?r,?r,?m") + (match_operand:V8QI 1 "general_operand" "y,y,mi,y,r,r,mi,r"))] "TARGET_REALLY_IWMMXT" "* switch (which_alternative) @@ -183,14 +183,14 @@ default: return output_move_double (operands); }" [(set_attr "predicable" "yes") - (set_attr "length" "4, 4, 4,4,4,8, 8") - (set_attr "type" "*,store1,load1,*,*,*,load1") - (set_attr "pool_range" "*, *, 256,*,*,*, 256") - (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244")]) + (set_attr "length" "4, 4, 4,4,4,8, 8,8") + (set_attr "type" "*,store1,load1,*,*,*,load1,store1") + (set_attr "pool_range" "*, *, 256,*,*,*, 256,*") + (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")]) (define_insn "movv4hi_internal" - [(set (match_operand:V4HI 0 "nonimmediate_operand" "=y,m,y,?r,?y,?r,?r") - (match_operand:V4HI 1 "general_operand" "y,y,mi,y,r,r,mi"))] + [(set (match_operand:V4HI 0 "nonimmediate_operand" "=y,m,y,?r,?y,?r,?r,?m") + (match_operand:V4HI 1 "general_operand" "y,y,mi,y,r,r,mi,r"))] "TARGET_REALLY_IWMMXT" "* switch (which_alternative) @@ -204,14 +204,14 @@ default: return output_move_double (operands); }" [(set_attr "predicable" "yes") - (set_attr "length" "4, 4, 4,4,4,8, 8") - (set_attr "type" "*,store1,load1,*,*,*,load1") - (set_attr "pool_range" "*, *, 256,*,*,*, 256") - (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244")]) + (set_attr "length" "4, 4, 4,4,4,8, 8,8") + (set_attr "type" "*,store1,load1,*,*,*,load1,store1") + (set_attr "pool_range" "*, *, 256,*,*,*, 256,*") + (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")]) (define_insn "movv2si_internal" - [(set (match_operand:V2SI 0 "nonimmediate_operand" "=y,m,y,?r,?y,?r,?r") - (match_operand:V2SI 1 "general_operand" "y,y,mi,y,r,r,mi"))] + [(set (match_operand:V2SI 0 "nonimmediate_operand" "=y,m,y,?r,?y,?r,?r,?m") + (match_operand:V2SI 1 "general_operand" "y,y,mi,y,r,r,mi,r"))] "TARGET_REALLY_IWMMXT" "* switch (which_alternative) @@ -225,10 +225,10 @@ default: return output_move_double (operands); }" [(set_attr "predicable" "yes") - (set_attr "length" "4, 4, 4,4,4,8, 24") - (set_attr "type" "*,store1,load1,*,*,*,load1") - (set_attr "pool_range" "*, *, 256,*,*,*, 256") - (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244")]) + (set_attr "length" "4, 4, 4,4,4,8, 24,8") + (set_attr "type" "*,store1,load1,*,*,*,load1,store1") + (set_attr "pool_range" "*, *, 256,*,*,*, 256,*") + (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")]) ;; This pattern should not be needed. It is to match a ;; wierd case generated by GCC when no optimizations are |