summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/mips/mips.exp
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/testsuite/gas/mips/mips.exp
parent54806ffa85643c3a1ee721d5c3f5586d32f86ee1 (diff)
downloadbinutils-gdb-8484fb75874eb9ef35710ac6579433f062ddba18.tar.gz
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/testsuite/gas/mips/mips.exp')
-rw-r--r--gas/testsuite/gas/mips/mips.exp2
1 files changed, 2 insertions, 0 deletions
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 9e896f52bf7..c4345acb872 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -1354,6 +1354,8 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "micromips-size-1"
run_dump_test "micromips-branch-relax"
run_dump_test "micromips-branch-relax-pic"
+ run_dump_test "micromips-branch-relax-insn32"
+ run_dump_test "micromips-branch-relax-insn32-pic"
run_dump_test "micromips-branch-delay"
run_dump_test "micromips-warn-branch-delay"
run_dump_test "micromips-warn-branch-delay-1"