diff options
author | mkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-27 19:42:15 +0000 |
---|---|---|
committer | mkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-27 19:42:15 +0000 |
commit | 1276f1b8224016185893a481eb9841d519b33091 (patch) | |
tree | dee58e9ff2060acd68d5e7305d5cb5da959a4079 /gcc/config/arm/arm.c | |
parent | 36f52b0dc703aaab2194a7fcfcfa21886da39632 (diff) | |
download | gcc-1276f1b8224016185893a481eb9841d519b33091.tar.gz |
PR target/42495
PR middle-end/42574
* config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
* config/arm/arm.md (define_split "J", define_split "K"): Make
IRA/reload friendly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162594 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/arm.c')
-rw-r--r-- | gcc/config/arm/arm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 7b01afb3136..03c1506bd95 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -7003,6 +7003,10 @@ thumb1_size_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer) { if ((unsigned HOST_WIDE_INT) INTVAL (x) < 256) return 0; + /* See split "TARGET_THUMB1 && satisfies_constraint_J". */ + if (INTVAL (x) >= -255 && INTVAL (x) <= -1) + return COSTS_N_INSNS (2); + /* See split "TARGET_THUMB1 && satisfies_constraint_K". */ if (thumb_shiftable_const (INTVAL (x))) return COSTS_N_INSNS (2); return COSTS_N_INSNS (3); |