diff options
author | J"orn Rennecke <joern.rennecke@superh.com> | 2004-09-01 13:43:40 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2004-09-01 13:43:40 +0000 |
commit | c0311627d1d0be05baf31e0022936691acd6d094 (patch) | |
tree | a00c8660f11c70052e25053f44b4e46d0bdff2b5 /gcc | |
parent | d98a72fd4f5ea4ea6ea45fd5af277eaeaa181678 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 15 |
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. |