diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2013-06-10 18:15:48 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2013-06-10 18:15:48 +0000 |
commit | 3bf0dbfb154a3c24d65536f355a0a0af4c959d17 (patch) | |
tree | 417a6fcfce7869bd8563f159188d10ea7c114eb2 /gas/doc | |
parent | 10bf68945eed880597eb96c2749adadadee1af8f (diff) | |
download | gdb-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.texinfo | 6 | ||||
-rw-r--r-- | gas/doc/c-mips.texi | 21 |
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; |