aboutsummaryrefslogtreecommitdiff
path: root/gas/ChangeLog
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@imgtec.com>2016-07-26 17:50:55 +0100
committerMaciej W. Rozycki <macro@imgtec.com>2016-07-26 20:00:49 +0100
commit8484fb75874eb9ef35710ac6579433f062ddba18 (patch)
treebfeecae7f1efaa3b56eefccde04849ebbf22b919 /gas/ChangeLog
parent54806ffa85643c3a1ee721d5c3f5586d32f86ee1 (diff)
downloadgdb-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/ChangeLog29
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.