Commit 0be5cf85 by Richard Earnshaw Committed by Richard Earnshaw

re PR target/817 (ARM compiler generates out-of-range accesses to constant pool data)

PR target/817
* arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
for the fact that the pool entry uses two words.
(movdf_hard_insn): Similarly.  Also, ADR instruction can span
1k bytes.
(movdf_soft_insn): Similarly.
(movxf_hard_insn): Adjust neg_pool_range attribute to allow
for the fact that the pool entry uses three words.

From-SVN: r52132
parent 6b7c9242
2002-04-10 Richard Earnshaw <rearnsha@arm.com>
PR target/817
* arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
for the fact that the pool entry uses two words.
(movdf_hard_insn): Similarly. Also, ADR instruction can span
1k bytes.
(movdf_soft_insn): Similarly.
(movxf_hard_insn): Adjust neg_pool_range attribute to allow
for the fact that the pool entry uses three words.
2002-04-10 Richard Sandiford <rsandifo@redhat.com> 2002-04-10 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_va_arg): When using the struct version * config/mips/mips.c (mips_va_arg): When using the struct version
......
...@@ -3963,7 +3963,7 @@ ...@@ -3963,7 +3963,7 @@
[(set_attr "length" "8") [(set_attr "length" "8")
(set_attr "type" "*,load,store2") (set_attr "type" "*,load,store2")
(set_attr "pool_range" "*,1020,*") (set_attr "pool_range" "*,1020,*")
(set_attr "neg_pool_range" "*,1012,*")] (set_attr "neg_pool_range" "*,1008,*")]
) )
;;; ??? This should have alternatives for constants. ;;; ??? This should have alternatives for constants.
...@@ -5095,8 +5095,8 @@ ...@@ -5095,8 +5095,8 @@
(set_attr "predicable" "yes") (set_attr "predicable" "yes")
(set_attr "type" (set_attr "type"
"load,store2,*,store2,load,ffarith,ffarith,f_load,f_store,r_mem_f,f_mem_r") "load,store2,*,store2,load,ffarith,ffarith,f_load,f_store,r_mem_f,f_mem_r")
(set_attr "pool_range" "*,*,*,*,252,*,*,1024,*,*,*") (set_attr "pool_range" "*,*,*,*,1020,*,*,1024,*,*,*")
(set_attr "neg_pool_range" "*,*,*,*,244,*,*,1012,*,*,*")] (set_attr "neg_pool_range" "*,*,*,*,1008,*,*,1008,*,*,*")]
) )
;; Software floating point version. This is essentially the same as movdi. ;; Software floating point version. This is essentially the same as movdi.
...@@ -5111,8 +5111,8 @@ ...@@ -5111,8 +5111,8 @@
"* return output_move_double (operands);" "* return output_move_double (operands);"
[(set_attr "length" "8,8,8") [(set_attr "length" "8,8,8")
(set_attr "type" "*,load,store2") (set_attr "type" "*,load,store2")
(set_attr "pool_range" "252") (set_attr "pool_range" "1020")
(set_attr "neg_pool_range" "244")] (set_attr "neg_pool_range" "1008")]
) )
;;; ??? This should have alternatives for constants. ;;; ??? This should have alternatives for constants.
...@@ -5186,7 +5186,7 @@ ...@@ -5186,7 +5186,7 @@
(set_attr "predicable" "yes") (set_attr "predicable" "yes")
(set_attr "type" "ffarith,ffarith,f_load,f_store,r_mem_f,f_mem_r,*") (set_attr "type" "ffarith,ffarith,f_load,f_store,r_mem_f,f_mem_r,*")
(set_attr "pool_range" "*,*,1024,*,*,*,*") (set_attr "pool_range" "*,*,1024,*,*,*,*")
(set_attr "neg_pool_range" "*,*,1012,*,*,*,*")] (set_attr "neg_pool_range" "*,*,1004,*,*,*,*")]
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment