diff options
author | Maciej W. Rozycki <macro@imgtec.com> | 2016-07-26 17:50:55 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@imgtec.com> | 2016-07-26 20:00:49 +0100 |
commit | 8484fb75874eb9ef35710ac6579433f062ddba18 (patch) | |
tree | bfeecae7f1efaa3b56eefccde04849ebbf22b919 /gas/ChangeLog | |
parent | 54806ffa85643c3a1ee721d5c3f5586d32f86ee1 (diff) | |
download | gdb-8484fb75874eb9ef35710ac6579433f062ddba18.zip gdb-8484fb75874eb9ef35710ac6579433f062ddba18.tar.gz gdb-8484fb75874eb9ef35710ac6579433f062ddba18.tar.bz2 |
MIPS/GAS: Respect the `insn32' mode in branch relaxation
Complement:
commit 833794fc12d98139fc33f6b0b85feb03471007b7
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date: Tue Jun 25 18:02:34 2013 +0000
<https://sourceware.org/ml/binutils/2013-06/msg00104.html>, ("microMIPS
insn32 mode support"), and fix an issue with microMIPS branch relaxation
producing 16-bit instructions in the `insn32' mode. Use equivalent
32-bit instruction sequences.
gas/
* config/tc-mips.c (RELAX_MICROMIPS_ENCODE): Add `insn32' flag.
(RELAX_MICROMIPS_INSN32): New macro.
(RELAX_MICROMIPS_UNCOND, RELAX_MICROMIPS_COMPACT)
(RELAX_MICROMIPS_LINK, RELAX_MICROMIPS_RELAX32)
(RELAX_MICROMIPS_TOOFAR16, RELAX_MICROMIPS_MARK_TOOFAR16)
(RELAX_MICROMIPS_CLEAR_TOOFAR16, RELAX_MICROMIPS_TOOFAR32)
(RELAX_MICROMIPS_MARK_TOOFAR32, RELAX_MICROMIPS_CLEAR_TOOFAR32):
Shift bits.
(append_insn): Record `mips_opts.insn32' with relaxed microMIPS
branches.
(relaxed_micromips_32bit_branch_length): Handle the `insn32'
mode.
(md_convert_frag): Likewise.
* testsuite/gas/mips/micromips-branch-relax.s: Add `insn32'
conditionals.
* testsuite/gas/mips/micromips-branch-relax.l: Update line
numbers accordingly.
* testsuite/gas/mips/micromips-branch-relax-pic.l: Likewise.
* testsuite/gas/mips/micromips-branch-relax-insn32.d: New test.
* testsuite/gas/mips/micromips-branch-relax-insn32-pic.d: New
test.
* testsuite/gas/mips/micromips-branch-relax-insn32.l: New
stderr output.
* testsuite/gas/mips/micromips-branch-relax-insn32-pic.l: New
stderr output.
* testsuite/gas/mips/mips.exp: Run the new tests.
Diffstat (limited to 'gas/ChangeLog')
-rw-r--r-- | gas/ChangeLog | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 7fc57e8..617fccd 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,32 @@ +2016-07-26 Maciej W. Rozycki <macro@imgtec.com> + + * config/tc-mips.c (RELAX_MICROMIPS_ENCODE): Add `insn32' flag. + (RELAX_MICROMIPS_INSN32): New macro. + (RELAX_MICROMIPS_UNCOND, RELAX_MICROMIPS_COMPACT) + (RELAX_MICROMIPS_LINK, RELAX_MICROMIPS_RELAX32) + (RELAX_MICROMIPS_TOOFAR16, RELAX_MICROMIPS_MARK_TOOFAR16) + (RELAX_MICROMIPS_CLEAR_TOOFAR16, RELAX_MICROMIPS_TOOFAR32) + (RELAX_MICROMIPS_MARK_TOOFAR32, RELAX_MICROMIPS_CLEAR_TOOFAR32): + Shift bits. + (append_insn): Record `mips_opts.insn32' with relaxed microMIPS + branches. + (relaxed_micromips_32bit_branch_length): Handle the `insn32' + mode. + (md_convert_frag): Likewise. + * testsuite/gas/mips/micromips-branch-relax.s: Add `insn32' + conditionals. + * testsuite/gas/mips/micromips-branch-relax.l: Update line + numbers accordingly. + * testsuite/gas/mips/micromips-branch-relax-pic.l: Likewise. + * testsuite/gas/mips/micromips-branch-relax-insn32.d: New test. + * testsuite/gas/mips/micromips-branch-relax-insn32-pic.d: New + test. + * testsuite/gas/mips/micromips-branch-relax-insn32.l: New + stderr output. + * testsuite/gas/mips/micromips-branch-relax-insn32-pic.l: New + stderr output. + * testsuite/gas/mips/mips.exp: Run the new tests. + 2016-07-21 H.J. Lu <hongjiu.lu@intel.com> * configure: Regenerated. |