mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-18 10:00:35 +08:00
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:
parent
6b7c9242a8
commit
0be5cf851a
@ -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
|
||||
|
@ -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,*,*,*,*")]
|
||||
)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user