cirrus.md (cirrus_arm_movdi, [...]): Set pool ranges for coprocessor loads.
authorPaul Brook <paul@codesourcery.com>
Wed, 30 Jun 2004 16:51:33 +0000 (16:51 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Wed, 30 Jun 2004 16:51:33 +0000 (16:51 +0000)
* config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.

From-SVN: r83915

gcc/ChangeLog
gcc/config/arm/cirrus.md

index 1a1f1f3cc06246226cbdc3c1588e30c4fbdda68d..5ca2417a697a7bd5b36403537c0857151e7c7f18 100644 (file)
@@ -1,3 +1,8 @@
+2004-06-30  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
+       cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.
+
 2004-06-30  Sebastian Pop  <pop@cri.ensmp.fr>
 
        * Makefile.in (OBJS-common): Add tree-chrec.o.
index 009d5c325d75533c543f4485406a4d8eed2c7662..5a30eb5fa7124d2d8931781273fbc172ee005ea4 100644 (file)
 
 (define_insn "*cirrus_arm_movdi"
   [(set (match_operand:DI 0 "nonimmediate_di_operand" "=r,r,o<>,v,r,v,m,v")
-       (match_operand:DI 1 "di_operand"              "rIK,mi,r,r,v,m,v,v"))]
+       (match_operand:DI 1 "di_operand"              "rIK,mi,r,r,v,mi,v,v"))]
   "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_MAVERICK"
   "*
   {
   }"
   [(set_attr "length"         "  8,   8,     8,   8,     8,     4,     4,     4")
    (set_attr "type"           "  *,load2,store2,   *,     *,  load2,store2,     *")
-   (set_attr "pool_range"     "  *,1020,     *,   *,     *,     *,     *,     *")
-   (set_attr "neg_pool_range" "  *,1012,     *,   *,     *,     *,     *,     *")
+   (set_attr "pool_range"     "  *,1020,     *,   *,     *,  1020,     *,     *")
+   (set_attr "neg_pool_range" "  *,1012,     *,   *,     *,  1008,     *,     *")
    (set_attr "cirrus"         "not, not,   not,move,normal,double,double,normal")]
 )
 
 
 (define_insn "*cirrus_movsf_hard_insn"
   [(set (match_operand:SF 0 "nonimmediate_operand" "=v,v,v,r,m,r,r,m")
-        (match_operand:SF 1 "general_operand"       "v,m,r,v,v,r,mE,r"))]
+        (match_operand:SF 1 "general_operand"      "v,mE,r,v,v,r,mE,r"))]
   "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_MAVERICK
    && (GET_CODE (operands[0]) != MEM
        || register_operand (operands[1], SFmode))"
    str%?\\t%1, %0\\t%@ float"
   [(set_attr "length"         "     *,     *,   *,     *,     *,  4,   4,     4")
    (set_attr "type"           "     *,  load1,   *,     *,store1,  *,load1,store1")
-   (set_attr "pool_range"     "     *,     *,   *,     *,     *,  *,4096,     *")
-   (set_attr "neg_pool_range" "     *,     *,   *,     *,     *,  *,4084,     *")
+   (set_attr "pool_range"     "     *,   1020,   *,     *,     *,  *,4096,     *")
+   (set_attr "neg_pool_range" "     *,   1008,   *,     *,     *,  *,4084,     *")
    (set_attr "cirrus"         "normal,normal,move,normal,normal,not, not,   not")]
 )
 
 (define_insn "*cirrus_movdf_hard_insn"
   [(set (match_operand:DF 0 "nonimmediate_operand" "=r,Q,r,m,r,v,v,v,r,m")
-       (match_operand:DF 1 "general_operand"       "Q,r,r,r,mF,v,m,r,v,v"))]
+       (match_operand:DF 1 "general_operand"       "Q,r,r,r,mF,v,mF,r,v,v"))]
   "TARGET_ARM
    && TARGET_HARD_FLOAT && TARGET_MAVERICK
    && (GET_CODE (operands[0]) != MEM
   }"
   [(set_attr "type"           "load1,store2,  *,store2,load1,     *,  load1,   *,     *,store2")
    (set_attr "length"         "   4,     4,  8,     8,   8,     4,     4,   8,     8,     4")
-   (set_attr "pool_range"     "   *,     *,  *,     *, 252,     *,     *,   *,     *,     *")
-   (set_attr "neg_pool_range" "   *,     *,  *,     *, 244,     *,     *,   *,     *,     *")
+   (set_attr "pool_range"     "   *,     *,  *,     *, 252,     *,  1020,   *,     *,     *")
+   (set_attr "neg_pool_range" "   *,     *,  *,     *, 244,     *,  1008,   *,     *,     *")
    (set_attr "cirrus"         " not,   not,not,   not, not,normal,double,move,normal,double")]
 )