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
This commit is contained in:
Richard Earnshaw 2002-04-10 14:06:38 +00:00 committed by Richard Earnshaw
parent 6b7c9242a8
commit 0be5cf851a
2 changed files with 17 additions and 6 deletions

View File

@ -1,3 +1,14 @@
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>
* config/mips/mips.c (mips_va_arg): When using the struct version

View File

@ -3963,7 +3963,7 @@
[(set_attr "length" "8")
(set_attr "type" "*,load,store2")
(set_attr "pool_range" "*,1020,*")
(set_attr "neg_pool_range" "*,1012,*")]
(set_attr "neg_pool_range" "*,1008,*")]
)
;;; ??? This should have alternatives for constants.
@ -5095,8 +5095,8 @@
(set_attr "predicable" "yes")
(set_attr "type"
"load,store2,*,store2,load,ffarith,ffarith,f_load,f_store,r_mem_f,f_mem_r")
(set_attr "pool_range" "*,*,*,*,252,*,*,1024,*,*,*")
(set_attr "neg_pool_range" "*,*,*,*,244,*,*,1012,*,*,*")]
(set_attr "pool_range" "*,*,*,*,1020,*,*,1024,*,*,*")
(set_attr "neg_pool_range" "*,*,*,*,1008,*,*,1008,*,*,*")]
)
;; Software floating point version. This is essentially the same as movdi.
@ -5111,8 +5111,8 @@
"* return output_move_double (operands);"
[(set_attr "length" "8,8,8")
(set_attr "type" "*,load,store2")
(set_attr "pool_range" "252")
(set_attr "neg_pool_range" "244")]
(set_attr "pool_range" "1020")
(set_attr "neg_pool_range" "1008")]
)
;;; ??? This should have alternatives for constants.
@ -5186,7 +5186,7 @@
(set_attr "predicable" "yes")
(set_attr "type" "ffarith,ffarith,f_load,f_store,r_mem_f,f_mem_r,*")
(set_attr "pool_range" "*,*,1024,*,*,*,*")
(set_attr "neg_pool_range" "*,*,1012,*,*,*,*")]
(set_attr "neg_pool_range" "*,*,1004,*,*,*,*")]
)