aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2002-04-10 14:06:38 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2002-04-10 14:06:38 +0000
commit0be5cf851a3c590b043b0e55dad2999c72237ac7 (patch)
tree47e9800349f7a68a54d4fc92ef19480d68ff4457 /gcc/config/arm
parent6b7c9242a8ab2b707e1118a58d844bb5d9efc8f6 (diff)
downloadgcc-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.md12
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,*,*,*,*")]
)