aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@superh.com>2004-09-01 13:43:40 +0000
committerNick Clifton <nickc@gcc.gnu.org>2004-09-01 13:43:40 +0000
commitc0311627d1d0be05baf31e0022936691acd6d094 (patch)
treea00c8660f11c70052e25053f44b4e46d0bdff2b5 /gcc
parentd98a72fd4f5ea4ea6ea45fd5af277eaeaa181678 (diff)
downloadgcc-c0311627d1d0be05baf31e0022936691acd6d094.zip
gcc-c0311627d1d0be05baf31e0022936691acd6d094.tar.gz
gcc-c0311627d1d0be05baf31e0022936691acd6d094.tar.bz2
config/sh/sh.md ("length"): Increase branch length when SH1 pic code to 18:
12 bytes of instructions, 4 byte for the constant, 2 byte for aligning the constant. Co-Authored-By: Nick Clifton <nickc@redhat.com> From-SVN: r86886
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/sh/sh.md15
2 files changed, 16 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6846701..606a214 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-01 J"orn Rennecke <joern.rennecke@superh.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * config/sh/sh.md ("length"): Increase branch length when
+ SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
+ constant, 2 byte for aligning the constant.
+
2004-09-01 Richard Earnshaw <rearnsha@arm.com>
* arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index a21a2a4..31e05a2 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -404,12 +404,15 @@
(cond [(eq_attr "med_branch_p" "yes")
(const_int 2)
(and (eq (symbol_ref "GET_CODE (prev_nonnote_insn (insn))")
- (symbol_ref "INSN"))
- (eq (symbol_ref "INSN_CODE (prev_nonnote_insn (insn))")
- (symbol_ref "code_for_indirect_jump_scratch")))
- (if_then_else (eq_attr "braf_branch_p" "yes")
- (const_int 6)
- (const_int 10))
+ (symbol_ref "INSN"))
+ (eq (symbol_ref "INSN_CODE (prev_nonnote_insn (insn))")
+ (symbol_ref "code_for_indirect_jump_scratch")))
+ (cond [(eq_attr "braf_branch_p" "yes")
+ (const_int 6)
+ (eq (symbol_ref "flag_pic") (const_int 0))
+ (const_int 10)
+ (ne (symbol_ref "TARGET_SH2") (const_int 0))
+ (const_int 10)] (const_int 18))
(eq_attr "braf_branch_p" "yes")
(const_int 10)
;; ??? using pc is not computed transitively.