aboutsummaryrefslogtreecommitdiff
path: root/gas/doc
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2013-06-10 18:15:48 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2013-06-10 18:15:48 +0000
commit3bf0dbfb154a3c24d65536f355a0a0af4c959d17 (patch)
tree417a6fcfce7869bd8563f159188d10ea7c114eb2 /gas/doc
parent10bf68945eed880597eb96c2749adadadee1af8f (diff)
downloadgdb-3bf0dbfb154a3c24d65536f355a0a0af4c959d17.zip
gdb-3bf0dbfb154a3c24d65536f355a0a0af4c959d17.tar.gz
gdb-3bf0dbfb154a3c24d65536f355a0a0af4c959d17.tar.bz2
gas/
* config/tc-mips.c (append_insn): Don't do branch relaxation for MIPS-3D instructions either. (md_convert_frag): Update the COPx branch mask accordingly. * config/tc-mips.c (md_show_usage): Document --[no-]relax-branch option. * doc/as.texinfo (Overview): Add --relax-branch and --no-relax-branch. * doc/c-mips.texi (MIPS Opts): Document --relax-branch and --no-relax-branch. gas/testsuite/ * gas/mips/relax-bc1any.l: New test. * gas/mips/relax-bc1any.s: New test source. * gas/mips/mips.exp: Run the new test.
Diffstat (limited to 'gas/doc')
-rw-r--r--gas/doc/as.texinfo6
-rw-r--r--gas/doc/c-mips.texi21
2 files changed, 27 insertions, 0 deletions
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 9c55ef4..557d5e8 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -1349,6 +1349,12 @@ value into the two single width floating point registers that make up
the double width register. By default @samp{--construct-floats} is
selected, allowing construction of these floating point constants.
+@item --relax-branch
+@itemx --no-relax-branch
+The @samp{--relax-branch} option enables the relaxation of out-of-range
+branches. By default @samp{--no-relax-branch} is selected, causing any
+out-of-range branches to produce an error.
+
@cindex emulation
@item --emulation=@var{name}
This option causes @command{@value{AS}} to emulate @command{@value{AS}} configured
diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi
index b8953be..060febb 100644
--- a/gas/doc/c-mips.texi
+++ b/gas/doc/c-mips.texi
@@ -388,6 +388,27 @@ width register by the single width registers.
By default @code{--construct-floats} is selected, allowing construction
of these floating point constants.
+@item --relax-branch
+@itemx --no-relax-branch
+The @samp{--relax-branch} option enables the relaxation of out-of-range
+branches. Any branches whose target cannot be reached directly are
+converted to a small instruction sequence including an inverse-condition
+branch to the physically next instruction, and a jump to the original
+target is inserted between the two instructions. In PIC code the jump
+will involve further instructions for address calculation.
+
+The @code{BC1ANY2F}, @code{BC1ANY2T}, @code{BC1ANY4F}, @code{BC1ANY4T},
+@code{BPOSGE32} and @code{BPOSGE64} instructions are excluded from
+relaxation, because they have no complementing counterparts. They could
+be relaxed with the use of a longer sequence involving another branch,
+however this has not been implemented and if their target turns out of
+reach, they produce an error even if branch relaxation is enabled.
+
+Also no @sc{mips16} branches are ever relaxed.
+
+By default @samp{--no-relax-branch} is selected, causing any out-of-range
+branches to produce an error.
+
@item --trap
@itemx --no-break
@c FIXME! (1) reflect these options (next item too) in option summaries;