diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2002-04-10 14:06:38 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2002-04-10 14:06:38 +0000 |
commit | 0be5cf851a3c590b043b0e55dad2999c72237ac7 (patch) | |
tree | 47e9800349f7a68a54d4fc92ef19480d68ff4457 /gcc/config/arm | |
parent | 6b7c9242a8ab2b707e1118a58d844bb5d9efc8f6 (diff) | |
download | gcc-0be5cf851a3c590b043b0e55dad2999c72237ac7.zip gcc-0be5cf851a3c590b043b0e55dad2999c72237ac7.tar.gz gcc-0be5cf851a3c590b043b0e55dad2999c72237ac7.tar.bz2 |
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
Diffstat (limited to 'gcc/config/arm')
-rw-r--r-- | gcc/config/arm/arm.md | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 89e14c2..8b45862 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -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,*,*,*,*")] ) |