diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2013-06-10 18:15:47 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2013-06-10 18:15:47 +0000 |
commit | 162d3ba115d8053b48ae7b3b8a92e7d195863e14 (patch) | |
tree | bf12cee7c6bff49049b2fafc30e0854a5ff1c8e3 /gas/doc/c-mips.texi | |
parent | f871120a30a8e06787421e2acb3494e127658898 (diff) | |
download | binutils-redhat-162d3ba115d8053b48ae7b3b8a92e7d195863e14.tar.gz |
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/c-mips.texi')
-rw-r--r-- | gas/doc/c-mips.texi | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi index b8953be94b..060febb684 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; |