aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAndrew Bennett <andrew.bennett@imgtec.com>2014-09-10 11:32:01 +0100
committerAndrew Bennett <andrew.bennett@imgtec.com>2014-09-15 12:15:55 +0100
commit7361da2c952eb96d1869e49e35e8bc95ab42074a (patch)
treec427e271b015d6a2c690c7536c513369085588f9 /gas
parentea79f94a7ab96c6114b80bf78830f877325b10ff (diff)
downloadgdb-7361da2c952eb96d1869e49e35e8bc95ab42074a.zip
gdb-7361da2c952eb96d1869e49e35e8bc95ab42074a.tar.gz
gdb-7361da2c952eb96d1869e49e35e8bc95ab42074a.tar.bz2
Add support for MIPS R6.
bfd/ * aoutx.h (NAME (aout, machine_type)): Add mips32r6 and mips64r6. * archures.c (bfd_architecture): Likewise. * bfd-in2.h (bfd_architecture): Likewise. (bfd_reloc_code_real): Add relocs BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3 and BFD_RELOC_MIPS_19_PCREL_S2. * cpu-mips.c (arch_info_struct): Add mips32r6 and mips64r6. * elf32-mips.c: Define relocs R_MIPS_PC21_S2, R_MIPS_PC26_S2 R_MIPS_PC18_S3, R_MIPS_PC19_S2, R_MIPS_PCHI16 and R_MIPS_PCLO16. (mips_reloc_map): Add entries for BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3, BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and BFD_RELOC_LO16_PCREL. * elf64-mips.c: Define REL, and RELA relocations R_MIPS_PC21_S2, R_MIPS_PC26_S2, R_MIPS_PC18_S3, R_MIPS_PC19_S2, R_MIPS_PCHI16 and R_MIPS_PCLO16. (mips_reloc_map): Add entries for BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3, BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and BFD_RELOC_LO16_PCREL. * elfn32-mips.c: Likewise. * elfxx-mips.c (MIPSR6_P): New define. (mipsr6_exec_plt_entry): New array. (hi16_reloc_p): Add support for R_MIPS_PCHI16. (lo16_reloc_p): Add support for R_MIPS_PCLO16. (aligned_pcrel_reloc_p): New function. (mips_elf_relocation_needs_la25_stub): Add support for relocs: R_MIPS_PC21_S2 and R_MIPS_PC26_S2. (mips_elf_calculate_relocation): Add support for relocs: R_MIPS_PC21_S2, R_MIPS_PC26_S2, R_MIPS_PC18_S3, R_MIPS_PC19_S2, R_MIPS_PCHI16 and R_MIPS_PCLO16. (_bfd_elf_mips_mach): Add support for mips32r6 and mips64r6. (mips_elf_add_lo16_rel_addend): Add support for R_MIPS_PCHI16. (_bfd_mips_elf_check_relocs): Add support for relocs: R_MIPS_PC21_S2 and R_MIPS_PC26_S2. (_bfd_mips_elf_relocate_section): Add a check for unaligned pc relative relocs. (_bfd_mips_elf_finish_dynamic_symbol): Add support for MIPS r6 plt entry. (mips_set_isa_flags): Add support for mips32r6 and mips64r6. (_bfd_mips_elf_print_private_bfd_data): Likewise. (mips_32bit_flags_p): Add support for mips32r6. * libbfd.h (bfd_reloc_code_real_names): Add entries for BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3 and BFD_RELOC_MIPS_19_PCREL_S2. * reloc.c: Document relocs BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3 and BFD_RELOC_MIPS_19_PCREL_S2. binutils/ * readelf.c (get_machine_flags): Add support for mips32r6 and mips64r6. elfcpp/ * mips.h (E_MIPS_ARCH_32R6, E_MIPS_ARCH_64R6): New enum constants. gas/ * config/tc-mips.c (mips_nan2008): New static global. (mips_flag_nan2008): Removed. (LL_SC_FMT): New define. (COP12_FMT): Updated. (ISA_IS_R6): New define. (ISA_HAS_64BIT_REGS): Add mips64r6. (ISA_HAS_DROR): Likewise. (ISA_HAS_64BIT_FPRS): Add mips32r6 and mips64r6. (ISA_HAS_ROR): Likewise. (ISA_HAS_ODD_SINGLE_FPR): Likewise. (ISA_HAS_MXHC1): Likewise. (hilo_interlocks): Likewise. (md_longopts): Likewise. (ISA_HAS_LEGACY_NAN): New define. (options): Add OPTION_MIPS32R6 and OPTION_MIPS64R6. (mips_ase): Add field rem_rev. (mips_ases): Updated to add which ISA an ASE was removed in. (mips_isa_rev): Add support for mips32r6 and mips64r6. (mips_check_isa_supports_ase): Add support to check if an ASE has been removed in the specified MIPS ISA revision. (validate_mips_insn): Skip '-' character. (macro_build): Likewise. (mips_check_options): Prevent R6 working with fp32, mips16, micromips, or branch relaxation. (file_mips_check_options): Set R6 floating point registers to 64 bit. Also deal with the nan2008 option. (limited_pcrel_reloc_p): Add relocs: BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3, BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and BFD_RELOC_LO16_PCREL. (operand_reg_mask): Add support for OP_SAME_RS_RT, OP_CHECK_PREV and OP_NON_ZERO_REG. (match_check_prev_operand): New static function. (match_same_rs_rt_operand): New static function. (match_non_zero_reg_operand): New static function. (match_operand): Added entries for: OP_SAME_RS_RT, OP_CHECK_PREV and OP_NON_ZERO_REG. (insns_between): Added case to deal with forbidden slots. (append_insn): Added support for relocs: BFD_RELOC_MIPS_21_PCREL_S2 and BFD_RELOC_MIPS_26_PCREL_S2. (match_insn): Add support for operands -A, -B, +' and +". Also skip '-' character. (mips_percent_op): Add entries for %pcrel_hi and %pcrel_lo. (md_parse_option): Add support for mips32r6 and mips64r6. Also update the nan option handling. (md_pcrel_from): Add cases for relocs: BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2. (mips_force_relocation): Prevent forced relaxation for MIPS r6. (md_apply_fix): Add support for relocs: BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3, BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and BFD_RELOC_LO16_PCREL. (s_mipsset): Add support for mips32r6 and mips64r6. (s_nan): Update to support the new nan2008 framework. (tc_gen_reloc): Add relocs: BFD_RELOC_MIPS_21_PCREL_S2, BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3, BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and BFD_RELOC_LO16_PCREL. (mips_elf_final_processing): Updated to use the mips_nan2008. (mips_cpu_info_table): Add entries for mips32r6 and mips64r6. (macro): Enable ldc2, sdc2, ll, lld, swc2, sc, scd, cache, pref macros for R6. (mips_fix_adjustable): Make PC relative R6 relocations relative to the symbol and not the section. * configure.ac: Add support for mips32r6 and mips64r6. * configure: Regenerate. * doc/c-mips.texi: Document the -mips32r6 and -mips64r6 command line options. * doc/as.texinfo: Likewise. gas/testsuite/ * gas/mips/24k-triple-stores-1.s: If testing for r6 prevent non-supported instructions from being tested. * gas/mips/24k-triple-stores-2.s: Likewise. * gas/mips/24k-triple-stores-3.s: Likewise. * gas/mips/24k-triple-stores-6.s: Likewise. * gas/mips/beq.s: Likewise. * gas/mips/eva.s: Likewise. * gas/mips/ld-zero-3.s: Likewise. * gas/mips/mips32-cp2.s: Likewise. * gas/mips/mips32.s: Likewise. * gas/mips/mips4.s: Likewise. * gas/mips/add.s: Don't test the add instructions if r6, and add padding. * gas/mips/add.d: Check for a triple dot not a nop at the end of the disassembly output. * gas/mips/micromips@add.d: Likewise. * gas/mips/mipsr6@24k-branch-delay-1.d: New file. * gas/mips/mipsr6@24k-triple-stores-1.d: New file. * gas/mips/mipsr6@24k-triple-stores-2-llsc.d: New file. * gas/mips/mipsr6@24k-triple-stores-2.d: New file. * gas/mips/mipsr6@24k-triple-stores-3.d: New file. * gas/mips/mipsr6@24k-triple-stores-6.d: New file. * gas/mips/mipsr6@add.d: New file. * gas/mips/mipsr6@attr-gnu-4-1-msingle-float.l: New file. * gas/mips/mipsr6@attr-gnu-4-1-msingle-float.s: New file. * gas/mips/mipsr6@attr-gnu-4-1-msoft-float.l: New file. * gas/mips/mipsr6@attr-gnu-4-1-msoft-float.s: New file. * gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.l: New file. * gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.s: New file. * gas/mips/mipsr6@beq.d: New file. * gas/mips/mipsr6@bge.d: New file. * gas/mips/mipsr6@bgeu.d: New file. * gas/mips/mipsr6@blt.d: New file. * gas/mips/mipsr6@bltu.d: New file. * gas/mips/mipsr6@branch-misc-1.d: New file. * gas/mips/mipsr6@branch-misc-2-64.d: New file. * gas/mips/mipsr6@branch-misc-2pic-64.d: New file. * gas/mips/mipsr6@branch-misc-4-64.d: New file. * gas/mips/mipsr6@cache.d: New file. * gas/mips/mipsr6@eva.d: New file. * gas/mips/mipsr6@jal-svr4pic-noreorder.d: New file. * gas/mips/mipsr6@jal-svr4pic.d: New file. * gas/mips/mipsr6@ld-zero-2.d: New file. * gas/mips/mipsr6@ld-zero-3.d: New file. * gas/mips/mipsr6@loc-swap-dis.d: New file. * gas/mips/mipsr6@mips32-cp2.d: New file. * gas/mips/mipsr6@mips32-imm.d: New file. * gas/mips/mipsr6@mips32.d: New file. * gas/mips/mipsr6@mips32r2.d: New file. * gas/mips/mipsr6@mips4-fp.d: New file. * gas/mips/mipsr6@mips4-fp.l: New file. * gas/mips/mipsr6@mips4-fp.s: New file. * gas/mips/mipsr6@mips4.d: New file. * gas/mips/mipsr6@mips5-fp.d: New file. * gas/mips/mipsr6@mips5-fp.l: New file. * gas/mips/mipsr6@mips5-fp.s: New file. * gas/mips/mipsr6@mips64.d: New file. * gas/mips/mipsr6@msa-branch.d: New file. * gas/mips/mipsr6@msa.d: New file. * gas/mips/mipsr6@pref.d: New file. * gas/mips/mipsr6@relax-swap3.d: New file. * gas/mips/r6-64-n32.d: New file. * gas/mips/r6-64-n64.d: New file. * gas/mips/r6-64-removed.l: New file. * gas/mips/r6-64-removed.s: New file. * gas/mips/r6-64.s: New file. * gas/mips/r6-attr-none-double.d: New file. * gas/mips/r6-n32.d: New file. * gas/mips/r6-n64.d: New file. * gas/mips/r6-removed.l: New file. * gas/mips/r6-removed.s: New file. * gas/mips/r6.d: New file. * gas/mips/r6.s: New file. * gas/mips/mipsr6@mips32-dsp.d: New file. * gas/mips/mipsr6@mips32-dspr2.d: New file. * gas/mips/mipsr6@mips32r2-ill.l: New file. * gas/mips/mipsr6@mips32r2-ill.s: New file. * gas/mips/cache.s: Add r6 instruction varients. * gas/mips/mips.exp: Add support for the mips32r6 and mips64r6 architectures. Also prevent non r6 supported tests from running. Finally, add in support for running the new r6 tests. (run_dump_test_arch): Add support for mipsr6 tests. (run_list_test_arch): Add support for using files of the form arch@testname.l . include/elf/ * mips.h: Add relocs: R_MIPS_PC21_S2, R_MIPS_PC26_S2, R_MIPS_PC18_S3, R_MIPS_PC19_S2, R_MIPS_PCHI16 and R_MIPS_PCLO16. (E_MIPS_ARCH_32R6): New define. (E_MIPS_ARCH_64R6): New define. include/opcode/ * mips.h (mips_operand_type): Add new entries: OP_SAME_RS_RT, OP_CHECK_PREV and OP_NON_ZERO_REG. Add descriptions for the MIPS R6 instruction arguments: -a, -b, -d, -s, -t, -u, -v, -w, -x, -y, -A, -B, +I, +O, +R, +:, +\, +", +; (mips_check_prev_operand): New struct. (INSN2_FORBIDDEN_SLOT): New define. (INSN_ISA32R6): New define. (INSN_ISA64R6): New define. (INSN_UPTO32R6): New define. (INSN_UPTO64R6): New define. (mips_isa_table): Add INSN_UPTO32R6 and INSN_UPTO64R6. (ISA_MIPS32R6): New define. (ISA_MIPS64R6): New define. (CPU_MIPS32R6): New define. (CPU_MIPS64R6): New define. (cpu_is_member): Add cases for CPU_MIPS32R6, and CPU_MIPS64R6. ld/ * ldmain.c (get_emulation): Add support for -mips32r6 and -mips64r6. opcodes/ * mips-dis.c (mips_arch_choices): Add entries for mips32r6 and mips64r6. (parse_mips_dis_option): Allow MSA and virtualization support for mips64r6. (mips_print_arg_state): Add fields dest_regno and seen_dest. (mips_seen_register): New function. (print_insn_arg): Refactored code to use mips_seen_register function. Add support for OP_SAME_RS_RT, OP_CHECK_PREV and OP_NON_ZERO_REG. Changed OP_REPEAT_DEST_REG case to print out the register rather than aborting. (print_insn_args): Add length argument. Add code to correctly calculate the instruction address for pc relative instructions. (validate_insn_args): New static function. (print_insn_mips): Prevent jalx disassembling for r6. Use validate_insn_args. (print_insn_micromips): Use validate_insn_args. all the arguments are valid. * mips-formats.h (PREV_CHECK): New define. * mips-opc.c (decode_mips_operand): Add support for -a, -b, -d, -s, -t, -u, -v, -w, -x, -y, -A, -B, +I, +O, +R, +:, +\, +", +; (RD_pc): New define. (FS): New define. (I37): New define. (I69): New define. (mips_builtin_opcodes): Add MIPS R6 instructions. Exclude recoded MIPS R6 instructions from MIPS R2 instructions.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog73
-rw-r--r--gas/config/tc-mips.c451
-rwxr-xr-xgas/configure9
-rw-r--r--gas/configure.ac11
-rw-r--r--gas/doc/as.texinfo15
-rw-r--r--gas/doc/c-mips.texi19
-rw-r--r--gas/testsuite/ChangeLog88
-rw-r--r--gas/testsuite/gas/mips/24k-triple-stores-1.s4
-rw-r--r--gas/testsuite/gas/mips/24k-triple-stores-2.s2
-rw-r--r--gas/testsuite/gas/mips/24k-triple-stores-3.s2
-rw-r--r--gas/testsuite/gas/mips/24k-triple-stores-6.s2
-rw-r--r--gas/testsuite/gas/mips/add.d2
-rw-r--r--gas/testsuite/gas/mips/add.s8
-rw-r--r--gas/testsuite/gas/mips/beq.s2
-rw-r--r--gas/testsuite/gas/mips/cache.s5
-rw-r--r--gas/testsuite/gas/mips/eva.s4
-rw-r--r--gas/testsuite/gas/mips/micromips@add.d3
-rw-r--r--gas/testsuite/gas/mips/mips.exp121
-rw-r--r--gas/testsuite/gas/mips/mips32-cp2.s4
-rw-r--r--gas/testsuite/gas/mips/mips32.s6
-rw-r--r--gas/testsuite/gas/mips/mips4.s2
-rw-r--r--gas/testsuite/gas/mips/mipsr6@24k-branch-delay-1.d23
-rw-r--r--gas/testsuite/gas/mips/mipsr6@24k-triple-stores-1.d68
-rw-r--r--gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2-llsc.d17
-rw-r--r--gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2.d24
-rw-r--r--gas/testsuite/gas/mips/mipsr6@24k-triple-stores-3.d57
-rw-r--r--gas/testsuite/gas/mips/mipsr6@24k-triple-stores-6.d20
-rw-r--r--gas/testsuite/gas/mips/mipsr6@add.d12
-rw-r--r--gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.l3
-rw-r--r--gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.s1
-rw-r--r--gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.l3
-rw-r--r--gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.s1
-rw-r--r--gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.l2
-rw-r--r--gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.s1
-rw-r--r--gas/testsuite/gas/mips/mipsr6@beq.d41
-rw-r--r--gas/testsuite/gas/mips/mipsr6@bge.d72
-rw-r--r--gas/testsuite/gas/mips/mipsr6@bgeu.d63
-rw-r--r--gas/testsuite/gas/mips/mipsr6@blt.d72
-rw-r--r--gas/testsuite/gas/mips/mipsr6@bltu.d63
-rw-r--r--gas/testsuite/gas/mips/mipsr6@branch-misc-1.d35
-rw-r--r--gas/testsuite/gas/mips/mipsr6@branch-misc-2-64.d62
-rw-r--r--gas/testsuite/gas/mips/mipsr6@branch-misc-2pic-64.d62
-rw-r--r--gas/testsuite/gas/mips/mipsr6@branch-misc-4-64.d35
-rw-r--r--gas/testsuite/gas/mips/mipsr6@cache.d13
-rw-r--r--gas/testsuite/gas/mips/mipsr6@eva.d952
-rw-r--r--gas/testsuite/gas/mips/mipsr6@jal-svr4pic-noreorder.d46
-rw-r--r--gas/testsuite/gas/mips/mipsr6@jal-svr4pic.d44
-rw-r--r--gas/testsuite/gas/mips/mipsr6@ld-zero-2.d13
-rw-r--r--gas/testsuite/gas/mips/mipsr6@ld-zero-3.d19
-rw-r--r--gas/testsuite/gas/mips/mipsr6@loc-swap-dis.d34
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32-cp2.d20
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32-dsp.d147
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32-dspr2.d73
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32-imm.d13
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32.d32
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32r2-ill.l13
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32r2-ill.s58
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips32r2.d45
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips4-fp.d13
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips4-fp.l5
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips4-fp.s11
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips4.d11
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips5-fp.d12
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips5-fp.l3
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips5-fp.s8
-rw-r--r--gas/testsuite/gas/mips/mipsr6@mips64.d13
-rw-r--r--gas/testsuite/gas/mips/mipsr6@msa-branch.d309
-rw-r--r--gas/testsuite/gas/mips/mipsr6@msa.d788
-rw-r--r--gas/testsuite/gas/mips/mipsr6@pref.d13
-rw-r--r--gas/testsuite/gas/mips/mipsr6@relax-swap3.d22
-rw-r--r--gas/testsuite/gas/mips/r6-64-n32.d61
-rw-r--r--gas/testsuite/gas/mips/r6-64-n64.d73
-rw-r--r--gas/testsuite/gas/mips/r6-64-removed.l10
-rw-r--r--gas/testsuite/gas/mips/r6-64-removed.s10
-rw-r--r--gas/testsuite/gas/mips/r6-64.s59
-rw-r--r--gas/testsuite/gas/mips/r6-attr-none-double.d22
-rw-r--r--gas/testsuite/gas/mips/r6-n32.d493
-rw-r--r--gas/testsuite/gas/mips/r6-n64.d749
-rw-r--r--gas/testsuite/gas/mips/r6-removed.l196
-rw-r--r--gas/testsuite/gas/mips/r6-removed.s198
-rw-r--r--gas/testsuite/gas/mips/r6.d492
-rw-r--r--gas/testsuite/gas/mips/r6.s263
82 files changed, 6826 insertions, 100 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 84c90c8..3f499cc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,76 @@
+2014-09-15 Andrew Bennett <andrew.bennett@imgtec.com>
+ Matthew Fortune <matthew.fortune@imgtec.com>
+
+ * config/tc-mips.c (mips_nan2008): New static global.
+ (mips_flag_nan2008): Removed.
+ (LL_SC_FMT): New define.
+ (COP12_FMT): Updated.
+ (ISA_IS_R6): New define.
+ (ISA_HAS_64BIT_REGS): Add mips64r6.
+ (ISA_HAS_DROR): Likewise.
+ (ISA_HAS_64BIT_FPRS): Add mips32r6 and mips64r6.
+ (ISA_HAS_ROR): Likewise.
+ (ISA_HAS_ODD_SINGLE_FPR): Likewise.
+ (ISA_HAS_MXHC1): Likewise.
+ (hilo_interlocks): Likewise.
+ (md_longopts): Likewise.
+ (ISA_HAS_LEGACY_NAN): New define.
+ (options): Add OPTION_MIPS32R6 and OPTION_MIPS64R6.
+ (mips_ase): Add field rem_rev.
+ (mips_ases): Updated to add which ISA an ASE was removed in.
+ (mips_isa_rev): Add support for mips32r6 and mips64r6.
+ (mips_check_isa_supports_ase): Add support to check if an ASE
+ has been removed in the specified MIPS ISA revision.
+ (validate_mips_insn): Skip '-' character.
+ (macro_build): Likewise.
+ (mips_check_options): Prevent R6 working with fp32, mips16,
+ micromips, or branch relaxation.
+ (file_mips_check_options): Set R6 floating point registers to
+ 64 bit. Also deal with the nan2008 option.
+ (limited_pcrel_reloc_p): Add relocs: BFD_RELOC_MIPS_21_PCREL_S2,
+ BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3,
+ BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and
+ BFD_RELOC_LO16_PCREL.
+ (operand_reg_mask): Add support for OP_SAME_RS_RT, OP_CHECK_PREV
+ and OP_NON_ZERO_REG.
+ (match_check_prev_operand): New static function.
+ (match_same_rs_rt_operand): New static function.
+ (match_non_zero_reg_operand): New static function.
+ (match_operand): Added entries for: OP_SAME_RS_RT, OP_CHECK_PREV
+ and OP_NON_ZERO_REG.
+ (insns_between): Added case to deal with forbidden slots.
+ (append_insn): Added support for relocs: BFD_RELOC_MIPS_21_PCREL_S2
+ and BFD_RELOC_MIPS_26_PCREL_S2.
+ (match_insn): Add support for operands -A, -B, +' and +". Also
+ skip '-' character.
+ (mips_percent_op): Add entries for %pcrel_hi and %pcrel_lo.
+ (md_parse_option): Add support for mips32r6 and mips64r6. Also
+ update the nan option handling.
+ (md_pcrel_from): Add cases for relocs: BFD_RELOC_MIPS_21_PCREL_S2,
+ BFD_RELOC_MIPS_26_PCREL_S2.
+ (mips_force_relocation): Prevent forced relaxation for MIPS r6.
+ (md_apply_fix): Add support for relocs: BFD_RELOC_MIPS_21_PCREL_S2,
+ BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3,
+ BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and
+ BFD_RELOC_LO16_PCREL.
+ (s_mipsset): Add support for mips32r6 and mips64r6.
+ (s_nan): Update to support the new nan2008 framework.
+ (tc_gen_reloc): Add relocs: BFD_RELOC_MIPS_21_PCREL_S2,
+ BFD_RELOC_MIPS_26_PCREL_S2, BFD_RELOC_MIPS_18_PCREL_S3,
+ BFD_RELOC_MIPS_19_PCREL_S2, BFD_RELOC_HI16_S_PCREL and
+ BFD_RELOC_LO16_PCREL.
+ (mips_elf_final_processing): Updated to use the mips_nan2008.
+ (mips_cpu_info_table): Add entries for mips32r6 and mips64r6.
+ (macro): Enable ldc2, sdc2, ll, lld, swc2, sc, scd, cache, pref
+ macros for R6.
+ (mips_fix_adjustable): Make PC relative R6 relocations relative
+ to the symbol and not the section.
+ * configure.ac: Add support for mips32r6 and mips64r6.
+ * configure: Regenerate.
+ * doc/c-mips.texi: Document the -mips32r6 and -mips64r6 command line
+ options.
+ * doc/as.texinfo: Likewise.
+
2014-09-15 Matthew Fortune <matthew.fortune@imgtec.com>
* tc-mips.c (check_fpabi): Move softfloat and singlefloat
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 2dabdf4..8d4a80b 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -267,8 +267,11 @@ struct mips_set_options
/* Specifies whether module level options have been checked yet. */
static bfd_boolean file_mips_opts_checked = FALSE;
-/* True if -mnan=2008, false if -mnan=legacy. */
-static bfd_boolean mips_flag_nan2008 = FALSE;
+/* Do we support nan2008? 0 if we don't, 1 if we do, and -1 if the
+ value has not been initialized. Changed by `.nan legacy' and
+ `.nan 2008', and the -mnan=legacy and -mnan=2008 command line
+ options, and the default CPU. */
+static int mips_nan2008 = -1;
/* This is the struct we use to hold the module level set of options.
Note that we must set the isa field to ISA_UNKNOWN and the ASE, gp and
@@ -350,6 +353,10 @@ static int mips_32bitmode = 0;
|| (ABI) == N64_ABI \
|| (ABI) == O64_ABI)
+#define ISA_IS_R6(ISA) \
+ ((ISA) == ISA_MIPS32R6 \
+ || (ISA) == ISA_MIPS64R6)
+
/* Return true if ISA supports 64 bit wide gp registers. */
#define ISA_HAS_64BIT_REGS(ISA) \
((ISA) == ISA_MIPS3 \
@@ -358,7 +365,8 @@ static int mips_32bitmode = 0;
|| (ISA) == ISA_MIPS64 \
|| (ISA) == ISA_MIPS64R2 \
|| (ISA) == ISA_MIPS64R3 \
- || (ISA) == ISA_MIPS64R5)
+ || (ISA) == ISA_MIPS64R5 \
+ || (ISA) == ISA_MIPS64R6)
/* Return true if ISA supports 64 bit wide float registers. */
#define ISA_HAS_64BIT_FPRS(ISA) \
@@ -368,10 +376,12 @@ static int mips_32bitmode = 0;
|| (ISA) == ISA_MIPS32R2 \
|| (ISA) == ISA_MIPS32R3 \
|| (ISA) == ISA_MIPS32R5 \
+ || (ISA) == ISA_MIPS32R6 \
|| (ISA) == ISA_MIPS64 \
|| (ISA) == ISA_MIPS64R2 \
|| (ISA) == ISA_MIPS64R3 \
- || (ISA) == ISA_MIPS64R5 )
+ || (ISA) == ISA_MIPS64R5 \
+ || (ISA) == ISA_MIPS64R6)
/* Return true if ISA supports 64-bit right rotate (dror et al.)
instructions. */
@@ -379,6 +389,7 @@ static int mips_32bitmode = 0;
((ISA) == ISA_MIPS64R2 \
|| (ISA) == ISA_MIPS64R3 \
|| (ISA) == ISA_MIPS64R5 \
+ || (ISA) == ISA_MIPS64R6 \
|| (mips_opts.micromips \
&& ISA_HAS_64BIT_REGS (ISA)) \
)
@@ -389,9 +400,11 @@ static int mips_32bitmode = 0;
((ISA) == ISA_MIPS32R2 \
|| (ISA) == ISA_MIPS32R3 \
|| (ISA) == ISA_MIPS32R5 \
+ || (ISA) == ISA_MIPS32R6 \
|| (ISA) == ISA_MIPS64R2 \
|| (ISA) == ISA_MIPS64R3 \
|| (ISA) == ISA_MIPS64R5 \
+ || (ISA) == ISA_MIPS64R6 \
|| (mips_opts.ase & ASE_SMARTMIPS) \
|| mips_opts.micromips \
)
@@ -402,10 +415,12 @@ static int mips_32bitmode = 0;
|| (ISA) == ISA_MIPS32R2 \
|| (ISA) == ISA_MIPS32R3 \
|| (ISA) == ISA_MIPS32R5 \
+ || (ISA) == ISA_MIPS32R6 \
|| (ISA) == ISA_MIPS64 \
|| (ISA) == ISA_MIPS64R2 \
|| (ISA) == ISA_MIPS64R3 \
|| (ISA) == ISA_MIPS64R5 \
+ || (ISA) == ISA_MIPS64R6 \
|| (CPU) == CPU_R5900) \
&& (CPU) != CPU_LOONGSON_3A)
@@ -415,6 +430,24 @@ static int mips_32bitmode = 0;
((ISA) == ISA_MIPS32R2 \
|| (ISA) == ISA_MIPS32R3 \
|| (ISA) == ISA_MIPS32R5 \
+ || (ISA) == ISA_MIPS32R6 \
+ || (ISA) == ISA_MIPS64R2 \
+ || (ISA) == ISA_MIPS64R3 \
+ || (ISA) == ISA_MIPS64R5 \
+ || (ISA) == ISA_MIPS64R6)
+
+/* Return true if ISA supports legacy NAN. */
+#define ISA_HAS_LEGACY_NAN(ISA) \
+ ((ISA) == ISA_MIPS1 \
+ || (ISA) == ISA_MIPS2 \
+ || (ISA) == ISA_MIPS3 \
+ || (ISA) == ISA_MIPS4 \
+ || (ISA) == ISA_MIPS5 \
+ || (ISA) == ISA_MIPS32 \
+ || (ISA) == ISA_MIPS32R2 \
+ || (ISA) == ISA_MIPS32R3 \
+ || (ISA) == ISA_MIPS32R5 \
+ || (ISA) == ISA_MIPS64 \
|| (ISA) == ISA_MIPS64R2 \
|| (ISA) == ISA_MIPS64R3 \
|| (ISA) == ISA_MIPS64R5)
@@ -503,10 +536,12 @@ static int mips_32bitmode = 0;
|| mips_opts.isa == ISA_MIPS32R2 \
|| mips_opts.isa == ISA_MIPS32R3 \
|| mips_opts.isa == ISA_MIPS32R5 \
+ || mips_opts.isa == ISA_MIPS32R6 \
|| mips_opts.isa == ISA_MIPS64 \
|| mips_opts.isa == ISA_MIPS64R2 \
|| mips_opts.isa == ISA_MIPS64R3 \
|| mips_opts.isa == ISA_MIPS64R5 \
+ || mips_opts.isa == ISA_MIPS64R6 \
|| mips_opts.arch == CPU_R4010 \
|| mips_opts.arch == CPU_R5900 \
|| mips_opts.arch == CPU_R10000 \
@@ -1351,9 +1386,11 @@ enum options
OPTION_MIPS32R2,
OPTION_MIPS32R3,
OPTION_MIPS32R5,
+ OPTION_MIPS32R6,
OPTION_MIPS64R2,
OPTION_MIPS64R3,
OPTION_MIPS64R5,
+ OPTION_MIPS64R6,
OPTION_MIPS16,
OPTION_NO_MIPS16,
OPTION_MIPS3D,
@@ -1463,9 +1500,11 @@ struct option md_longopts[] =
{"mips32r2", no_argument, NULL, OPTION_MIPS32R2},
{"mips32r3", no_argument, NULL, OPTION_MIPS32R3},
{"mips32r5", no_argument, NULL, OPTION_MIPS32R5},
+ {"mips32r6", no_argument, NULL, OPTION_MIPS32R6},
{"mips64r2", no_argument, NULL, OPTION_MIPS64R2},
{"mips64r3", no_argument, NULL, OPTION_MIPS64R3},
{"mips64r5", no_argument, NULL, OPTION_MIPS64R5},
+ {"mips64r6", no_argument, NULL, OPTION_MIPS64R6},
/* Options which specify Application Specific Extensions (ASEs). */
{"mips16", no_argument, NULL, OPTION_MIPS16},
@@ -1605,55 +1644,70 @@ struct mips_ase
int mips64_rev;
int micromips32_rev;
int micromips64_rev;
+
+ /* The architecture where the ASE was removed or -1 if the extension has not
+ been removed. */
+ int rem_rev;
};
/* A table of all supported ASEs. */
static const struct mips_ase mips_ases[] = {
{ "dsp", ASE_DSP, ASE_DSP64,
OPTION_DSP, OPTION_NO_DSP,
- 2, 2, 2, 2 },
+ 2, 2, 2, 2,
+ -1 },
{ "dspr2", ASE_DSP | ASE_DSPR2, 0,
OPTION_DSPR2, OPTION_NO_DSPR2,
- 2, 2, 2, 2 },
+ 2, 2, 2, 2,
+ -1 },
{ "eva", ASE_EVA, 0,
OPTION_EVA, OPTION_NO_EVA,
- 2, 2, 2, 2 },
+ 2, 2, 2, 2,
+ -1 },
{ "mcu", ASE_MCU, 0,
OPTION_MCU, OPTION_NO_MCU,
- 2, 2, 2, 2 },
+ 2, 2, 2, 2,
+ -1 },
/* Deprecated in MIPS64r5, but we don't implement that yet. */
{ "mdmx", ASE_MDMX, 0,
OPTION_MDMX, OPTION_NO_MDMX,
- -1, 1, -1, -1 },
+ -1, 1, -1, -1,
+ 6 },
/* Requires 64-bit FPRs, so the minimum MIPS32 revision is 2. */
{ "mips3d", ASE_MIPS3D, 0,
OPTION_MIPS3D, OPTION_NO_MIPS3D,
- 2, 1, -1, -1 },
+ 2, 1, -1, -1,
+ 6 },
{ "mt", ASE_MT, 0,
OPTION_MT, OPTION_NO_MT,
- 2, 2, -1, -1 },
+ 2, 2, -1, -1,
+ -1 },
{ "smartmips", ASE_SMARTMIPS, 0,
OPTION_SMARTMIPS, OPTION_NO_SMARTMIPS,
- 1, -1, -1, -1 },
+ 1, -1, -1, -1,
+ 6 },
{ "virt", ASE_VIRT, ASE_VIRT64,
OPTION_VIRT, OPTION_NO_VIRT,
- 2, 2, 2, 2 },
+ 2, 2, 2, 2,
+ -1 },
{ "msa", ASE_MSA, ASE_MSA64,
OPTION_MSA, OPTION_NO_MSA,
- 2, 2, 2, 2 },
+ 2, 2, 2, 2,
+ -1 },
{ "xpa", ASE_XPA, 0,
OPTION_XPA, OPTION_NO_XPA,
- 2, 2, -1, -1 }
+ 2, 2, -1, -1,
+ -1 },
};
/* The set of ASEs that require -mfp64. */
@@ -1915,6 +1969,9 @@ mips_isa_rev (void)
if (mips_opts.isa == ISA_MIPS32R5 || mips_opts.isa == ISA_MIPS64R5)
return 5;
+ if (mips_opts.isa == ISA_MIPS32R6 || mips_opts.isa == ISA_MIPS64R6)
+ return 6;
+
/* microMIPS implies revision 2 or above. */
if (mips_opts.micromips)
return 2;
@@ -1966,6 +2023,16 @@ mips_check_isa_supports_ase (const struct mips_ase *ase)
as_warn (_("the `%s' extension requires %s%d revision %d or greater"),
ase->name, base, size, min_rev);
}
+ else if ((ase->rem_rev > 0 && mips_isa_rev () >= ase->rem_rev)
+ && (warned_isa & ase->flags) != ase->flags)
+ {
+ warned_isa |= ase->flags;
+ base = mips_opts.micromips ? "microMIPS" : "MIPS";
+ size = ISA_HAS_64BIT_REGS (mips_opts.isa) ? 64 : 32;
+ as_warn (_("the `%s' extension was removed in %s%d revision %d"),
+ ase->name, base, size, ase->rem_rev);
+ }
+
if ((ase->flags & FP64_ASES)
&& mips_opts.fp != 64
&& (warned_fp32 & ase->flags) != ase->flags)
@@ -3294,7 +3361,7 @@ validate_mips_insn (const struct mips_opcode *opcode,
used_bits &= ~(mask & 0x700);
}
/* Skip prefix characters. */
- if (decode_operand && (*s == '+' || *s == 'm'))
+ if (decode_operand && (*s == '+' || *s == 'm' || *s == '-'))
++s;
opno += 1;
break;
@@ -3772,6 +3839,8 @@ mips_check_options (struct mips_set_options *opts, bfd_boolean abi_checks)
if (abi_checks
&& ABI_NEEDS_64BIT_REGS (mips_abi))
as_warn (_("`fp=32' used with a 64-bit ABI"));
+ if (ISA_IS_R6 (mips_opts.isa) && opts->single_float == 0)
+ as_bad (_("`fp=32' used with a MIPS R6 cpu"));
break;
default:
as_bad (_("Unknown size of floating point registers"));
@@ -3783,6 +3852,16 @@ mips_check_options (struct mips_set_options *opts, bfd_boolean abi_checks)
if (opts->micromips == 1 && opts->mips16 == 1)
as_bad (_("`mips16' cannot be used with `micromips'"));
+ else if (ISA_IS_R6 (mips_opts.isa)
+ && (opts->micromips == 1
+ || opts->mips16 == 1))
+ as_fatal (_("`%s' can not be used with `%s'"),
+ opts->micromips ? "micromips" : "mips16",
+ mips_cpu_info_from_isa (mips_opts.isa)->name);
+
+ if (ISA_IS_R6 (opts->isa) && mips_relax_branch)
+ as_fatal (_("branch relaxation is not supported in `%s'"),
+ mips_cpu_info_from_isa (opts->isa)->name);
}
/* Perform consistency checks on the module level options exactly once.
@@ -3831,6 +3910,9 @@ file_mips_check_options (void)
&& ISA_HAS_64BIT_FPRS (file_mips_opts.isa))
/* Handle ASEs that require 64-bit float registers, if possible. */
file_mips_opts.fp = 64;
+ else if (ISA_IS_R6 (mips_opts.isa))
+ /* R6 implies 64-bit float registers. */
+ file_mips_opts.fp = 64;
else
/* 32-bit float registers. */
file_mips_opts.fp = 32;
@@ -3868,6 +3950,12 @@ file_mips_check_options (void)
file_mips_opts.micromips = (CPU_HAS_MICROMIPS (file_mips_opts.arch))
? 1 : 0;
+ if (mips_nan2008 == -1)
+ mips_nan2008 = (ISA_HAS_LEGACY_NAN (file_mips_opts.isa)) ? 0 : 1;
+ else if (!ISA_HAS_LEGACY_NAN (file_mips_opts.isa) && mips_nan2008 == 0)
+ as_fatal (_("`%s' does not support legacy NaN"),
+ mips_cpu_info_from_arch (file_mips_opts.arch)->name);
+
/* Some ASEs require 64-bit FPRs, so -mfp32 should stop those ASEs from
being selected implicitly. */
if (file_mips_opts.fp != 64)
@@ -4047,9 +4135,15 @@ limited_pcrel_reloc_p (bfd_reloc_code_real_type reloc)
case BFD_RELOC_MICROMIPS_7_PCREL_S1:
case BFD_RELOC_MICROMIPS_10_PCREL_S1:
case BFD_RELOC_MICROMIPS_16_PCREL_S1:
+ case BFD_RELOC_MIPS_21_PCREL_S2:
+ case BFD_RELOC_MIPS_26_PCREL_S2:
+ case BFD_RELOC_MIPS_18_PCREL_S3:
+ case BFD_RELOC_MIPS_19_PCREL_S2:
return TRUE;
case BFD_RELOC_32_PCREL:
+ case BFD_RELOC_HI16_S_PCREL:
+ case BFD_RELOC_LO16_PCREL:
return HAVE_64BIT_ADDRESSES;
default:
@@ -4352,6 +4446,20 @@ operand_reg_mask (const struct mips_cl_insn *insn,
uval = insn_extract_operand (insn, operand);
return (1 << (uval & 31)) | (1 << (uval >> 5));
+ case OP_SAME_RS_RT:
+ if (!(type_mask & (1 << OP_REG_GP)))
+ return 0;
+ uval = insn_extract_operand (insn, operand);
+ gas_assert ((uval & 31) == (uval >> 5));
+ return 1 << (uval & 31);
+
+ case OP_CHECK_PREV:
+ case OP_NON_ZERO_REG:
+ if (!(type_mask & (1 << OP_REG_GP)))
+ return 0;
+ uval = insn_extract_operand (insn, operand);
+ return 1 << (uval & 31);
+
case OP_LWM_SWM_LIST:
abort ();
@@ -5144,6 +5252,58 @@ match_clo_clz_dest_operand (struct mips_arg_info *arg,
return TRUE;
}
+/* OP_CHECK_PREV matcher. */
+
+static bfd_boolean
+match_check_prev_operand (struct mips_arg_info *arg,
+ const struct mips_operand *operand_base)
+{
+ const struct mips_check_prev_operand *operand;
+ unsigned int regno;
+
+ operand = (const struct mips_check_prev_operand *) operand_base;
+
+ if (!match_reg (arg, OP_REG_GP, &regno))
+ return FALSE;
+
+ if (!operand->zero_ok && regno == 0)
+ return FALSE;
+
+ if ((operand->less_than_ok && regno < arg->last_regno)
+ || (operand->greater_than_ok && regno > arg->last_regno)
+ || (operand->equal_ok && regno == arg->last_regno))
+ {
+ arg->last_regno = regno;
+ insn_insert_operand (arg->insn, operand_base, regno);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/* OP_SAME_RS_RT matcher. */
+
+static bfd_boolean
+match_same_rs_rt_operand (struct mips_arg_info *arg,
+ const struct mips_operand *operand)
+{
+ unsigned int regno;
+
+ if (!match_reg (arg, OP_REG_GP, &regno))
+ return FALSE;
+
+ if (regno == 0)
+ {
+ set_insn_error (arg->argnum, _("the source register must not be $0"));
+ return FALSE;
+ }
+
+ arg->last_regno = regno;
+
+ insn_insert_operand (arg->insn, operand, regno | (regno << 5));
+ return TRUE;
+}
+
/* OP_LWM_SWM_LIST matcher. */
static bfd_boolean
@@ -5537,6 +5697,25 @@ match_pc_operand (struct mips_arg_info *arg)
return FALSE;
}
+/* OP_NON_ZERO_REG matcher. */
+
+static bfd_boolean
+match_non_zero_reg_operand (struct mips_arg_info *arg,
+ const struct mips_operand *operand)
+{
+ unsigned int regno;
+
+ if (!match_reg (arg, OP_REG_GP, &regno))
+ return FALSE;
+
+ if (regno == 0)
+ return FALSE;
+
+ arg->last_regno = regno;
+ insn_insert_operand (arg->insn, operand, regno);
+ return TRUE;
+}
+
/* OP_REPEAT_DEST_REG and OP_REPEAT_PREV_REG matcher. OTHER_REGNO is the
register that we need to match. */
@@ -5813,6 +5992,15 @@ match_operand (struct mips_arg_info *arg,
case OP_REG_INDEX:
return match_reg_index_operand (arg, operand);
+
+ case OP_SAME_RS_RT:
+ return match_same_rs_rt_operand (arg, operand);
+
+ case OP_CHECK_PREV:
+ return match_check_prev_operand (arg, operand);
+
+ case OP_NON_ZERO_REG:
+ return match_non_zero_reg_operand (arg, operand);
}
abort ();
}
@@ -6013,6 +6201,14 @@ insns_between (const struct mips_cl_insn *insn1,
return 1;
}
+ /* Forbidden slots can not contain Control Transfer Instructions (CTIs)
+ CTIs include all branches and jumps, nal, eret, eretnc, deret, wait
+ and pause. */
+ if ((insn1->insn_mo->pinfo2 & INSN2_FORBIDDEN_SLOT)
+ && ((pinfo2 & INSN_NO_DELAY_SLOT)
+ || (insn2 && delayed_branch_p (insn2))))
+ return 1;
+
return 0;
}
@@ -6870,6 +7066,40 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr,
}
break;
+ case BFD_RELOC_MIPS_21_PCREL_S2:
+ {
+ int shift;
+
+ shift = 2;
+ if ((address_expr->X_add_number & ((1 << shift) - 1)) != 0)
+ as_bad (_("branch to misaligned address (0x%lx)"),
+ (unsigned long) address_expr->X_add_number);
+ if ((address_expr->X_add_number + (1 << (shift + 20)))
+ & ~((1 << (shift + 21)) - 1))
+ as_bad (_("branch address range overflow (0x%lx)"),
+ (unsigned long) address_expr->X_add_number);
+ ip->insn_opcode |= ((address_expr->X_add_number >> shift)
+ & 0x1fffff);
+ }
+ break;
+
+ case BFD_RELOC_MIPS_26_PCREL_S2:
+ {
+ int shift;
+
+ shift = 2;
+ if ((address_expr->X_add_number & ((1 << shift) - 1)) != 0)
+ as_bad (_("branch to misaligned address (0x%lx)"),
+ (unsigned long) address_expr->X_add_number);
+ if ((address_expr->X_add_number + (1 << (shift + 25)))
+ & ~((1 << (shift + 26)) - 1))
+ as_bad (_("branch address range overflow (0x%lx)"),
+ (unsigned long) address_expr->X_add_number);
+ ip->insn_opcode |= ((address_expr->X_add_number >> shift)
+ & 0x3ffffff);
+ }
+ break;
+
default:
{
offsetT value;
@@ -7534,12 +7764,33 @@ match_insn (struct mips_cl_insn *insn, const struct mips_opcode *opcode,
arg.opnum += 1;
switch (*args)
{
+ case '-':
+ switch (args[1])
+ {
+ case 'A':
+ *offset_reloc = BFD_RELOC_MIPS_19_PCREL_S2;
+ break;
+
+ case 'B':
+ *offset_reloc = BFD_RELOC_MIPS_18_PCREL_S3;
+ break;
+ }
+ break;
+
case '+':
switch (args[1])
{
case 'i':
*offset_reloc = BFD_RELOC_MIPS_JMP;
break;
+
+ case '\'':
+ *offset_reloc = BFD_RELOC_MIPS_26_PCREL_S2;
+ break;
+
+ case '\"':
+ *offset_reloc = BFD_RELOC_MIPS_21_PCREL_S2;
+ break;
}
break;
@@ -7625,7 +7876,7 @@ match_insn (struct mips_cl_insn *insn, const struct mips_opcode *opcode,
abort ();
/* Skip prefixes. */
- if (*args == '+' || *args == 'm')
+ if (*args == '+' || *args == 'm' || *args == '-')
args++;
if (mips_optional_operand_p (operand)
@@ -8095,10 +8346,13 @@ static const char * const shft_fmt[2] = { "d,w,<", "t,r,<" };
static const char * const trap_fmt[2] = { "s,t,q", "s,t,|" };
#define BRK_FMT (brk_fmt[mips_opts.micromips][mips_opts.insn32])
-#define COP12_FMT (cop12_fmt[mips_opts.micromips])
+#define COP12_FMT (ISA_IS_R6 (mips_opts.isa) ? "E,+:(d)" \
+ : cop12_fmt[mips_opts.micromips])
#define JALR_FMT (jalr_fmt[mips_opts.micromips])
#define LUI_FMT (lui_fmt[mips_opts.micromips])
#define MEM12_FMT (mem12_fmt[mips_opts.micromips])
+#define LL_SC_FMT (ISA_IS_R6 (mips_opts.isa) ? "t,+j(b)" \
+ : mem12_fmt[mips_opts.micromips])
#define MFHL_FMT (mfhl_fmt[mips_opts.micromips][mips_opts.insn32])
#define SHFT_FMT (shft_fmt[mips_opts.micromips])
#define TRAP_FMT (trap_fmt[mips_opts.micromips])
@@ -8276,7 +8530,7 @@ macro_build (expressionS *ep, const char *name, const char *fmt, ...)
uval |= (uval << 5);
insn_insert_operand (&insn, operand, uval);
- if (*fmt == '+' || *fmt == 'm')
+ if (*fmt == '+' || *fmt == 'm' || *fmt == '-')
++fmt;
break;
}
@@ -11045,7 +11299,9 @@ macro (struct mips_cl_insn *ip, char *str)
case M_LWC2_AB:
s = "lwc2";
fmt = COP12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 11
+ : 16);
/* Itbl support may require additional care here. */
coproc = 1;
goto ld_st;
@@ -11075,7 +11331,9 @@ macro (struct mips_cl_insn *ip, char *str)
case M_LDC2_AB:
s = "ldc2";
fmt = COP12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 11
+ : 16);
/* Itbl support may require additional care here. */
coproc = 1;
goto ld_st;
@@ -11103,13 +11361,17 @@ macro (struct mips_cl_insn *ip, char *str)
goto ld_st;
case M_LL_AB:
s = "ll";
- fmt = MEM12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ fmt = LL_SC_FMT;
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 9
+ : 16);
goto ld;
case M_LLD_AB:
s = "lld";
- fmt = MEM12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ fmt = LL_SC_FMT;
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 9
+ : 16);
goto ld;
case M_LWU_AB:
s = "lwu";
@@ -11179,7 +11441,9 @@ macro (struct mips_cl_insn *ip, char *str)
case M_SWC2_AB:
s = "swc2";
fmt = COP12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 11
+ : 16);
/* Itbl support may require additional care here. */
coproc = 1;
goto ld_st;
@@ -11202,18 +11466,26 @@ macro (struct mips_cl_insn *ip, char *str)
goto ld_st;
case M_SC_AB:
s = "sc";
- fmt = MEM12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ fmt = LL_SC_FMT;
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 9
+ : 16);
goto ld_st;
case M_SCD_AB:
s = "scd";
- fmt = MEM12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ fmt = LL_SC_FMT;
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 9
+ : 16);
goto ld_st;
case M_CACHE_AB:
s = "cache";
- fmt = mips_opts.micromips ? "k,~(b)" : "k,o(b)";
- offbits = (mips_opts.micromips ? 12 : 16);
+ fmt = (mips_opts.micromips ? "k,~(b)"
+ : ISA_IS_R6 (mips_opts.isa) ? "k,+j(b)"
+ : "k,o(b)");
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 9
+ : 16);
goto ld_st;
case M_CACHEE_AB:
s = "cachee";
@@ -11222,8 +11494,12 @@ macro (struct mips_cl_insn *ip, char *str)
goto ld_st;
case M_PREF_AB:
s = "pref";
- fmt = !mips_opts.micromips ? "k,o(b)" : "k,~(b)";
- offbits = (mips_opts.micromips ? 12 : 16);
+ fmt = (mips_opts.micromips ? "k,~(b)"
+ : ISA_IS_R6 (mips_opts.isa) ? "k,+j(b)"
+ : "k,o(b)");
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 9
+ : 16);
goto ld_st;
case M_PREFE_AB:
s = "prefe";
@@ -11239,7 +11515,9 @@ macro (struct mips_cl_insn *ip, char *str)
case M_SDC2_AB:
s = "sdc2";
fmt = COP12_FMT;
- offbits = (mips_opts.micromips ? 12 : 16);
+ offbits = (mips_opts.micromips ? 12
+ : ISA_IS_R6 (mips_opts.isa) ? 11
+ : 16);
/* Itbl support may require additional care here. */
coproc = 1;
goto ld_st;
@@ -13566,7 +13844,9 @@ static const struct percent_op_match mips_percent_op[] =
{"%tprel_hi", BFD_RELOC_MIPS_TLS_TPREL_HI16},
{"%tprel_lo", BFD_RELOC_MIPS_TLS_TPREL_LO16},
{"%gottprel", BFD_RELOC_MIPS_TLS_GOTTPREL},
- {"%hi", BFD_RELOC_HI16_S}
+ {"%hi", BFD_RELOC_HI16_S},
+ {"%pcrel_hi", BFD_RELOC_HI16_S_PCREL},
+ {"%pcrel_lo", BFD_RELOC_LO16_PCREL}
};
static const struct percent_op_match mips16_percent_op[] =
@@ -13844,6 +14124,10 @@ md_parse_option (int c, char *arg)
file_mips_opts.isa = ISA_MIPS32R5;
break;
+ case OPTION_MIPS32R6:
+ file_mips_opts.isa = ISA_MIPS32R6;
+ break;
+
case OPTION_MIPS64R2:
file_mips_opts.isa = ISA_MIPS64R2;
break;
@@ -13856,6 +14140,10 @@ md_parse_option (int c, char *arg)
file_mips_opts.isa = ISA_MIPS64R5;
break;
+ case OPTION_MIPS64R6:
+ file_mips_opts.isa = ISA_MIPS64R6;
+ break;
+
case OPTION_MIPS64:
file_mips_opts.isa = ISA_MIPS64;
break;
@@ -14161,9 +14449,9 @@ md_parse_option (int c, char *arg)
case OPTION_NAN:
if (strcmp (arg, "2008") == 0)
- mips_flag_nan2008 = TRUE;
+ mips_nan2008 = 1;
else if (strcmp (arg, "legacy") == 0)
- mips_flag_nan2008 = FALSE;
+ mips_nan2008 = 0;
else
{
as_fatal (_("invalid NaN setting -mnan=%s"), arg);
@@ -14290,6 +14578,8 @@ md_pcrel_from (fixS *fixP)
case BFD_RELOC_MICROMIPS_16_PCREL_S1:
case BFD_RELOC_MICROMIPS_JMP:
case BFD_RELOC_16_PCREL_S2:
+ case BFD_RELOC_MIPS_21_PCREL_S2:
+ case BFD_RELOC_MIPS_26_PCREL_S2:
case BFD_RELOC_MIPS_JMP:
/* Return the address of the delay slot. */
return addr + 4;
@@ -14455,6 +14745,17 @@ mips_force_relocation (fixS *fixp)
|| fixp->fx_r_type == BFD_RELOC_MICROMIPS_16_PCREL_S1)
return 1;
+ /* We want all PC-relative relocations to be kept for R6 relaxation. */
+ if (ISA_IS_R6 (mips_opts.isa)
+ && (fixp->fx_r_type == BFD_RELOC_16_PCREL_S2
+ || fixp->fx_r_type == BFD_RELOC_MIPS_21_PCREL_S2
+ || fixp->fx_r_type == BFD_RELOC_MIPS_26_PCREL_S2
+ || fixp->fx_r_type == BFD_RELOC_MIPS_18_PCREL_S3
+ || fixp->fx_r_type == BFD_RELOC_MIPS_19_PCREL_S2
+ || fixp->fx_r_type == BFD_RELOC_HI16_S_PCREL
+ || fixp->fx_r_type == BFD_RELOC_LO16_PCREL))
+ return 1;
+
return 0;
}
@@ -14499,6 +14800,12 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
case BFD_RELOC_MICROMIPS_10_PCREL_S1:
case BFD_RELOC_MICROMIPS_16_PCREL_S1:
case BFD_RELOC_32_PCREL:
+ case BFD_RELOC_MIPS_21_PCREL_S2:
+ case BFD_RELOC_MIPS_26_PCREL_S2:
+ case BFD_RELOC_MIPS_18_PCREL_S3:
+ case BFD_RELOC_MIPS_19_PCREL_S2:
+ case BFD_RELOC_HI16_S_PCREL:
+ case BFD_RELOC_LO16_PCREL:
break;
case BFD_RELOC_32:
@@ -14691,6 +14998,38 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
md_number_to_chars (buf, *valP, fixP->fx_size);
break;
+ case BFD_RELOC_MIPS_21_PCREL_S2:
+ case BFD_RELOC_MIPS_26_PCREL_S2:
+ if ((*valP & 0x3) != 0)
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("branch to misaligned address (%lx)"), (long) *valP);
+
+ gas_assert (!fixP->fx_done);
+ break;
+
+ case BFD_RELOC_MIPS_18_PCREL_S3:
+ if ((*valP & 0x7) != 0)
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("PC-relative access to misaligned address (%lx)"),
+ (long) *valP);
+
+ gas_assert (!fixP->fx_done);
+ break;
+
+ case BFD_RELOC_MIPS_19_PCREL_S2:
+ if ((*valP & 0x3) != 0)
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("PC-relative access to misaligned address (%lx)"),
+ (long) *valP);
+
+ gas_assert (!fixP->fx_done);
+ break;
+
+ case BFD_RELOC_HI16_S_PCREL:
+ case BFD_RELOC_LO16_PCREL:
+ gas_assert (!fixP->fx_done);
+ break;
+
case BFD_RELOC_16_PCREL_S2:
if ((*valP & 0x3) != 0)
as_bad_where (fixP->fx_file, fixP->fx_line,
@@ -15369,6 +15708,10 @@ s_mipsset (int x ATTRIBUTE_UNUSED)
if (mips_opts.fp != 0)
mips_opts.fp = 32;
break;
+ case ISA_MIPS32R6:
+ mips_opts.gp = 32;
+ mips_opts.fp = 64;
+ break;
case ISA_MIPS3:
case ISA_MIPS4:
case ISA_MIPS5:
@@ -15376,6 +15719,7 @@ s_mipsset (int x ATTRIBUTE_UNUSED)
case ISA_MIPS64R2:
case ISA_MIPS64R3:
case ISA_MIPS64R5:
+ case ISA_MIPS64R6:
mips_opts.gp = 64;
if (mips_opts.fp != 0)
{
@@ -16018,10 +16362,16 @@ s_nan (int ignore ATTRIBUTE_UNUSED)
if (i == sizeof (str_2008) - 1
&& memcmp (input_line_pointer, str_2008, i) == 0)
- mips_flag_nan2008 = TRUE;
+ mips_nan2008 = 1;
else if (i == sizeof (str_legacy) - 1
&& memcmp (input_line_pointer, str_legacy, i) == 0)
- mips_flag_nan2008 = FALSE;
+ {
+ if (ISA_HAS_LEGACY_NAN (file_mips_opts.isa))
+ mips_nan2008 = 0;
+ else
+ as_bad (_("`%s' does not support legacy NaN"),
+ mips_cpu_info_from_isa (file_mips_opts.isa)->name);
+ }
else
as_bad (_("bad .nan directive"));
@@ -16718,8 +17068,11 @@ mips_fix_adjustable (fixS *fixp)
/* There is no place to store an in-place offset for JALR relocations.
Likewise an in-range offset of limited PC-relative relocations may
overflow the in-place relocatable field if recalculated against the
- start address of the symbol's containing section. */
- if (HAVE_IN_PLACE_ADDENDS
+ start address of the symbol's containing section.
+
+ Also, PC relative relocations for MIPS R6 need to be symbol rather than
+ section relative to allow linker relaxations to be performed later on. */
+ if ((HAVE_IN_PLACE_ADDENDS || ISA_IS_R6 (mips_opts.isa))
&& (limited_pcrel_reloc_p (fixp->fx_r_type)
|| jalr_reloc_p (fixp->fx_r_type)))
return 0;
@@ -16799,7 +17152,13 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
|| fixp->fx_r_type == BFD_RELOC_MICROMIPS_7_PCREL_S1
|| fixp->fx_r_type == BFD_RELOC_MICROMIPS_10_PCREL_S1
|| fixp->fx_r_type == BFD_RELOC_MICROMIPS_16_PCREL_S1
- || fixp->fx_r_type == BFD_RELOC_32_PCREL);
+ || fixp->fx_r_type == BFD_RELOC_32_PCREL
+ || fixp->fx_r_type == BFD_RELOC_MIPS_21_PCREL_S2
+ || fixp->fx_r_type == BFD_RELOC_MIPS_26_PCREL_S2
+ || fixp->fx_r_type == BFD_RELOC_MIPS_18_PCREL_S3
+ || fixp->fx_r_type == BFD_RELOC_MIPS_19_PCREL_S2
+ || fixp->fx_r_type == BFD_RELOC_HI16_S_PCREL
+ || fixp->fx_r_type == BFD_RELOC_LO16_PCREL);
/* At this point, fx_addnumber is "symbol offset - pcrel address".
Relocations want only the symbol offset. */
@@ -17724,7 +18083,7 @@ mips_elf_final_processing (void)
if (mips_32bitmode)
elf_elfheader (stdoutput)->e_flags |= EF_MIPS_32BITMODE;
- if (mips_flag_nan2008)
+ if (mips_nan2008 == 1)
elf_elfheader (stdoutput)->e_flags |= EF_MIPS_NAN2008;
/* 32 bit code with 64 bit FP registers. */
@@ -18170,10 +18529,12 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
{ "mips32r2", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R2, CPU_MIPS32R2 },
{ "mips32r3", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R3, CPU_MIPS32R3 },
{ "mips32r5", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R5, CPU_MIPS32R5 },
+ { "mips32r6", MIPS_CPU_IS_ISA, 0, ISA_MIPS32R6, CPU_MIPS32R6 },
{ "mips64", MIPS_CPU_IS_ISA, 0, ISA_MIPS64, CPU_MIPS64 },
{ "mips64r2", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R2, CPU_MIPS64R2 },
{ "mips64r3", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R3, CPU_MIPS64R3 },
{ "mips64r5", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R5, CPU_MIPS64R5 },
+ { "mips64r6", MIPS_CPU_IS_ISA, 0, ISA_MIPS64R6, CPU_MIPS64R6 },
/* MIPS I */
{ "r3000", 0, 0, ISA_MIPS1, CPU_R3000 },
@@ -18489,10 +18850,12 @@ MIPS options:\n\
-mips32r2 generate MIPS32 release 2 ISA instructions\n\
-mips32r3 generate MIPS32 release 3 ISA instructions\n\
-mips32r5 generate MIPS32 release 5 ISA instructions\n\
+-mips32r6 generate MIPS32 release 6 ISA instructions\n\
-mips64 generate MIPS64 ISA instructions\n\
-mips64r2 generate MIPS64 release 2 ISA instructions\n\
-mips64r3 generate MIPS64 release 3 ISA instructions\n\
-mips64r5 generate MIPS64 release 5 ISA instructions\n\
+-mips64r6 generate MIPS64 release 6 ISA instructions\n\
-march=CPU/-mtune=CPU generate code/schedule for CPU, where CPU is one of:\n"));
first = 1;
diff --git a/gas/configure b/gas/configure
index 6a1324e..2c3c21a 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12135,6 +12135,9 @@ _ACEOF
mipsisa32r5 | mipsisa32r5el)
mips_cpu=mips32r5
;;
+ mipsisa32r6 | mipsisa32r6el)
+ mips_cpu=mips32r6
+ ;;
mipsisa64 | mipsisa64el)
mips_cpu=mips64
;;
@@ -12147,6 +12150,9 @@ _ACEOF
mipsisa64r5 | mipsisa64r5el)
mips_cpu=mips64r5
;;
+ mipsisa64r6 | mipsisa64r6el)
+ mips_cpu=mips64r6
+ ;;
mipstx39 | mipstx39el)
mips_cpu=r3900
;;
@@ -12156,6 +12162,9 @@ _ACEOF
mipsisa32r2* | mipsisa64r2*)
mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
;;
+ mipsisa32r6* | mipsisa64r6*)
+ mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
+ ;;
mips64* | mipsisa64* | mipsisa32*)
mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
;;
diff --git a/gas/configure.ac b/gas/configure.ac
index e2fc1b7..371f7b3 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -217,6 +217,9 @@ changequote([,])dnl
mipsisa32r5 | mipsisa32r5el)
mips_cpu=mips32r5
;;
+ mipsisa32r6 | mipsisa32r6el)
+ mips_cpu=mips32r6
+ ;;
mipsisa64 | mipsisa64el)
mips_cpu=mips64
;;
@@ -229,6 +232,9 @@ changequote([,])dnl
mipsisa64r5 | mipsisa64r5el)
mips_cpu=mips64r5
;;
+ mipsisa64r6 | mipsisa64r6el)
+ mips_cpu=mips64r6
+ ;;
mipstx39 | mipstx39el)
mips_cpu=r3900
;;
@@ -240,6 +246,11 @@ changequote(,)dnl
mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
changequote([,])dnl
;;
+ mipsisa32r6* | mipsisa64r6*)
+changequote(,)dnl
+ mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r6//' -e 's/el$//'`
+changequote([,])dnl
+ ;;
mips64* | mipsisa64* | mipsisa32*)
changequote(,)dnl
mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 251b6d5..f93c044 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -403,8 +403,8 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{-modd-spreg}] [@b{-mno-odd-spreg}]
[@b{-march}=@var{CPU}] [@b{-mtune}=@var{CPU}] [@b{-mips1}] [@b{-mips2}]
[@b{-mips3}] [@b{-mips4}] [@b{-mips5}] [@b{-mips32}] [@b{-mips32r2}]
- [@b{-mips32r3}] [@b{-mips32r5}] [@b{-mips64}] [@b{-mips64r2}]
- [@b{-mips64r3}] [@b{-mips64r5}]
+ [@b{-mips32r3}] [@b{-mips32r5}] [@b{-mips32r6}] [@b{-mips64}] [@b{-mips64r2}]
+ [@b{-mips64r3}] [@b{-mips64r5}] [@b{-mips64r6}]
[@b{-construct-floats}] [@b{-no-construct-floats}]
[@b{-mnan=@var{encoding}}]
[@b{-trap}] [@b{-no-break}] [@b{-break}] [@b{-no-trap}]
@@ -1277,19 +1277,22 @@ Generate ``little endian'' format output.
@itemx -mips32r2
@itemx -mips32r3
@itemx -mips32r5
+@itemx -mips32r6
@itemx -mips64
@itemx -mips64r2
@itemx -mips64r3
@itemx -mips64r5
+@itemx -mips64r6
Generate code for a particular MIPS Instruction Set Architecture level.
@samp{-mips1} is an alias for @samp{-march=r3000}, @samp{-mips2} is an
alias for @samp{-march=r6000}, @samp{-mips3} is an alias for
@samp{-march=r4000} and @samp{-mips4} is an alias for @samp{-march=r8000}.
@samp{-mips5}, @samp{-mips32}, @samp{-mips32r2}, @samp{-mips32r3},
-@samp{-mips32r5}, @samp{-mips64}, @samp{-mips64r2}, @samp{-mips64r3}, and
-@samp{-mips64r5} correspond to generic MIPS V, MIPS32, MIPS32 Release 2,
-MIPS32 Release 3, MIPS32 Release 5, MIPS64, MIPS64 Release 2,
-MIPS64 Release 3, and MIPS64 Release 5 ISA processors, respectively.
+@samp{-mips32r5}, @samp{-mips32r6}, @samp{-mips64}, @samp{-mips64r2},
+@samp{-mips64r3}, @samp{-mips64r5}, and @samp{-mips64r6} correspond to generic
+MIPS V, MIPS32, MIPS32 Release 2, MIPS32 Release 3, MIPS32 Release 5, MIPS32
+Release 6, MIPS64, MIPS64 Release 2, MIPS64 Release 3, MIPS64 Release 5, and
+MIPS64 Release 6 ISA processors, respectively.
@item -march=@var{cpu}
Generate code for a particular MIPS CPU.
diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi
index 1e52e09..cafd832 100644
--- a/gas/doc/c-mips.texi
+++ b/gas/doc/c-mips.texi
@@ -84,21 +84,24 @@ VxWorks-style position-independent macro expansions.
@itemx -mips32r2
@itemx -mips32r3
@itemx -mips32r5
+@itemx -mips32r6
@itemx -mips64
@itemx -mips64r2
@itemx -mips64r3
@itemx -mips64r5
+@itemx -mips64r6
Generate code for a particular MIPS Instruction Set Architecture level.
@samp{-mips1} corresponds to the R2000 and R3000 processors,
@samp{-mips2} to the R6000 processor, @samp{-mips3} to the
R4000 processor, and @samp{-mips4} to the R8000 and R10000 processors.
-@samp{-mips5}, @samp{-mips32}, @samp{-mips32r2}, @samp{-mips32r3},
-@samp{-mips32r5}, @samp{-mips64}, @samp{-mips64r2}, @samp{-mips64r3}, and
-@samp{-mips64r5} correspond to generic MIPS V, MIPS32, MIPS32 Release 2,
-MIPS32 Release 3, MIPS32 Release 5, MIPS64, and MIPS64 Release 2,
-MIPS64 Release 3, and MIPS64 Release 5 ISA processors, respectively. You
-can also switch instruction sets during the assembly; see @ref{MIPS ISA,
-Directives to override the ISA level}.
+@samp{-mips5}, @samp{-mips32}, @samp{-mips32r2}, @samp{-mips32r3},
+@samp{-mips32r5}, @samp{-mips32r6}, @samp{-mips64}, @samp{-mips64r2},
+@samp{-mips64r3}, @samp{-mips64r5}, and @samp{-mips64r6} correspond to
+generic MIPS V, MIPS32, MIPS32 Release 2, MIPS32 Release 3, MIPS32
+Release 5, MIPS32 Release 6, MIPS64, and MIPS64 Release 2, MIPS64
+Release 3, MIPS64 Release 5, and MIPS64 Release 6 ISA processors,
+respectively. You can also switch instruction sets during the assembly;
+see @ref{MIPS ISA, Directives to override the ISA level}.
@item -mgp32
@itemx -mfp32
@@ -676,7 +679,7 @@ Small data is not supported for SVR4-style PIC.
@sc{gnu} @code{@value{AS}} supports an additional directive to change
the MIPS Instruction Set Architecture level on the fly: @code{.set
mips@var{n}}. @var{n} should be a number from 0 to 5, or 32, 32r2, 32r3,
-32r5, 64, 64r2, 64r3 or 64r5.
+32r5, 32r6, 64, 64r2, 64r3, 64r5 or 64r6.
The values other than 0 make the assembler accept instructions
for the corresponding ISA level, from that point on in the
assembly. @code{.set mips@var{n}} affects not only which instructions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 97d6d83..9af5120 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,91 @@
+2014-09-15 Andrew Bennett <andrew.bennett@imgtec.com>
+ Matthew Fortune <matthew.fortune@imgtec.com>
+
+ * gas/mips/24k-triple-stores-1.s: If testing for r6 prevent
+ non-supported instructions from being tested.
+ * gas/mips/24k-triple-stores-2.s: Likewise.
+ * gas/mips/24k-triple-stores-3.s: Likewise.
+ * gas/mips/24k-triple-stores-6.s: Likewise.
+ * gas/mips/beq.s: Likewise.
+ * gas/mips/eva.s: Likewise.
+ * gas/mips/ld-zero-3.s: Likewise.
+ * gas/mips/mips32-cp2.s: Likewise.
+ * gas/mips/mips32.s: Likewise.
+ * gas/mips/mips4.s: Likewise.
+ * gas/mips/add.s: Don't test the add instructions if r6, and
+ add padding.
+ * gas/mips/add.d: Check for a triple dot not a nop at the end of the
+ disassembly output.
+ * gas/mips/micromips@add.d: Likewise.
+ * gas/mips/mipsr6@24k-branch-delay-1.d: New file.
+ * gas/mips/mipsr6@24k-triple-stores-1.d: New file.
+ * gas/mips/mipsr6@24k-triple-stores-2-llsc.d: New file.
+ * gas/mips/mipsr6@24k-triple-stores-2.d: New file.
+ * gas/mips/mipsr6@24k-triple-stores-3.d: New file.
+ * gas/mips/mipsr6@24k-triple-stores-6.d: New file.
+ * gas/mips/mipsr6@add.d: New file.
+ * gas/mips/mipsr6@attr-gnu-4-1-msingle-float.l: New file.
+ * gas/mips/mipsr6@attr-gnu-4-1-msingle-float.s: New file.
+ * gas/mips/mipsr6@attr-gnu-4-1-msoft-float.l: New file.
+ * gas/mips/mipsr6@attr-gnu-4-1-msoft-float.s: New file.
+ * gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.l: New file.
+ * gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.s: New file.
+ * gas/mips/mipsr6@beq.d: New file.
+ * gas/mips/mipsr6@bge.d: New file.
+ * gas/mips/mipsr6@bgeu.d: New file.
+ * gas/mips/mipsr6@blt.d: New file.
+ * gas/mips/mipsr6@bltu.d: New file.
+ * gas/mips/mipsr6@branch-misc-1.d: New file.
+ * gas/mips/mipsr6@branch-misc-2-64.d: New file.
+ * gas/mips/mipsr6@branch-misc-2pic-64.d: New file.
+ * gas/mips/mipsr6@branch-misc-4-64.d: New file.
+ * gas/mips/mipsr6@cache.d: New file.
+ * gas/mips/mipsr6@eva.d: New file.
+ * gas/mips/mipsr6@jal-svr4pic-noreorder.d: New file.
+ * gas/mips/mipsr6@jal-svr4pic.d: New file.
+ * gas/mips/mipsr6@ld-zero-2.d: New file.
+ * gas/mips/mipsr6@ld-zero-3.d: New file.
+ * gas/mips/mipsr6@loc-swap-dis.d: New file.
+ * gas/mips/mipsr6@mips32-cp2.d: New file.
+ * gas/mips/mipsr6@mips32-imm.d: New file.
+ * gas/mips/mipsr6@mips32.d: New file.
+ * gas/mips/mipsr6@mips32r2.d: New file.
+ * gas/mips/mipsr6@mips4-fp.d: New file.
+ * gas/mips/mipsr6@mips4-fp.l: New file.
+ * gas/mips/mipsr6@mips4-fp.s: New file.
+ * gas/mips/mipsr6@mips4.d: New file.
+ * gas/mips/mipsr6@mips5-fp.d: New file.
+ * gas/mips/mipsr6@mips5-fp.l: New file.
+ * gas/mips/mipsr6@mips5-fp.s: New file.
+ * gas/mips/mipsr6@mips64.d: New file.
+ * gas/mips/mipsr6@msa-branch.d: New file.
+ * gas/mips/mipsr6@msa.d: New file.
+ * gas/mips/mipsr6@pref.d: New file.
+ * gas/mips/mipsr6@relax-swap3.d: New file.
+ * gas/mips/r6-64-n32.d: New file.
+ * gas/mips/r6-64-n64.d: New file.
+ * gas/mips/r6-64-removed.l: New file.
+ * gas/mips/r6-64-removed.s: New file.
+ * gas/mips/r6-64.s: New file.
+ * gas/mips/r6-attr-none-double.d: New file.
+ * gas/mips/r6-n32.d: New file.
+ * gas/mips/r6-n64.d: New file.
+ * gas/mips/r6-removed.l: New file.
+ * gas/mips/r6-removed.s: New file.
+ * gas/mips/r6.d: New file.
+ * gas/mips/r6.s: New file.
+ * gas/mips/mipsr6@mips32-dsp.d: New file.
+ * gas/mips/mipsr6@mips32-dspr2.d: New file.
+ * gas/mips/mipsr6@mips32r2-ill.l: New file.
+ * gas/mips/mipsr6@mips32r2-ill.s: New file.
+ * gas/mips/cache.s: Add r6 instruction varients.
+ * gas/mips/mips.exp: Add support for the mips32r6 and mips64r6
+ architectures. Also prevent non r6 supported tests from running.
+ Finally, add in support for running the new r6 tests.
+ (run_dump_test_arch): Add support for mipsr6 tests.
+ (run_list_test_arch): Add support for using files of the
+ form arch@testname.l .
+
2014-09-15 Matthew Fortune <matthew.fortune@imgtec.com>
* gas/mips/attr-gnu-4-5-msingle-float.l: New file.
diff --git a/gas/testsuite/gas/mips/24k-triple-stores-1.s b/gas/testsuite/gas/mips/24k-triple-stores-1.s
index 87c67a9..8ce61a3 100644
--- a/gas/testsuite/gas/mips/24k-triple-stores-1.s
+++ b/gas/testsuite/gas/mips/24k-triple-stores-1.s
@@ -19,6 +19,7 @@ foo:
sw $5,24($sp)
sw $6,32($sp)
+ .ifndef r6
swr $2,0($sp)
swr $3,8($sp)
swr $4,16($sp)
@@ -30,6 +31,7 @@ foo:
swl $4,16($sp)
swl $5,24($sp)
swl $6,32($sp)
+ .endif
sc $2,0($sp)
sc $3,8($sp)
@@ -63,6 +65,7 @@ foo:
sdc2 $5,24($sp)
sdc2 $6,32($sp)
+ .ifndef r6
swxc1 $f0,$9($8)
swxc1 $f1,$10($8)
swxc1 $f2,$11($8)
@@ -80,6 +83,7 @@ foo:
suxc1 $f4,$11($8)
suxc1 $f6,$12($8)
suxc1 $f8,$13($8)
+ .endif
# Force at least 8 (non-delay-slot) zero bytes,to make 'objdump' print ...
.align 2
diff --git a/gas/testsuite/gas/mips/24k-triple-stores-2.s b/gas/testsuite/gas/mips/24k-triple-stores-2.s
index 13b9cd4..9386d9c 100644
--- a/gas/testsuite/gas/mips/24k-triple-stores-2.s
+++ b/gas/testsuite/gas/mips/24k-triple-stores-2.s
@@ -16,6 +16,7 @@ foo:
sw $4,8($sp)
break
+ .ifndef r6
swr $2,0($sp)
swr $3,-16($sp)
swr $4,16($sp)
@@ -26,6 +27,7 @@ foo:
swl $4,16($sp)
swl $5,24($sp)
swl $6,0($sp)
+ .endif
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
diff --git a/gas/testsuite/gas/mips/24k-triple-stores-3.s b/gas/testsuite/gas/mips/24k-triple-stores-3.s
index 1a54c64..32e1400 100644
--- a/gas/testsuite/gas/mips/24k-triple-stores-3.s
+++ b/gas/testsuite/gas/mips/24k-triple-stores-3.s
@@ -60,6 +60,7 @@ foo:
sw $4,15($8)
break
+ .ifndef r6
swl $2,4($sp)
swl $3,10($sp)
swl $4,17($sp)
@@ -94,6 +95,7 @@ foo:
swl $3,17($8)
swr $4,28($8)
break
+ .endif
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
diff --git a/gas/testsuite/gas/mips/24k-triple-stores-6.s b/gas/testsuite/gas/mips/24k-triple-stores-6.s
index eb087e1..49e236b 100644
--- a/gas/testsuite/gas/mips/24k-triple-stores-6.s
+++ b/gas/testsuite/gas/mips/24k-triple-stores-6.s
@@ -1,6 +1,7 @@
# Store macros
foo:
+ .ifndef r6
usw $ra,80($sp)
usw $s3,88($sp)
usw $s8,96($sp)
@@ -10,6 +11,7 @@ foo:
ush $s3,88($sp)
ush $s8,96($sp)
break
+ .endif
# swc1 macro
s.s $f0,80($sp)
diff --git a/gas/testsuite/gas/mips/add.d b/gas/testsuite/gas/mips/add.d
index 1eb538b..e5247f2 100644
--- a/gas/testsuite/gas/mips/add.d
+++ b/gas/testsuite/gas/mips/add.d
@@ -18,4 +18,4 @@ Disassembly of section .text:
0+0020 <[^>]*> ori at,at,0xa5a5
0+0024 <[^>]*> add a0,a0,at
0+0028 <[^>]*> addiu a0,a0,1
-0+002c <[^>]*> nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/add.s b/gas/testsuite/gas/mips/add.s
index 44e964b..5702d92 100644
--- a/gas/testsuite/gas/mips/add.s
+++ b/gas/testsuite/gas/mips/add.s
@@ -1,16 +1,18 @@
# Source file used to test the add macro.
foo:
+ .ifndef r6
add $4,$4,0
add $4,$4,1
add $4,$4,0x8000
add $4,$4,-0x8000
add $4,$4,0x10000
add $4,$4,0x1a5a5
-
+ .endif
+
# addu is handled the same way add is; just confirm that it isn't
# totally broken.
addu $4,$4,1
-# Round to a 16 byte boundary, for ease in testing multiple targets.
- nop
+ .align 2
+ .space 8
diff --git a/gas/testsuite/gas/mips/beq.s b/gas/testsuite/gas/mips/beq.s
index d9e4c60..bed6916 100644
--- a/gas/testsuite/gas/mips/beq.s
+++ b/gas/testsuite/gas/mips/beq.s
@@ -12,10 +12,12 @@ text_label:
# bne is handled by the same code as beq. Just sanity check.
bne $4,0,text_label
+ .ifndef r6
# Test that branches which overflow are converted to jumps.
.space 0x20000
b text_label
bal text_label
+ .endif
# Branch to an external label.
# b external_label
diff --git a/gas/testsuite/gas/mips/cache.s b/gas/testsuite/gas/mips/cache.s
index 5f66c4d..6b8cc22 100644
--- a/gas/testsuite/gas/mips/cache.s
+++ b/gas/testsuite/gas/mips/cache.s
@@ -15,6 +15,10 @@
.text
text_label:
+ .ifdef r6
+ cache 5, 255($2)
+ cache 5, -256($3)
+ .else
cache 5, 2047($2)
cache 5, -2048($3)
@@ -35,6 +39,7 @@ text_label:
cache 5, -32769($9)
cache 5, 36864($10)
cache 5, -36865($11)
+ .endif
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
diff --git a/gas/testsuite/gas/mips/eva.s b/gas/testsuite/gas/mips/eva.s
index f7bea00..7865fb4 100644
--- a/gas/testsuite/gas/mips/eva.s
+++ b/gas/testsuite/gas/mips/eva.s
@@ -230,6 +230,7 @@ test_eva:
lwe $29,2147483647
lwe $30,($31)
lwe $0,MYDATA
+ .ifndef r6
lwle $2,-256($3)
lwle $4,-256
lwle $5,255($6)
@@ -306,6 +307,7 @@ test_eva:
lwre $19,2147483647
lwre $20,($21)
lwre $22,MYDATA
+ .endif
sbe $23,-256($24)
sbe $25,-256
sbe $26,255($27)
@@ -458,6 +460,7 @@ test_eva:
swe $30,2147483647
swe $31,($0)
swe $2,MYDATA
+ .ifndef r6
swle $3,-256($4)
swle $5,-256
swle $6,255($7)
@@ -534,6 +537,7 @@ test_eva:
swre $20,2147483647
swre $21,($22)
swre $23,MYDATA
+ .endif
cachee 24,-256($25)
cachee 26,-256
cachee 27,255($28)
diff --git a/gas/testsuite/gas/mips/micromips@add.d b/gas/testsuite/gas/mips/micromips@add.d
index ea36af5..61c6cda 100644
--- a/gas/testsuite/gas/mips/micromips@add.d
+++ b/gas/testsuite/gas/mips/micromips@add.d
@@ -19,5 +19,4 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 0024 2110 add a0,a0,at
[0-9a-f]+ <[^>]*> 3084 0001 addiu a0,a0,1
-[0-9a-f]+ <[^>]*> 0c00 nop
-[0-9a-f]+ <[^>]*> 0c00 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 4cf6e7d..4afd367 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -327,6 +327,9 @@ proc run_dump_test_arch { name opts arch } {
if { [ string match "octeon*" $proparch ] && $proparch != "octeon" } {
lappend prefixes octeon@
}
+ if { [ string match "mips*r6" $proparch ]} {
+ lappend prefixes mipsr6@
+ }
foreach prefix ${prefixes} {
set archname ${prefix}${name}
if { [file exists "$srcdir/$subdir/${archname}.d"] } {
@@ -366,9 +369,25 @@ proc run_dump_test_arches { name args } {
# Invoke "run_list_test" for test NAME with additional assembler options OPTS.
# Add the assembler flags that are associated with architecture ARCH.
proc run_list_test_arch { name opts arch } {
- global subdir
+ global subdir srcdir
set testname "MIPS $name ([concat $opts [mips_arch_displayname $arch]])"
+ set proparch [lindex [mips_arch_properties $arch 0] 0]
+ set prefixes [list ${proparch}@ ]
+ if { [ string match "octeon*" $proparch ] && $proparch != "octeon" } {
+ lappend prefixes octeon@
+ }
+ if { [ string match "mips*r6" $proparch ]} {
+ lappend prefixes mipsr6@
+ }
+ foreach prefix ${prefixes} {
+ set archname ${prefix}${name}
+ if { [file exists "$srcdir/$subdir/${archname}.l"] } {
+ set name $archname
+ break
+ }
+ }
+
if [catch {run_list_test \
$name \
[concat $opts [mips_arch_as_flags $arch]] \
@@ -428,6 +447,10 @@ mips_arch_create mips32r5 32 mips32r3 { fpisa3 fpisa4 fpisa5 ror } \
{ -march=mips32r5 -mtune=mips32r5 } \
{ -mmips:isa32r5 } \
{ mipsisa32r5-*-* mipsisa32r5el-*-* }
+mips_arch_create mips32r6 32 mips32r5 { fpisa3 fpisa4 fpisa5 ror } \
+ { -march=mips32r6 -mtune=mips32r6 --defsym r6=} \
+ { -mmips:isa32r6 } \
+ { mipsisa32r6-*-* mipsisa32r6el-*-* }
mips_arch_create mips64 64 mips5 { mips32 } \
{ -march=mips64 -mtune=mips64 } { -mmips:isa64 } \
{ mipsisa64-*-* mipsisa64el-*-* }
@@ -443,6 +466,10 @@ mips_arch_create mips64r5 64 mips64r3 { mips32r5 ror } \
{ -march=mips64r5 -mtune=mips64r5 } \
{ -mmips:isa64r5 } \
{ mipsisa64r5-*-* mipsisa64r5el-*-* }
+mips_arch_create mips64r6 64 mips64r5 { mips32r6 ror } \
+ { -march=mips64r6 -mtune=mips64r6 --defsym r6=} \
+ { -mmips:isa64r6 } \
+ { mipsisa64r6-*-* mipsisa64r6el-*-* }
mips_arch_create mips16 32 {} {} \
{ -march=mips1 -mips16 } { -mmips:16 }
mips_arch_create micromips 64 mips64r2 {} \
@@ -520,7 +547,7 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test_arches "bgeu" [mips_arch_list_matching mips1]
run_dump_test_arches "blt" [mips_arch_list_matching mips1]
run_dump_test_arches "bltu" [mips_arch_list_matching mips1]
- run_dump_test_arches "branch-likely" [mips_arch_list_matching mips2]
+ run_dump_test_arches "branch-likely" [mips_arch_list_matching mips2 !mips32r6]
run_dump_test_arches "branch-misc-1" [mips_arch_list_matching mips1]
run_dump_test_arches "branch-misc-2" [mips_arch_list_matching mips1]
run_dump_test_arches "branch-misc-2pic" [mips_arch_list_matching mips1]
@@ -554,9 +581,11 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "eret-2"
run_dump_test "eret-3"
run_dump_test_arches "fix-rm7000-1" \
- [mips_arch_list_matching mips3 !singlefloat]
+ [mips_arch_list_matching mips3 !singlefloat \
+ !mips64r6]
run_dump_test_arches "fix-rm7000-2" \
- [mips_arch_list_matching mips3 !singlefloat]
+ [mips_arch_list_matching mips3 !singlefloat \
+ !mips64r6]
run_dump_test_arches "24k-branch-delay-1" \
[mips_arch_list_matching mips1]
run_dump_test_arches "24k-triple-stores-1" \
@@ -676,9 +705,9 @@ if { [istarget mips*-*-vxworks*] } {
run_list_test_arches "mips4-fp" "-32 -msoft-float" \
[mips_arch_list_matching fpisa4]
run_dump_test_arches "mips4-branch-likely" \
- [mips_arch_list_matching mips4]
+ [mips_arch_list_matching mips4 !mips32r6]
run_list_test_arches "mips4-branch-likely" "-32 -msoft-float" \
- [mips_arch_list_matching mips4]
+ [mips_arch_list_matching mips4 !mips32r6]
run_dump_test_arches "mips5-fp" "-32" \
[mips_arch_list_matching fpisa5]
run_dump_test_arches "mips5-fp" "-mabi=o64" \
@@ -694,8 +723,8 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "sb"
run_dump_test "trunc"
run_dump_test "ulh"
- run_dump_test_arches "ulh2-eb" [mips_arch_list_matching mips1]
- run_dump_test_arches "ulh2-el" [mips_arch_list_matching mips1]
+ run_dump_test_arches "ulh2-eb" [mips_arch_list_matching mips1 !mips32r6]
+ run_dump_test_arches "ulh2-el" [mips_arch_list_matching mips1 !mips32r6]
run_dump_test "ulh-svr4pic"
run_dump_test "ulh-xgot"
run_dump_test "ulw"
@@ -703,19 +732,24 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "ush"
run_dump_test "usw"
run_dump_test "usd"
- run_dump_test_arches "ulw2-eb" [mips_arch_list_matching mips1 !gpr_ilocks]
- run_dump_test_arches "ulw2-eb-ilocks" [mips_arch_list_matching gpr_ilocks]
- run_dump_test_arches "ulw2-el" [mips_arch_list_matching mips1 !gpr_ilocks]
- run_dump_test_arches "ulw2-el-ilocks" [mips_arch_list_matching gpr_ilocks]
-
- run_dump_test_arches "uld2-eb" [mips_arch_list_matching mips3]
- run_dump_test_arches "uld2-el" [mips_arch_list_matching mips3]
+ run_dump_test_arches "ulw2-eb" [mips_arch_list_matching mips1 !gpr_ilocks \
+ !mips32r6]
+ run_dump_test_arches "ulw2-eb-ilocks" [mips_arch_list_matching gpr_ilocks \
+ !mips32r6]
+ run_dump_test_arches "ulw2-el" [mips_arch_list_matching mips1 !gpr_ilocks \
+ !mips32r6]
+ run_dump_test_arches "ulw2-el-ilocks" [mips_arch_list_matching gpr_ilocks \
+ !mips32r6]
+
+ run_dump_test_arches "uld2-eb" [mips_arch_list_matching mips3 !mips32r6]
+ run_dump_test_arches "uld2-el" [mips_arch_list_matching mips3 !mips32r6]
run_dump_test "mips16"
run_dump_test "mips16-64"
run_dump_test "mips16-macro"
# Check MIPS16e extensions
- run_dump_test_arches "mips16e" [mips_arch_list_matching mips32 !micromips]
+ run_dump_test_arches "mips16e" [mips_arch_list_matching mips32 !micromips \
+ !mips32r6]
# Check jalx handling
run_dump_test "mips16-jalx"
run_dump_test "mips-jalx"
@@ -788,18 +822,18 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "xlr-ext"
}
- run_dump_test_arches "relax" [mips_arch_list_matching mips2]
- run_dump_test_arches "relax-at" [mips_arch_list_matching mips2]
+ run_dump_test_arches "relax" [mips_arch_list_matching mips2 !mips32r6]
+ run_dump_test_arches "relax-at" [mips_arch_list_matching mips2 !mips32r6]
run_dump_test "relax-swap1-mips1"
run_dump_test "relax-swap1-mips2"
run_dump_test "relax-swap2"
run_dump_test_arches "relax-swap3" [mips_arch_list_all]
run_list_test_arches "relax-bc1any" "-mips3d -mabi=o64 -relax-branch" \
[mips_arch_list_matching mips64 \
- !micromips]
+ !micromips !mips32r6]
run_list_test_arches "relax-bposge" "-mdsp -relax-branch" \
[mips_arch_list_matching mips64r2 \
- !micromips]
+ !micromips !mips32r6]
run_dump_test_arches "eva" [mips_arch_list_matching mips32r2 !octeon]
@@ -1118,11 +1152,13 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "mips32-sync"
run_dump_test_arches "mips32r2-sync" \
[mips_arch_list_matching mips32r2]
- run_dump_test_arches "alnv_ps-swap" [mips_arch_list_matching fpisa5]
+ run_dump_test_arches "alnv_ps-swap" [mips_arch_list_matching fpisa5 \
+ !mips32r6]
run_dump_test_arches "cache" [lsort -dictionary -unique [concat \
[mips_arch_list_matching mips3] \
[mips_arch_list_matching mips32] ] ]
- run_dump_test_arches "daddi" [mips_arch_list_matching mips3]
+ run_dump_test_arches "daddi" [mips_arch_list_matching mips3 \
+ !mips32r6]
run_dump_test_arches "pref" [lsort -dictionary -unique [concat \
[mips_arch_list_matching mips4] \
[mips_arch_list_matching mips32] ] ]
@@ -1186,15 +1222,15 @@ if { [istarget mips*-*-vxworks*] } {
# Start with MIPS II to avoid load delay nops.
run_dump_test_arches "ld-reloc" [mips_arch_list_matching mips2]
- run_dump_test_arches "ulw-reloc" [mips_arch_list_matching mips2]
- run_dump_test_arches "ulh-reloc" [mips_arch_list_matching mips2]
+ run_dump_test_arches "ulw-reloc" [mips_arch_list_matching mips2 !mips32r6]
+ run_dump_test_arches "ulh-reloc" [mips_arch_list_matching mips2 !mips32r6]
run_dump_test "l_d-reloc"
run_list_test "bltzal"
run_dump_test_arches "msa" [mips_arch_list_matching mips32r2]
run_dump_test_arches "msa64" [mips_arch_list_matching mips64r2]
- run_dump_test_arches "msa-relax" [mips_arch_list_matching mips32r2]
+ run_dump_test_arches "msa-relax" [mips_arch_list_matching mips32r2 !mips32r6]
run_dump_test_arches "msa-branch" [mips_arch_list_matching mips32r2]
run_dump_test_arches "xpa" [mips_arch_list_matching mips32r2 !micromips]
@@ -1214,7 +1250,7 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test_arches "attr-gnu-4-0" "-64" \
[mips_arch_list_matching mips3]
run_dump_test_arches "attr-gnu-4-0" "-mfp32 -32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_dump_test_arches "attr-gnu-4-0" "-mfpxx -32" \
[mips_arch_list_matching mips2 !r5900]
run_dump_test_arches "attr-gnu-4-0" "-mfp64 -32" \
@@ -1232,7 +1268,9 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test_arches "attr-gnu-4-0" "-msoft-float -64" \
[mips_arch_list_matching mips3]
run_dump_test_arches "attr-none-double" "-32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_dump_test_arches "r6-attr-none-double" "-32" \
+ [mips_arch_list_matching mips32r6]
run_dump_test_arches "attr-none-double" "-64" \
[mips_arch_list_matching mips3]
run_dump_test_arches "attr-none-o32-fpxx" \
@@ -1256,7 +1294,7 @@ if { [istarget mips*-*-vxworks*] } {
run_list_test_arches "attr-gnu-4-1-mfp64" "-32 -mfp64" \
[mips_arch_list_matching mips32r2]
run_list_test_arches "attr-gnu-4-1-mfp32" "-64 -mfp32" \
- [mips_arch_list_matching mips3]
+ [mips_arch_list_matching mips3 !mips64r6]
run_list_test_arches "attr-gnu-4-1-msingle-float" "-32 -msingle-float" \
[mips_arch_list_matching mips1]
run_list_test_arches "attr-gnu-4-1-msoft-float" "-32 -msoft-float" \
@@ -1264,12 +1302,12 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test_arches "attr-gnu-4-1" "-32 -mfpxx" \
[mips_arch_list_matching mips2 !r5900]
run_dump_test_arches "attr-gnu-4-1" "-32 -mfp32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_dump_test_arches "attr-gnu-4-1" "-64 -mfp64" \
[mips_arch_list_matching mips3]
run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfp32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfpxx" \
[mips_arch_list_matching mips2 !r5900]
run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfp64" \
@@ -1287,7 +1325,7 @@ if { [istarget mips*-*-vxworks*] } {
[mips_arch_list_matching mips3]
run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfp32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfpxx" \
[mips_arch_list_matching mips2 !r5900]
run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfp64" \
@@ -1305,7 +1343,7 @@ if { [istarget mips*-*-vxworks*] } {
[mips_arch_list_matching mips3]
run_list_test_arches "attr-gnu-4-4" "-32 -mfp32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_list_test_arches "attr-gnu-4-4" "-32 -mfpxx" \
[mips_arch_list_matching mips2 !r5900]
run_list_test_arches "attr-gnu-4-4" "-32 -mfp64" \
@@ -1320,7 +1358,7 @@ if { [istarget mips*-*-vxworks*] } {
[mips_arch_list_matching mips1]
run_list_test_arches "attr-gnu-4-5" "-32 -mfp32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_list_test_arches "attr-gnu-4-5" "-32 -mfp64" \
[mips_arch_list_matching mips32r2]
run_list_test_arches "attr-gnu-4-5" "-32 -mfp64 -mno-odd-spreg" \
@@ -1335,7 +1373,7 @@ if { [istarget mips*-*-vxworks*] } {
[mips_arch_list_matching mips2 !r5900]
run_list_test_arches "attr-gnu-4-6" "-32 -mfp32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_list_test_arches "attr-gnu-4-6-noodd" "-32 -mfp64 -mno-odd-spreg" \
[mips_arch_list_matching mips32r2]
run_list_test_arches "attr-gnu-4-6-64" "-64 -mfp64" \
@@ -1350,7 +1388,7 @@ if { [istarget mips*-*-vxworks*] } {
[mips_arch_list_matching mips32r2]
run_list_test_arches "attr-gnu-4-7" "-32 -mfp32" \
- [mips_arch_list_matching mips1]
+ [mips_arch_list_matching mips1 !mips32r6]
run_list_test_arches "attr-gnu-4-7-odd" "-32 -mfp64" \
[mips_arch_list_matching mips32r2]
run_list_test_arches "attr-gnu-4-7-64" "-64 -mfp64" \
@@ -1390,11 +1428,22 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test_arches "odd-spreg" "-mfp32" [mips_arch_list_matching oddspreg]
run_dump_test_arches "odd-spreg" "-mfpxx" [mips_arch_list_matching oddspreg]
run_dump_test_arches "odd-spreg" "-mfp64" [mips_arch_list_matching mips32r2]
- run_dump_test_arches "no-odd-spreg" "-mfp32" [mips_arch_list_matching mips1]
+ run_dump_test_arches "no-odd-spreg" "-mfp32" [mips_arch_list_matching mips1 \
+ !mips32r6]
run_dump_test_arches "no-odd-spreg" "-mfpxx" [mips_arch_list_matching mips2 !r5900]
run_dump_test_arches "no-odd-spreg" "-mfp64" [mips_arch_list_matching mips32r2]
run_dump_test "module-check"
run_list_test "module-check-warn" "-32"
run_dump_test "li-d"
+
+ run_dump_test_arches "r6" [mips_arch_list_matching mips32r6]
+ if $has_newabi {
+ run_dump_test_arches "r6-n32" [mips_arch_list_matching mips64r6]
+ run_dump_test_arches "r6-n64" [mips_arch_list_matching mips64r6]
+ run_dump_test_arches "r6-64-n32" [mips_arch_list_matching mips64r6]
+ run_dump_test_arches "r6-64-n64" [mips_arch_list_matching mips64r6]
+ }
+ run_list_test_arches "r6-removed" "-32" [mips_arch_list_matching mips32r6]
+ run_list_test_arches "r6-64-removed" [mips_arch_list_matching mips64r6]
}
diff --git a/gas/testsuite/gas/mips/mips32-cp2.s b/gas/testsuite/gas/mips/mips32-cp2.s
index 182ba87..22e0c74 100644
--- a/gas/testsuite/gas/mips/mips32-cp2.s
+++ b/gas/testsuite/gas/mips/mips32-cp2.s
@@ -8,6 +8,7 @@ text_label:
# unprivileged coprocessor instructions.
# these tests use cp2 to avoid other (cp0, fpu, prefetch) opcodes.
+ .ifndef r6
bc2f text_label
nop
bc2fl text_label
@@ -16,6 +17,7 @@ text_label:
nop
bc2tl text_label
nop
+ .endif
# XXX other BCzCond encodings not currently expressable
cfc2 $1, $2
cop2 0x1234567 # disassembles as c2 ...
@@ -28,6 +30,7 @@ text_label:
mtc2 $8, $9, 7
+ .ifndef r6
# Cop2 branches with cond code number, like bc1t/f
bc2f $cc0,text_label
nop
@@ -37,3 +40,4 @@ text_label:
nop
bc2tl $cc7,text_label
nop
+ .endif
diff --git a/gas/testsuite/gas/mips/mips32.s b/gas/testsuite/gas/mips/mips32.s
index 5051d5a..35f7d42 100644
--- a/gas/testsuite/gas/mips/mips32.s
+++ b/gas/testsuite/gas/mips/mips32.s
@@ -10,20 +10,25 @@ text_label:
clo $1, $2
clz $3, $4
+ .ifndef r6
madd $5, $6
maddu $7, $8
msub $9, $10
msubu $11, $12
+ .endif
mul $13, $14, $15
pref 4, ($16)
+ .ifndef r6
pref 4, 2047($17)
pref 4, -2048($18)
+ .endif
ssnop
# privileged instructions
cache 5, ($1)
+ .ifndef r6
cache 5, 2047($2)
cache 5, -2048($3)
.set at
@@ -32,6 +37,7 @@ text_label:
cache 5, 32768
cache 5, -32769
.set noat
+ .endif
eret
tlbp
tlbr
diff --git a/gas/testsuite/gas/mips/mips4.s b/gas/testsuite/gas/mips/mips4.s
index 7f5457c..1f4cdc7 100644
--- a/gas/testsuite/gas/mips/mips4.s
+++ b/gas/testsuite/gas/mips/mips4.s
@@ -1,8 +1,10 @@
# Source file used to test -mips4 *non-fp* instructions.
text_label:
+ .ifndef r6
movn $4,$6,$6
movz $4,$6,$6
+ .endif
# It used to be disabled due to a clash with lwc3.
pref 4,0($4)
diff --git a/gas/testsuite/gas/mips/mipsr6@24k-branch-delay-1.d b/gas/testsuite/gas/mips/mipsr6@24k-branch-delay-1.d
new file mode 100644
index 0000000..928eae9
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@24k-branch-delay-1.d
@@ -0,0 +1,23 @@
+#objdump: -dr
+#as: -mfix-24k -32
+#source: 24k-branch-delay-1.s
+#name: 24K: Delay slot filling
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+ <.*>:
+ 0: 24620005 addiu v0,v1,5
+ 4: 8c440000 lw a0,0\(v0\)
+ 8: ac430000 sw v1,0\(v0\)
+ c: ac430008 sw v1,8\(v0\)
+ 10: 00000000 nop
+ 14: ac430010 sw v1,16\(v0\)
+ 18: 1060ffff beqz v1,18 <.*>
+[ ]*18: .*R_MIPS_PC16 .L1
+ 1c: 00000000 nop
+ 20: 8c430008 lw v1,8\(v0\)
+
+0+24 <.L1>:
+ 24: 8c450010 lw a1,16\(v0\)
+ ...
diff --git a/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-1.d b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-1.d
new file mode 100644
index 0000000..ca334a6
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-1.d
@@ -0,0 +1,68 @@
+#objdump: -dr
+#as: -mfix-24k -32
+#source: 24k-triple-stores-1.s
+#name: 24K: Triple Store (Opcode Check)
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+ <.*>:
+ 0: a3a20000 sb v0,0\(sp\)
+ 4: a3a30008 sb v1,8\(sp\)
+ 8: 00000000 nop
+ c: a3a40010 sb a0,16\(sp\)
+ 10: a3a50018 sb a1,24\(sp\)
+ 14: 00000000 nop
+ 18: a3a60020 sb a2,32\(sp\)
+ 1c: a7a20000 sh v0,0\(sp\)
+ 20: a7a30008 sh v1,8\(sp\)
+ 24: 00000000 nop
+ 28: a7a40010 sh a0,16\(sp\)
+ 2c: a7a50018 sh a1,24\(sp\)
+ 30: 00000000 nop
+ 34: a7a60020 sh a2,32\(sp\)
+ 38: afa20000 sw v0,0\(sp\)
+ 3c: afa30008 sw v1,8\(sp\)
+ 40: 00000000 nop
+ 44: afa40010 sw a0,16\(sp\)
+ 48: afa50018 sw a1,24\(sp\)
+ 4c: 00000000 nop
+ 50: afa60020 sw a2,32\(sp\)
+ 54: 7fa20026 sc v0,0\(sp\)
+ 58: 00000000 nop
+ 5c: 7fa30426 sc v1,8\(sp\)
+ 60: 7fa40826 sc a0,16\(sp\)
+ 64: 00000000 nop
+ 68: 7fa50c26 sc a1,24\(sp\)
+ 6c: 7fa61026 sc a2,32\(sp\)
+ 70: 00000000 nop
+ 74: e7a20000 swc1 \$f2,0\(sp\)
+ 78: e7a30008 swc1 \$f3,8\(sp\)
+ 7c: 00000000 nop
+ 80: e7a40010 swc1 \$f4,16\(sp\)
+ 84: e7a50018 swc1 \$f5,24\(sp\)
+ 88: 00000000 nop
+ 8c: e7a60020 swc1 \$f6,32\(sp\)
+ 90: 4962e800 swc2 \$2,0\(sp\)
+ 94: 00000000 nop
+ 98: 4963e808 swc2 \$3,8\(sp\)
+ 9c: 4964e810 swc2 \$4,16\(sp\)
+ a0: 00000000 nop
+ a4: 4965e818 swc2 \$5,24\(sp\)
+ a8: 4966e820 swc2 \$6,32\(sp\)
+ ac: 00000000 nop
+ b0: f7a20000 sdc1 \$f2,0\(sp\)
+ b4: f7a30008 sdc1 \$f3,8\(sp\)
+ b8: 00000000 nop
+ bc: f7a40010 sdc1 \$f4,16\(sp\)
+ c0: f7a50018 sdc1 \$f5,24\(sp\)
+ c4: 00000000 nop
+ c8: f7a60020 sdc1 \$f6,32\(sp\)
+ cc: 49e2e800 sdc2 \$2,0\(sp\)
+ d0: 00000000 nop
+ d4: 49e3e808 sdc2 \$3,8\(sp\)
+ d8: 49e4e810 sdc2 \$4,16\(sp\)
+ dc: 00000000 nop
+ e0: 49e5e818 sdc2 \$5,24\(sp\)
+ e4: 49e6e820 sdc2 \$6,32\(sp\)
+ ...
diff --git a/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2-llsc.d b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2-llsc.d
new file mode 100644
index 0000000..8119bce
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2-llsc.d
@@ -0,0 +1,17 @@
+#objdump: -dr
+#as: -mfix-24k -32
+#source: 24k-triple-stores-2-llsc.s
+#name: 24K: Triple Store (Range Check, sc)
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+ <.*>:
+ 0: 7fa21026 sc v0,32\(sp\)
+ 4: 7fa30426 sc v1,8\(sp\)
+ 8: 00000000 nop
+ c: 7fa4fc26 sc a0,-8\(sp\)
+ 10: 7fa50026 sc a1,0\(sp\)
+ 14: 00000000 nop
+ 18: 7fa61026 sc a2,32\(sp\)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2.d b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2.d
new file mode 100644
index 0000000..eb3ee96
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-2.d
@@ -0,0 +1,24 @@
+#objdump: -dr
+#as: -mfix-24k -32
+#source: 24k-triple-stores-2.s
+#name: 24K: Triple Store (Range Check)
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+ <.*>:
+ 0: a3a20000 sb v0,0\(sp\)
+ 4: a3a3000a sb v1,10\(sp\)
+ 8: 00000000 nop
+ c: a3a4001f sb a0,31\(sp\)
+ 10: 0000000d break
+ 14: a7a20000 sh v0,0\(sp\)
+ 18: a7a3fff0 sh v1,-16\(sp\)
+ 1c: a7a4ffe0 sh a0,-32\(sp\)
+ 20: 0000000d break
+ 24: afa20000 sw v0,0\(sp\)
+ 28: afa3fff8 sw v1,-8\(sp\)
+ 2c: 00000000 nop
+ 30: afa40008 sw a0,8\(sp\)
+ 34: 0000000d break
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-3.d b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-3.d
new file mode 100644
index 0000000..7e5e415
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-3.d
@@ -0,0 +1,57 @@
+#objdump: -dr
+#as: -mfix-24k -32
+#name: 24K: Triple Store (Double-word Check)
+#source: 24k-triple-stores-3.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+
+0+ <.*>:
+ 0: a3a2000b sb v0,11\(sp\)
+ 4: a3a3000b sb v1,11\(sp\)
+ 8: a3a40004 sb a0,4\(sp\)
+ c: 0000000d break
+ 10: a3a20000 sb v0,0\(sp\)
+ 14: a3a3000b sb v1,11\(sp\)
+ 18: a3a40005 sb a0,5\(sp\)
+ 1c: 0000000d break
+ 20: a3a20007 sb v0,7\(sp\)
+ 24: a3a3000b sb v1,11\(sp\)
+ 28: 00000000 nop
+ 2c: a3a40010 sb a0,16\(sp\)
+ 30: 0000000d break
+ 34: a1020000 sb v0,0\(t0\)
+ 38: a1030008 sb v1,8\(t0\)
+ 3c: 00000000 nop
+ 40: a1040009 sb a0,9\(t0\)
+ 44: 0000000d break
+ 48: a7a20000 sh v0,0\(sp\)
+ 4c: a7a3ffe1 sh v1,-31\(sp\)
+ 50: a7a4ffe2 sh a0,-30\(sp\)
+ 54: 0000000d break
+ 58: a7a20006 sh v0,6\(sp\)
+ 5c: a7a30008 sh v1,8\(sp\)
+ 60: 00000000 nop
+ 64: a7a40010 sh a0,16\(sp\)
+ 68: 0000000d break
+ 6c: a5020001 sh v0,1\(t0\)
+ 70: a5030003 sh v1,3\(t0\)
+ 74: 00000000 nop
+ 78: a504000b sh a0,11\(t0\)
+ 7c: 0000000d break
+ 80: afa20008 sw v0,8\(sp\)
+ 84: afa3fff8 sw v1,-8\(sp\)
+ 88: afa40008 sw a0,8\(sp\)
+ 8c: 0000000d break
+ 90: afa20004 sw v0,4\(sp\)
+ 94: afa30008 sw v1,8\(sp\)
+ 98: 00000000 nop
+ 9c: afa40010 sw a0,16\(sp\)
+ a0: 0000000d break
+ a4: ad020003 sw v0,3\(t0\)
+ a8: ad030007 sw v1,7\(t0\)
+ ac: 00000000 nop
+ b0: ad04000f sw a0,15\(t0\)
+ b4: 0000000d break
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-6.d b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-6.d
new file mode 100644
index 0000000..271f947
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@24k-triple-stores-6.d
@@ -0,0 +1,20 @@
+#objdump: -dr
+#as: -mfix-24k -32 -EB
+#name: 24K: Triple Store (Store Macro Check)
+#source: 24k-triple-stores-6.s
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+ <.*>:
+ 0: e7a00050 swc1 \$f0,80\(sp\)
+ 4: e7a20058 swc1 \$f2,88\(sp\)
+ 8: 00000000 nop
+ c: e7a40060 swc1 \$f4,96\(sp\)
+ 10: 0000000d break
+ 14: f7a00050 sdc1 \$f0,80\(sp\)
+ 18: f7a20058 sdc1 \$f2,88\(sp\)
+ 1c: 00000000 nop
+ 20: f7a40060 sdc1 \$f4,96\(sp\)
+ 24: 0000000d break
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@add.d b/gas/testsuite/gas/mips/mipsr6@add.d
new file mode 100644
index 0000000..65a5214
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@add.d
@@ -0,0 +1,12 @@
+#objdump: -dr --prefix-addresses
+#name: MIPS add
+#source: add.s
+#as: -32
+
+# Test the add macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> addiu a0,a0,1
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.l b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.l
new file mode 100644
index 0000000..2f3b6f8
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Warning: .gnu_attribute 4,1 is incompatible with `singlefloat'
+.*: Warning: .gnu_attribute 4,1 is incompatible with `gp=32 fp=64'
diff --git a/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.s b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.s
new file mode 100644
index 0000000..e985a56
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msingle-float.s
@@ -0,0 +1 @@
+.gnu_attribute 4,1
diff --git a/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.l b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.l
new file mode 100644
index 0000000..7e372d1
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Warning: .gnu_attribute 4,1 is incompatible with `softfloat'
+.*: Warning: .gnu_attribute 4,1 is incompatible with `gp=32 fp=64'
diff --git a/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.s b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.s
new file mode 100644
index 0000000..e985a56
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-1-msoft-float.s
@@ -0,0 +1 @@
+.gnu_attribute 4,1
diff --git a/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.l b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.l
new file mode 100644
index 0000000..b138323
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.l
@@ -0,0 +1,2 @@
+.*: Assembler messages:
+.*: Warning: .gnu_attribute 4,2 requires `singlefloat'
diff --git a/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.s b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.s
new file mode 100644
index 0000000..54ebf4e
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@attr-gnu-4-2-mdouble-float.s
@@ -0,0 +1 @@
+.gnu_attribute 4,2
diff --git a/gas/testsuite/gas/mips/mipsr6@beq.d b/gas/testsuite/gas/mips/mipsr6@beq.d
new file mode 100644
index 0000000..b5fec4c
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@beq.d
@@ -0,0 +1,41 @@
+#objdump: -dr --prefix-addresses -mmips:4000
+#name: MIPS beq
+#as: -32
+#source: beq.s
+
+# Test the beq macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> beq a0,a1,0+0000 <.*>
+[ ]*0: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> beqz a0,0+0008 <.*>
+[ ]*8: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> li at,1
+[0-9a-f]+ <[^>]*> beq a0,at,0+0014 <.*>
+[ ]*14: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> li at,0x8000
+[0-9a-f]+ <[^>]*> beq a0,at,0+0020 <.*>
+[ ]*20: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> li at,-32768
+[0-9a-f]+ <[^>]*> beq a0,at,0+002c <.*>
+[ ]*2c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> beq a0,at,0+0038 <.*>
+[ ]*38: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> beq a0,at,0+0048 <.*>
+[ ]*48: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bnez a0,0+0050 <.*>
+[ ]*50: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@bge.d b/gas/testsuite/gas/mips/mipsr6@bge.d
new file mode 100644
index 0000000..050bc1b
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@bge.d
@@ -0,0 +1,72 @@
+#objdump: -dr --prefix-addresses -mmips:4000
+#name: MIPS bge
+#as: -32
+#source: bge.s
+
+# Test the bge macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> slt at,a0,a1
+[0-9a-f]+ <[^>]*> beqz at,0+0004 <.*>
+[ ]*4: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bgez a0,0+000c <.*>
+[ ]*c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> blez a1,0+0014 <.*>
+[ ]*14: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bgez a0,0+001c <.*>
+[ ]*1c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bgtz a0,0+0024 <.*>
+[ ]*24: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slti at,a0,2
+[0-9a-f]+ <[^>]*> beqz at,0+0030 <.*>
+[ ]*30: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> li at,0x8000
+[0-9a-f]+ <[^>]*> slt at,a0,at
+[0-9a-f]+ <[^>]*> beqz at,0+0040 <.*>
+[ ]*40: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slti at,a0,-32768
+[0-9a-f]+ <[^>]*> beqz at,0+004c <.*>
+[ ]*4c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> slt at,a0,at
+[0-9a-f]+ <[^>]*> beqz at,0+005c <.*>
+[ ]*5c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> slt at,a0,at
+[0-9a-f]+ <[^>]*> beqz at,0+0070 <.*>
+[ ]*70: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slt at,a1,a0
+[0-9a-f]+ <[^>]*> bnez at,0+007c <.*>
+[ ]*7c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bgtz a0,0+0084 <.*>
+[ ]*84: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bltz a1,0+008c <.*>
+[ ]*8c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bgtz a0,0+0094 <.*>
+[ ]*94: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slt at,a0,a1
+[0-9a-f]+ <[^>]*> beqz at,0+00a0 <.*\+0xa0>
+[ ]*a0: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slt at,a1,a0
+[0-9a-f]+ <[^>]*> bnez at,0+00ac <.*\+0xac>
+[ ]*ac: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@bgeu.d b/gas/testsuite/gas/mips/mipsr6@bgeu.d
new file mode 100644
index 0000000..38bdfb1
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@bgeu.d
@@ -0,0 +1,63 @@
+#objdump: -dr --prefix-addresses -mmips:4000
+#name: MIPS bgeu
+#as: -32
+#source: bgeu.s
+
+# Test the bgeu macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> sltu at,a0,a1
+[0-9a-f]+ <[^>]*> beqz at,0+0004 <.*>
+[ ]*4: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> beq zero,a1,0+000c <.*>
+[ ]*c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bnez a0,0+0014 <.*>
+[ ]*14: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltiu at,a0,2
+[0-9a-f]+ <[^>]*> beqz at,0+0020 <.*>
+[ ]*20: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> li at,0x8000
+[0-9a-f]+ <[^>]*> sltu at,a0,at
+[0-9a-f]+ <[^>]*> beqz at,0+0030 <.*>
+[ ]*30: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltiu at,a0,-32768
+[0-9a-f]+ <[^>]*> beqz at,0+003c <.*>
+[ ]*3c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> sltu at,a0,at
+[0-9a-f]+ <[^>]*> beqz at,0+004c <.*>
+[ ]*4c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> sltu at,a0,at
+[0-9a-f]+ <[^>]*> beqz at,0+0060 <.*>
+[ ]*60: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltu at,a1,a0
+[0-9a-f]+ <[^>]*> bnez at,0+006c <.*>
+[ ]*6c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bnez a0,0+0074 <.*>
+[ ]*74: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bnez a0,0+007c <.*>
+[ ]*7c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltu at,a0,a1
+[0-9a-f]+ <[^>]*> beqz at,0+0088 <.*\+0x88>
+[ ]*88: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltu at,a1,a0
+[0-9a-f]+ <[^>]*> bnez at,0+0094 <.*\+0x94>
+[ ]*94: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@blt.d b/gas/testsuite/gas/mips/mipsr6@blt.d
new file mode 100644
index 0000000..0f056f6
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@blt.d
@@ -0,0 +1,72 @@
+#objdump: -dr --prefix-addresses -mmips:4000
+#name: MIPS blt
+#as: -32
+#source: blt.s
+
+# Test the blt macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> slt at,a0,a1
+[0-9a-f]+ <[^>]*> bnez at,0+0004 <.*>
+[ ]*4: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bltz a0,0+000c <.*>
+[ ]*c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bgtz a1,0+0014 <.*>
+[ ]*14: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bltz a0,0+001c <.*>
+[ ]*1c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> blez a0,0+0024 <.*>
+[ ]*24: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slti at,a0,2
+[0-9a-f]+ <[^>]*> bnez at,0+0030 <.*>
+[ ]*30: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> li at,0x8000
+[0-9a-f]+ <[^>]*> slt at,a0,at
+[0-9a-f]+ <[^>]*> bnez at,0+0040 <.*>
+[ ]*40: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slti at,a0,-32768
+[0-9a-f]+ <[^>]*> bnez at,0+004c <.*>
+[ ]*4c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> slt at,a0,at
+[0-9a-f]+ <[^>]*> bnez at,0+005c <.*>
+[ ]*5c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> slt at,a0,at
+[0-9a-f]+ <[^>]*> bnez at,0+0070 <.*>
+[ ]*70: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slt at,a1,a0
+[0-9a-f]+ <[^>]*> beqz at,0+007c <.*>
+[ ]*7c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> blez a0,0+0084 <.*>
+[ ]*84: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bgez a1,0+008c <.*>
+[ ]*8c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> blez a0,0+0094 <.*>
+[ ]*94: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slt at,a0,a1
+[0-9a-f]+ <[^>]*> bnez at,0+00a0 <.*\+0xa0>
+[ ]*a0: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> slt at,a1,a0
+[0-9a-f]+ <[^>]*> beqz at,0+00ac <.*\+0xac>
+[ ]*ac: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@bltu.d b/gas/testsuite/gas/mips/mipsr6@bltu.d
new file mode 100644
index 0000000..24ac4e2
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@bltu.d
@@ -0,0 +1,63 @@
+#objdump: -dr --prefix-addresses -mmips:4000
+#name: MIPS bltu
+#as: -32
+#source: bltu.s
+
+# Test the bltu macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> sltu at,a0,a1
+[0-9a-f]+ <[^>]*> bnez at,0+0004 <.*>
+[ ]*4: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> bne zero,a1,0+000c <.*>
+[ ]*c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> beqz a0,0+0014 <.*>
+[ ]*14: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltiu at,a0,2
+[0-9a-f]+ <[^>]*> bnez at,0+0020 <.*>
+[ ]*20: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> li at,0x8000
+[0-9a-f]+ <[^>]*> sltu at,a0,at
+[0-9a-f]+ <[^>]*> bnez at,0+0030 <.*>
+[ ]*30: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltiu at,a0,-32768
+[0-9a-f]+ <[^>]*> bnez at,0+003c <.*>
+[ ]*3c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> sltu at,a0,at
+[0-9a-f]+ <[^>]*> bnez at,0+004c <.*>
+[ ]*4c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> sltu at,a0,at
+[0-9a-f]+ <[^>]*> bnez at,0+0060 <.*>
+[ ]*60: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltu at,a1,a0
+[0-9a-f]+ <[^>]*> beqz at,0+006c <.*>
+[ ]*6c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> beqz a0,0+0074 <.*>
+[ ]*74: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> beqz a0,0+007c <.*>
+[ ]*7c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltu at,a0,a1
+[0-9a-f]+ <[^>]*> bnez at,0+0088 <.*\+0x88>
+[ ]*88: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> sltu at,a1,a0
+[0-9a-f]+ <[^>]*> beqz at,0+0094 <.*\+0x94>
+[ ]*94: .*16 external_label
+[0-9a-f]+ <[^>]*> nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@branch-misc-1.d b/gas/testsuite/gas/mips/mipsr6@branch-misc-1.d
new file mode 100644
index 0000000..11f2b71
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@branch-misc-1.d
@@ -0,0 +1,35 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS branch-misc-1
+#as: -32
+#source: branch-misc-1.s
+
+# Test the branches to local symbols in current file.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+ \.\.\.
+ \.\.\.
+ \.\.\.
+0+003c <[^>]*> 0411ffff bal 0000003c <[^>]*>
+[ ]*3c: .*R_MIPS_PC16 l1
+0+0040 <[^>]*> 00000000 nop
+0+0044 <[^>]*> 0411ffff bal 00000044 <[^>]*>
+[ ]*44: .*R_MIPS_PC16 l2
+0+0048 <[^>]*> 00000000 nop
+0+004c <[^>]*> 0411ffff bal 0000004c <[^>]*>
+[ ]*4c: .*R_MIPS_PC16 l3
+0+0050 <[^>]*> 00000000 nop
+0+0054 <[^>]*> 0411ffff bal 00000054 <[^>]*>
+[ ]*54: .*R_MIPS_PC16 l4
+0+0058 <[^>]*> 00000000 nop
+0+005c <[^>]*> 0411ffff bal 0000005c <[^>]*>
+[ ]*5c: .*R_MIPS_PC16 l5
+0+0060 <[^>]*> 00000000 nop
+0+0064 <[^>]*> 0411ffff bal 00000064 <[^>]*>
+[ ]*64: .*R_MIPS_PC16 l6
+0+0068 <[^>]*> 00000000 nop
+ \.\.\.
+ \.\.\.
+ \.\.\.
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@branch-misc-2-64.d b/gas/testsuite/gas/mips/mipsr6@branch-misc-2-64.d
new file mode 100644
index 0000000..44ffa7c
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@branch-misc-2-64.d
@@ -0,0 +1,62 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS branch-misc-2-64
+#source: branch-misc-2.s
+#as: -64 -non_shared
+
+# Test the backward branches to globals symbols in current file.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+ \.\.\.
+ \.\.\.
+ \.\.\.
+0+003c <[^>]*> 04110000 bal 0000000000000040 <x\+0x4>
+[ ]*3c: R_MIPS_PC16 g1-0x4
+[ ]*3c: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3c: R_MIPS_NONE \*ABS\*-0x4
+0+0040 <[^>]*> 00000000 nop
+0+0044 <[^>]*> 04110000 bal 0000000000000048 <x\+0xc>
+[ ]*44: R_MIPS_PC16 g2-0x4
+[ ]*44: R_MIPS_NONE \*ABS\*-0x4
+[ ]*44: R_MIPS_NONE \*ABS\*-0x4
+0+0048 <[^>]*> 00000000 nop
+0+004c <[^>]*> 04110000 bal 0000000000000050 <x\+0x14>
+[ ]*4c: R_MIPS_PC16 g3-0x4
+[ ]*4c: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4c: R_MIPS_NONE \*ABS\*-0x4
+0+0050 <[^>]*> 00000000 nop
+0+0054 <[^>]*> 04110000 bal 0000000000000058 <x\+0x1c>
+[ ]*54: R_MIPS_PC16 g4-0x4
+[ ]*54: R_MIPS_NONE \*ABS\*-0x4
+[ ]*54: R_MIPS_NONE \*ABS\*-0x4
+0+0058 <[^>]*> 00000000 nop
+0+005c <[^>]*> 04110000 bal 0000000000000060 <x\+0x24>
+[ ]*5c: R_MIPS_PC16 g5-0x4
+[ ]*5c: R_MIPS_NONE \*ABS\*-0x4
+[ ]*5c: R_MIPS_NONE \*ABS\*-0x4
+0+0060 <[^>]*> 00000000 nop
+0+0064 <[^>]*> 04110000 bal 0000000000000068 <x\+0x2c>
+[ ]*64: R_MIPS_PC16 g6-0x4
+[ ]*64: R_MIPS_NONE \*ABS\*-0x4
+[ ]*64: R_MIPS_NONE \*ABS\*-0x4
+0+0068 <[^>]*> 00000000 nop
+ \.\.\.
+ \.\.\.
+ \.\.\.
+0+00a8 <[^>]*> 10000000 b 00000000000000ac <g6\+0x4>
+[ ]*a8: R_MIPS_PC16 x1-0x4
+[ ]*a8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*a8: R_MIPS_NONE \*ABS\*-0x4
+0+00ac <[^>]*> 00000000 nop
+0+00b0 <[^>]*> 10000000 b 00000000000000b4 <g6\+0xc>
+[ ]*b0: R_MIPS_PC16 x2-0x4
+[ ]*b0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*b0: R_MIPS_NONE \*ABS\*-0x4
+0+00b4 <[^>]*> 00000000 nop
+0+00b8 <[^>]*> 10000000 b 00000000000000bc <g6\+0x14>
+[ ]*b8: R_MIPS_PC16 \.Ldata-0x4
+[ ]*b8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*b8: R_MIPS_NONE \*ABS\*-0x4
+0+00bc <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@branch-misc-2pic-64.d b/gas/testsuite/gas/mips/mipsr6@branch-misc-2pic-64.d
new file mode 100644
index 0000000..5ff980e
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@branch-misc-2pic-64.d
@@ -0,0 +1,62 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS branch-misc-2pic-64
+#source: branch-misc-2.s
+#as: -64 -call_shared
+
+# Test the backward branches to globals symbols in current file.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+ \.\.\.
+ \.\.\.
+ \.\.\.
+0+003c <[^>]*> 04110000 bal 0000000000000040 <x\+0x4>
+[ ]*3c: R_MIPS_PC16 g1-0x4
+[ ]*3c: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3c: R_MIPS_NONE \*ABS\*-0x4
+0+0040 <[^>]*> 00000000 nop
+0+0044 <[^>]*> 04110000 bal 0000000000000048 <x\+0xc>
+[ ]*44: R_MIPS_PC16 g2-0x4
+[ ]*44: R_MIPS_NONE \*ABS\*-0x4
+[ ]*44: R_MIPS_NONE \*ABS\*-0x4
+0+0048 <[^>]*> 00000000 nop
+0+004c <[^>]*> 04110000 bal 0000000000000050 <x\+0x14>
+[ ]*4c: R_MIPS_PC16 g3-0x4
+[ ]*4c: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4c: R_MIPS_NONE \*ABS\*-0x4
+0+0050 <[^>]*> 00000000 nop
+0+0054 <[^>]*> 04110000 bal 0000000000000058 <x\+0x1c>
+[ ]*54: R_MIPS_PC16 g4-0x4
+[ ]*54: R_MIPS_NONE \*ABS\*-0x4
+[ ]*54: R_MIPS_NONE \*ABS\*-0x4
+0+0058 <[^>]*> 00000000 nop
+0+005c <[^>]*> 04110000 bal 0000000000000060 <x\+0x24>
+[ ]*5c: R_MIPS_PC16 g5-0x4
+[ ]*5c: R_MIPS_NONE \*ABS\*-0x4
+[ ]*5c: R_MIPS_NONE \*ABS\*-0x4
+0+0060 <[^>]*> 00000000 nop
+0+0064 <[^>]*> 04110000 bal 0000000000000068 <x\+0x2c>
+[ ]*64: R_MIPS_PC16 g6-0x4
+[ ]*64: R_MIPS_NONE \*ABS\*-0x4
+[ ]*64: R_MIPS_NONE \*ABS\*-0x4
+0+0068 <[^>]*> 00000000 nop
+ \.\.\.
+ \.\.\.
+ \.\.\.
+0+00a8 <[^>]*> 10000000 b 00000000000000ac <g6\+0x4>
+[ ]*a8: R_MIPS_PC16 x1-0x4
+[ ]*a8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*a8: R_MIPS_NONE \*ABS\*-0x4
+0+00ac <[^>]*> 00000000 nop
+0+00b0 <[^>]*> 10000000 b 00000000000000b4 <g6\+0xc>
+[ ]*b0: R_MIPS_PC16 x2-0x4
+[ ]*b0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*b0: R_MIPS_NONE \*ABS\*-0x4
+0+00b4 <[^>]*> 00000000 nop
+0+00b8 <[^>]*> 10000000 b 00000000000000bc <g6\+0x14>
+[ ]*b8: R_MIPS_PC16 \.Ldata-0x4
+[ ]*b8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*b8: R_MIPS_NONE \*ABS\*-0x4
+0+00bc <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@branch-misc-4-64.d b/gas/testsuite/gas/mips/mipsr6@branch-misc-4-64.d
new file mode 100644
index 0000000..e3cd75c
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@branch-misc-4-64.d
@@ -0,0 +1,35 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS branch-misc-4-64
+#as: -64
+#source: branch-misc-4.s
+
+# Verify PC-relative relocations do not overflow.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+ \.\.\.
+[0-9a-f]+ <[^>]*> 10000000 b [0-9a-f]+ <foo\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MIPS_PC16 bar\-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\-0x4
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 10000000 b [0-9a-f]+ <\.Lfoo\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MIPS_PC16 \.Lbar-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*-0x4
+[0-9a-f]+ <[^>]*> 00000000 nop
+ \.\.\.
+
+Disassembly of section \.init:
+[0-9a-f]+ <[^>]*> 10000000 b [0-9a-f]+ <bar\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MIPS_PC16 foo\-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\-0x4
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 10000000 b [0-9a-f]+ <\.Lbar\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MIPS_PC16 \.Lfoo-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*-0x4
+[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*-0x4
+[0-9a-f]+ <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@cache.d b/gas/testsuite/gas/mips/mipsr6@cache.d
new file mode 100644
index 0000000..803f5de
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@cache.d
@@ -0,0 +1,13 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS CACHE instruction
+#source: cache.s
+#as: -32
+
+# Check MIPS CACHE instruction assembly.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 7c457fa5 cache 0x5,255\(v0\)
+[0-9a-f]+ <[^>]*> 7c658025 cache 0x5,-256\(v1\)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@eva.d b/gas/testsuite/gas/mips/mipsr6@eva.d
new file mode 100644
index 0000000..79b6030
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@eva.d
@@ -0,0 +1,952 @@
+#objdump: -dr -Mgpr-names=numeric --show-raw-insn
+#name: MIPS EVA
+#source: eva.s
+#as: -meva -32
+
+# Test the EVA instructions
+
+.*: +file format .*mips.*
+
+
+Disassembly of section \.text:
+
+[ 0-9a-f]+ <test_eva>:
+[ 0-9a-f]+: 7c408028 lbue \$0,-256\(\$2\)
+[ 0-9a-f]+: 7c038028 lbue \$3,-256\(\$0\)
+[ 0-9a-f]+: 7ca47fa8 lbue \$4,255\(\$5\)
+[ 0-9a-f]+: 7c067fa8 lbue \$6,255\(\$0\)
+[ 0-9a-f]+: 2501feff addiu \$1,\$8,-257
+[ 0-9a-f]+: 7c270028 lbue \$7,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c290028 lbue \$9,0\(\$1\)
+[ 0-9a-f]+: 25610100 addiu \$1,\$11,256
+[ 0-9a-f]+: 7c2a0028 lbue \$10,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c2c0028 lbue \$12,0\(\$1\)
+[ 0-9a-f]+: 25c1fe00 addiu \$1,\$14,-512
+[ 0-9a-f]+: 7c2d0028 lbue \$13,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c2f0028 lbue \$15,0\(\$1\)
+[ 0-9a-f]+: 262101ff addiu \$1,\$17,511
+[ 0-9a-f]+: 7c300028 lbue \$16,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c320028 lbue \$18,0\(\$1\)
+[ 0-9a-f]+: 2681fc00 addiu \$1,\$20,-1024
+[ 0-9a-f]+: 7c330028 lbue \$19,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c350028 lbue \$21,0\(\$1\)
+[ 0-9a-f]+: 26e103ff addiu \$1,\$23,1023
+[ 0-9a-f]+: 7c360028 lbue \$22,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c380028 lbue \$24,0\(\$1\)
+[ 0-9a-f]+: 2741f800 addiu \$1,\$26,-2048
+[ 0-9a-f]+: 7c390028 lbue \$25,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c3b0028 lbue \$27,0\(\$1\)
+[ 0-9a-f]+: 27a107ff addiu \$1,\$29,2047
+[ 0-9a-f]+: 7c3c0028 lbue \$28,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c3e0028 lbue \$30,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c3f0028 lbue \$31,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c220028 lbue \$2,0\(\$1\)
+[ 0-9a-f]+: 24810fff addiu \$1,\$4,4095
+[ 0-9a-f]+: 7c230028 lbue \$3,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c250028 lbue \$5,0\(\$1\)
+[ 0-9a-f]+: 24e18000 addiu \$1,\$7,-32768
+[ 0-9a-f]+: 7c260028 lbue \$6,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c280028 lbue \$8,0\(\$1\)
+[ 0-9a-f]+: 25417fff addiu \$1,\$10,32767
+[ 0-9a-f]+: 7c290028 lbue \$9,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c2b0028 lbue \$11,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 002d0821 addu \$1,\$1,\$13
+[ 0-9a-f]+: 7c2cffa8 lbue \$12,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c2effa8 lbue \$14,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00300821 addu \$1,\$1,\$16
+[ 0-9a-f]+: 7c2f0028 lbue \$15,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c310028 lbue \$17,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00330821 addu \$1,\$1,\$19
+[ 0-9a-f]+: 7c320028 lbue \$18,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c340028 lbue \$20,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00360821 addu \$1,\$1,\$22
+[ 0-9a-f]+: 7c35ffa8 lbue \$21,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c37ffa8 lbue \$23,-1\(\$1\)
+[ 0-9a-f]+: 7f380028 lbue \$24,0\(\$25\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c3a0028 lbue \$26,0\(\$1\)
+[ 0-9a-f]+: 7f9b8029 lhue \$27,-256\(\$28\)
+[ 0-9a-f]+: 7c1d8029 lhue \$29,-256\(\$0\)
+[ 0-9a-f]+: 7ffe7fa9 lhue \$30,255\(\$31\)
+[ 0-9a-f]+: 7c007fa9 lhue \$0,255\(\$0\)
+[ 0-9a-f]+: 2461feff addiu \$1,\$3,-257
+[ 0-9a-f]+: 7c220029 lhue \$2,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c240029 lhue \$4,0\(\$1\)
+[ 0-9a-f]+: 24c10100 addiu \$1,\$6,256
+[ 0-9a-f]+: 7c250029 lhue \$5,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c270029 lhue \$7,0\(\$1\)
+[ 0-9a-f]+: 2521fe00 addiu \$1,\$9,-512
+[ 0-9a-f]+: 7c280029 lhue \$8,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c2a0029 lhue \$10,0\(\$1\)
+[ 0-9a-f]+: 258101ff addiu \$1,\$12,511
+[ 0-9a-f]+: 7c2b0029 lhue \$11,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c2d0029 lhue \$13,0\(\$1\)
+[ 0-9a-f]+: 25e1fc00 addiu \$1,\$15,-1024
+[ 0-9a-f]+: 7c2e0029 lhue \$14,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c300029 lhue \$16,0\(\$1\)
+[ 0-9a-f]+: 264103ff addiu \$1,\$18,1023
+[ 0-9a-f]+: 7c310029 lhue \$17,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c330029 lhue \$19,0\(\$1\)
+[ 0-9a-f]+: 26a1f800 addiu \$1,\$21,-2048
+[ 0-9a-f]+: 7c340029 lhue \$20,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c360029 lhue \$22,0\(\$1\)
+[ 0-9a-f]+: 270107ff addiu \$1,\$24,2047
+[ 0-9a-f]+: 7c370029 lhue \$23,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c390029 lhue \$25,0\(\$1\)
+[ 0-9a-f]+: 2761f000 addiu \$1,\$27,-4096
+[ 0-9a-f]+: 7c3a0029 lhue \$26,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c3c0029 lhue \$28,0\(\$1\)
+[ 0-9a-f]+: 27c10fff addiu \$1,\$30,4095
+[ 0-9a-f]+: 7c3d0029 lhue \$29,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c3f0029 lhue \$31,0\(\$1\)
+[ 0-9a-f]+: 24418000 addiu \$1,\$2,-32768
+[ 0-9a-f]+: 7c200029 lhue \$0,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c230029 lhue \$3,0\(\$1\)
+[ 0-9a-f]+: 24a17fff addiu \$1,\$5,32767
+[ 0-9a-f]+: 7c240029 lhue \$4,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c260029 lhue \$6,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00280821 addu \$1,\$1,\$8
+[ 0-9a-f]+: 7c27ffa9 lhue \$7,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c29ffa9 lhue \$9,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 002b0821 addu \$1,\$1,\$11
+[ 0-9a-f]+: 7c2a0029 lhue \$10,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c2c0029 lhue \$12,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 002e0821 addu \$1,\$1,\$14
+[ 0-9a-f]+: 7c2d0029 lhue \$13,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2f0029 lhue \$15,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00310821 addu \$1,\$1,\$17
+[ 0-9a-f]+: 7c30ffa9 lhue \$16,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c32ffa9 lhue \$18,-1\(\$1\)
+[ 0-9a-f]+: 7e930029 lhue \$19,0\(\$20\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c350029 lhue \$21,0\(\$1\)
+[ 0-9a-f]+: 7ef6802c lbe \$22,-256\(\$23\)
+[ 0-9a-f]+: 7c18802c lbe \$24,-256\(\$0\)
+[ 0-9a-f]+: 7f597fac lbe \$25,255\(\$26\)
+[ 0-9a-f]+: 7c1b7fac lbe \$27,255\(\$0\)
+[ 0-9a-f]+: 27a1feff addiu \$1,\$29,-257
+[ 0-9a-f]+: 7c3c002c lbe \$28,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c3e002c lbe \$30,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c3f002c lbe \$31,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c22002c lbe \$2,0\(\$1\)
+[ 0-9a-f]+: 2481fe00 addiu \$1,\$4,-512
+[ 0-9a-f]+: 7c23002c lbe \$3,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c25002c lbe \$5,0\(\$1\)
+[ 0-9a-f]+: 24e101ff addiu \$1,\$7,511
+[ 0-9a-f]+: 7c26002c lbe \$6,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c28002c lbe \$8,0\(\$1\)
+[ 0-9a-f]+: 2541fc00 addiu \$1,\$10,-1024
+[ 0-9a-f]+: 7c29002c lbe \$9,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c2b002c lbe \$11,0\(\$1\)
+[ 0-9a-f]+: 25a103ff addiu \$1,\$13,1023
+[ 0-9a-f]+: 7c2c002c lbe \$12,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c2e002c lbe \$14,0\(\$1\)
+[ 0-9a-f]+: 2601f800 addiu \$1,\$16,-2048
+[ 0-9a-f]+: 7c2f002c lbe \$15,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c31002c lbe \$17,0\(\$1\)
+[ 0-9a-f]+: 266107ff addiu \$1,\$19,2047
+[ 0-9a-f]+: 7c32002c lbe \$18,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c34002c lbe \$20,0\(\$1\)
+[ 0-9a-f]+: 26c1f000 addiu \$1,\$22,-4096
+[ 0-9a-f]+: 7c35002c lbe \$21,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c37002c lbe \$23,0\(\$1\)
+[ 0-9a-f]+: 27210fff addiu \$1,\$25,4095
+[ 0-9a-f]+: 7c38002c lbe \$24,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c3a002c lbe \$26,0\(\$1\)
+[ 0-9a-f]+: 27818000 addiu \$1,\$28,-32768
+[ 0-9a-f]+: 7c3b002c lbe \$27,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c3d002c lbe \$29,0\(\$1\)
+[ 0-9a-f]+: 27e17fff addiu \$1,\$31,32767
+[ 0-9a-f]+: 7c3e002c lbe \$30,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c20002c lbe \$0,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00230821 addu \$1,\$1,\$3
+[ 0-9a-f]+: 7c22ffac lbe \$2,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c24ffac lbe \$4,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00260821 addu \$1,\$1,\$6
+[ 0-9a-f]+: 7c25002c lbe \$5,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c27002c lbe \$7,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00290821 addu \$1,\$1,\$9
+[ 0-9a-f]+: 7c28002c lbe \$8,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2a002c lbe \$10,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 002c0821 addu \$1,\$1,\$12
+[ 0-9a-f]+: 7c2bffac lbe \$11,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2dffac lbe \$13,-1\(\$1\)
+[ 0-9a-f]+: 7dee002c lbe \$14,0\(\$15\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c30002c lbe \$16,0\(\$1\)
+[ 0-9a-f]+: 7e51802d lhe \$17,-256\(\$18\)
+[ 0-9a-f]+: 7c13802d lhe \$19,-256\(\$0\)
+[ 0-9a-f]+: 7eb47fad lhe \$20,255\(\$21\)
+[ 0-9a-f]+: 7c167fad lhe \$22,255\(\$0\)
+[ 0-9a-f]+: 2701feff addiu \$1,\$24,-257
+[ 0-9a-f]+: 7c37002d lhe \$23,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c39002d lhe \$25,0\(\$1\)
+[ 0-9a-f]+: 27610100 addiu \$1,\$27,256
+[ 0-9a-f]+: 7c3a002d lhe \$26,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c3c002d lhe \$28,0\(\$1\)
+[ 0-9a-f]+: 27c1fe00 addiu \$1,\$30,-512
+[ 0-9a-f]+: 7c3d002d lhe \$29,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c3f002d lhe \$31,0\(\$1\)
+[ 0-9a-f]+: 244101ff addiu \$1,\$2,511
+[ 0-9a-f]+: 7c20002d lhe \$0,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c23002d lhe \$3,0\(\$1\)
+[ 0-9a-f]+: 24a1fc00 addiu \$1,\$5,-1024
+[ 0-9a-f]+: 7c24002d lhe \$4,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c26002d lhe \$6,0\(\$1\)
+[ 0-9a-f]+: 250103ff addiu \$1,\$8,1023
+[ 0-9a-f]+: 7c27002d lhe \$7,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c29002d lhe \$9,0\(\$1\)
+[ 0-9a-f]+: 2561f800 addiu \$1,\$11,-2048
+[ 0-9a-f]+: 7c2a002d lhe \$10,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c2c002d lhe \$12,0\(\$1\)
+[ 0-9a-f]+: 25c107ff addiu \$1,\$14,2047
+[ 0-9a-f]+: 7c2d002d lhe \$13,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c2f002d lhe \$15,0\(\$1\)
+[ 0-9a-f]+: 2621f000 addiu \$1,\$17,-4096
+[ 0-9a-f]+: 7c30002d lhe \$16,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c32002d lhe \$18,0\(\$1\)
+[ 0-9a-f]+: 26810fff addiu \$1,\$20,4095
+[ 0-9a-f]+: 7c33002d lhe \$19,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c35002d lhe \$21,0\(\$1\)
+[ 0-9a-f]+: 26e18000 addiu \$1,\$23,-32768
+[ 0-9a-f]+: 7c36002d lhe \$22,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c38002d lhe \$24,0\(\$1\)
+[ 0-9a-f]+: 27417fff addiu \$1,\$26,32767
+[ 0-9a-f]+: 7c39002d lhe \$25,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c3b002d lhe \$27,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 003d0821 addu \$1,\$1,\$29
+[ 0-9a-f]+: 7c3cffad lhe \$28,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c3effad lhe \$30,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c3f002d lhe \$31,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c22002d lhe \$2,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00240821 addu \$1,\$1,\$4
+[ 0-9a-f]+: 7c23002d lhe \$3,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c25002d lhe \$5,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00270821 addu \$1,\$1,\$7
+[ 0-9a-f]+: 7c26ffad lhe \$6,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c28ffad lhe \$8,-1\(\$1\)
+[ 0-9a-f]+: 7d49002d lhe \$9,0\(\$10\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c2b002d lhe \$11,0\(\$1\)
+[ 0-9a-f]+: 7dac802e lle \$12,-256\(\$13\)
+[ 0-9a-f]+: 7c0e802e lle \$14,-256\(\$0\)
+[ 0-9a-f]+: 7e0f7fae lle \$15,255\(\$16\)
+[ 0-9a-f]+: 7c117fae lle \$17,255\(\$0\)
+[ 0-9a-f]+: 2661feff addiu \$1,\$19,-257
+[ 0-9a-f]+: 7c32002e lle \$18,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c34002e lle \$20,0\(\$1\)
+[ 0-9a-f]+: 26c10100 addiu \$1,\$22,256
+[ 0-9a-f]+: 7c35002e lle \$21,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c37002e lle \$23,0\(\$1\)
+[ 0-9a-f]+: 2721fe00 addiu \$1,\$25,-512
+[ 0-9a-f]+: 7c38002e lle \$24,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c3a002e lle \$26,0\(\$1\)
+[ 0-9a-f]+: 278101ff addiu \$1,\$28,511
+[ 0-9a-f]+: 7c3b002e lle \$27,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c3d002e lle \$29,0\(\$1\)
+[ 0-9a-f]+: 27e1fc00 addiu \$1,\$31,-1024
+[ 0-9a-f]+: 7c3e002e lle \$30,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c20002e lle \$0,0\(\$1\)
+[ 0-9a-f]+: 246103ff addiu \$1,\$3,1023
+[ 0-9a-f]+: 7c22002e lle \$2,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c24002e lle \$4,0\(\$1\)
+[ 0-9a-f]+: 24c1f800 addiu \$1,\$6,-2048
+[ 0-9a-f]+: 7c25002e lle \$5,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c27002e lle \$7,0\(\$1\)
+[ 0-9a-f]+: 252107ff addiu \$1,\$9,2047
+[ 0-9a-f]+: 7c28002e lle \$8,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c2a002e lle \$10,0\(\$1\)
+[ 0-9a-f]+: 2581f000 addiu \$1,\$12,-4096
+[ 0-9a-f]+: 7c2b002e lle \$11,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c2d002e lle \$13,0\(\$1\)
+[ 0-9a-f]+: 25e10fff addiu \$1,\$15,4095
+[ 0-9a-f]+: 7c2e002e lle \$14,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c30002e lle \$16,0\(\$1\)
+[ 0-9a-f]+: 26418000 addiu \$1,\$18,-32768
+[ 0-9a-f]+: 7c31002e lle \$17,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c33002e lle \$19,0\(\$1\)
+[ 0-9a-f]+: 26a17fff addiu \$1,\$21,32767
+[ 0-9a-f]+: 7c34002e lle \$20,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c36002e lle \$22,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00380821 addu \$1,\$1,\$24
+[ 0-9a-f]+: 7c37ffae lle \$23,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c39ffae lle \$25,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 003b0821 addu \$1,\$1,\$27
+[ 0-9a-f]+: 7c3a002e lle \$26,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c3c002e lle \$28,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 003e0821 addu \$1,\$1,\$30
+[ 0-9a-f]+: 7c3d002e lle \$29,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c3f002e lle \$31,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00220821 addu \$1,\$1,\$2
+[ 0-9a-f]+: 7c20ffae lle \$0,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c23ffae lle \$3,-1\(\$1\)
+[ 0-9a-f]+: 7ca4002e lle \$4,0\(\$5\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c26002e lle \$6,0\(\$1\)
+[ 0-9a-f]+: 7d07802f lwe \$7,-256\(\$8\)
+[ 0-9a-f]+: 7c09802f lwe \$9,-256\(\$0\)
+[ 0-9a-f]+: 7d6a7faf lwe \$10,255\(\$11\)
+[ 0-9a-f]+: 7c0c7faf lwe \$12,255\(\$0\)
+[ 0-9a-f]+: 25c1feff addiu \$1,\$14,-257
+[ 0-9a-f]+: 7c2d002f lwe \$13,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c2f002f lwe \$15,0\(\$1\)
+[ 0-9a-f]+: 26210100 addiu \$1,\$17,256
+[ 0-9a-f]+: 7c30002f lwe \$16,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c32002f lwe \$18,0\(\$1\)
+[ 0-9a-f]+: 2681fe00 addiu \$1,\$20,-512
+[ 0-9a-f]+: 7c33002f lwe \$19,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c35002f lwe \$21,0\(\$1\)
+[ 0-9a-f]+: 26e101ff addiu \$1,\$23,511
+[ 0-9a-f]+: 7c36002f lwe \$22,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c38002f lwe \$24,0\(\$1\)
+[ 0-9a-f]+: 2741fc00 addiu \$1,\$26,-1024
+[ 0-9a-f]+: 7c39002f lwe \$25,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c3b002f lwe \$27,0\(\$1\)
+[ 0-9a-f]+: 27a103ff addiu \$1,\$29,1023
+[ 0-9a-f]+: 7c3c002f lwe \$28,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c3e002f lwe \$30,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c3f002f lwe \$31,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c22002f lwe \$2,0\(\$1\)
+[ 0-9a-f]+: 248107ff addiu \$1,\$4,2047
+[ 0-9a-f]+: 7c23002f lwe \$3,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c25002f lwe \$5,0\(\$1\)
+[ 0-9a-f]+: 24e1f000 addiu \$1,\$7,-4096
+[ 0-9a-f]+: 7c26002f lwe \$6,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c28002f lwe \$8,0\(\$1\)
+[ 0-9a-f]+: 25410fff addiu \$1,\$10,4095
+[ 0-9a-f]+: 7c29002f lwe \$9,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c2b002f lwe \$11,0\(\$1\)
+[ 0-9a-f]+: 25a18000 addiu \$1,\$13,-32768
+[ 0-9a-f]+: 7c2c002f lwe \$12,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c2e002f lwe \$14,0\(\$1\)
+[ 0-9a-f]+: 26017fff addiu \$1,\$16,32767
+[ 0-9a-f]+: 7c2f002f lwe \$15,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c31002f lwe \$17,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00330821 addu \$1,\$1,\$19
+[ 0-9a-f]+: 7c32ffaf lwe \$18,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c34ffaf lwe \$20,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00360821 addu \$1,\$1,\$22
+[ 0-9a-f]+: 7c35002f lwe \$21,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c37002f lwe \$23,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00390821 addu \$1,\$1,\$25
+[ 0-9a-f]+: 7c38002f lwe \$24,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c3a002f lwe \$26,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 003c0821 addu \$1,\$1,\$28
+[ 0-9a-f]+: 7c3bffaf lwe \$27,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c3dffaf lwe \$29,-1\(\$1\)
+[ 0-9a-f]+: 7ffe002f lwe \$30,0\(\$31\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c20002f lwe \$0,0\(\$1\)
+[ 0-9a-f]+: 7f17801c sbe \$23,-256\(\$24\)
+[ 0-9a-f]+: 7c19801c sbe \$25,-256\(\$0\)
+[ 0-9a-f]+: 7f7a7f9c sbe \$26,255\(\$27\)
+[ 0-9a-f]+: 7c1c7f9c sbe \$28,255\(\$0\)
+[ 0-9a-f]+: 27c1feff addiu \$1,\$30,-257
+[ 0-9a-f]+: 7c3d001c sbe \$29,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c3f001c sbe \$31,0\(\$1\)
+[ 0-9a-f]+: 24410100 addiu \$1,\$2,256
+[ 0-9a-f]+: 7c20001c sbe \$0,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c23001c sbe \$3,0\(\$1\)
+[ 0-9a-f]+: 24a1fe00 addiu \$1,\$5,-512
+[ 0-9a-f]+: 7c24001c sbe \$4,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c26001c sbe \$6,0\(\$1\)
+[ 0-9a-f]+: 250101ff addiu \$1,\$8,511
+[ 0-9a-f]+: 7c27001c sbe \$7,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c29001c sbe \$9,0\(\$1\)
+[ 0-9a-f]+: 2561fc00 addiu \$1,\$11,-1024
+[ 0-9a-f]+: 7c2a001c sbe \$10,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c2c001c sbe \$12,0\(\$1\)
+[ 0-9a-f]+: 25c103ff addiu \$1,\$14,1023
+[ 0-9a-f]+: 7c2d001c sbe \$13,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c2f001c sbe \$15,0\(\$1\)
+[ 0-9a-f]+: 2621f800 addiu \$1,\$17,-2048
+[ 0-9a-f]+: 7c30001c sbe \$16,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c32001c sbe \$18,0\(\$1\)
+[ 0-9a-f]+: 268107ff addiu \$1,\$20,2047
+[ 0-9a-f]+: 7c33001c sbe \$19,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c35001c sbe \$21,0\(\$1\)
+[ 0-9a-f]+: 26e1f000 addiu \$1,\$23,-4096
+[ 0-9a-f]+: 7c36001c sbe \$22,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c38001c sbe \$24,0\(\$1\)
+[ 0-9a-f]+: 27410fff addiu \$1,\$26,4095
+[ 0-9a-f]+: 7c39001c sbe \$25,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c3b001c sbe \$27,0\(\$1\)
+[ 0-9a-f]+: 27a18000 addiu \$1,\$29,-32768
+[ 0-9a-f]+: 7c3c001c sbe \$28,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c3e001c sbe \$30,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c3f001c sbe \$31,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c22001c sbe \$2,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00240821 addu \$1,\$1,\$4
+[ 0-9a-f]+: 7c23ff9c sbe \$3,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c25ff9c sbe \$5,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00270821 addu \$1,\$1,\$7
+[ 0-9a-f]+: 7c26001c sbe \$6,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c28001c sbe \$8,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 002a0821 addu \$1,\$1,\$10
+[ 0-9a-f]+: 7c29001c sbe \$9,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2b001c sbe \$11,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 002d0821 addu \$1,\$1,\$13
+[ 0-9a-f]+: 7c2cff9c sbe \$12,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2eff9c sbe \$14,-1\(\$1\)
+[ 0-9a-f]+: 7e0f001c sbe \$15,0\(\$16\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c31001c sbe \$17,0\(\$1\)
+[ 0-9a-f]+: 7e72801e sce \$18,-256\(\$19\)
+[ 0-9a-f]+: 7c14801e sce \$20,-256\(\$0\)
+[ 0-9a-f]+: 7ed57f9e sce \$21,255\(\$22\)
+[ 0-9a-f]+: 7c177f9e sce \$23,255\(\$0\)
+[ 0-9a-f]+: 2721feff addiu \$1,\$25,-257
+[ 0-9a-f]+: 7c38001e sce \$24,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c3a001e sce \$26,0\(\$1\)
+[ 0-9a-f]+: 27810100 addiu \$1,\$28,256
+[ 0-9a-f]+: 7c3b001e sce \$27,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c3d001e sce \$29,0\(\$1\)
+[ 0-9a-f]+: 27e1fe00 addiu \$1,\$31,-512
+[ 0-9a-f]+: 7c3e001e sce \$30,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c20001e sce \$0,0\(\$1\)
+[ 0-9a-f]+: 246101ff addiu \$1,\$3,511
+[ 0-9a-f]+: 7c22001e sce \$2,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c24001e sce \$4,0\(\$1\)
+[ 0-9a-f]+: 24c1fc00 addiu \$1,\$6,-1024
+[ 0-9a-f]+: 7c25001e sce \$5,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c27001e sce \$7,0\(\$1\)
+[ 0-9a-f]+: 252103ff addiu \$1,\$9,1023
+[ 0-9a-f]+: 7c28001e sce \$8,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c2a001e sce \$10,0\(\$1\)
+[ 0-9a-f]+: 2581f800 addiu \$1,\$12,-2048
+[ 0-9a-f]+: 7c2b001e sce \$11,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c2d001e sce \$13,0\(\$1\)
+[ 0-9a-f]+: 25e107ff addiu \$1,\$15,2047
+[ 0-9a-f]+: 7c2e001e sce \$14,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c30001e sce \$16,0\(\$1\)
+[ 0-9a-f]+: 2641f000 addiu \$1,\$18,-4096
+[ 0-9a-f]+: 7c31001e sce \$17,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c33001e sce \$19,0\(\$1\)
+[ 0-9a-f]+: 26a10fff addiu \$1,\$21,4095
+[ 0-9a-f]+: 7c34001e sce \$20,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c36001e sce \$22,0\(\$1\)
+[ 0-9a-f]+: 27018000 addiu \$1,\$24,-32768
+[ 0-9a-f]+: 7c37001e sce \$23,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c39001e sce \$25,0\(\$1\)
+[ 0-9a-f]+: 27617fff addiu \$1,\$27,32767
+[ 0-9a-f]+: 7c3a001e sce \$26,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c3c001e sce \$28,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 003e0821 addu \$1,\$1,\$30
+[ 0-9a-f]+: 7c3dff9e sce \$29,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c3fff9e sce \$31,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00220821 addu \$1,\$1,\$2
+[ 0-9a-f]+: 7c20001e sce \$0,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c23001e sce \$3,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00250821 addu \$1,\$1,\$5
+[ 0-9a-f]+: 7c24001e sce \$4,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c26001e sce \$6,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00280821 addu \$1,\$1,\$8
+[ 0-9a-f]+: 7c27ff9e sce \$7,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c29ff9e sce \$9,-1\(\$1\)
+[ 0-9a-f]+: 7d6a001e sce \$10,0\(\$11\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c2c001e sce \$12,0\(\$1\)
+[ 0-9a-f]+: 7dcd801d she \$13,-256\(\$14\)
+[ 0-9a-f]+: 7c0f801d she \$15,-256\(\$0\)
+[ 0-9a-f]+: 7e307f9d she \$16,255\(\$17\)
+[ 0-9a-f]+: 7c127f9d she \$18,255\(\$0\)
+[ 0-9a-f]+: 2681feff addiu \$1,\$20,-257
+[ 0-9a-f]+: 7c33001d she \$19,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c35001d she \$21,0\(\$1\)
+[ 0-9a-f]+: 26e10100 addiu \$1,\$23,256
+[ 0-9a-f]+: 7c36001d she \$22,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c38001d she \$24,0\(\$1\)
+[ 0-9a-f]+: 2741fe00 addiu \$1,\$26,-512
+[ 0-9a-f]+: 7c39001d she \$25,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c3b001d she \$27,0\(\$1\)
+[ 0-9a-f]+: 27a101ff addiu \$1,\$29,511
+[ 0-9a-f]+: 7c3c001d she \$28,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c3e001d she \$30,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c3f001d she \$31,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c22001d she \$2,0\(\$1\)
+[ 0-9a-f]+: 248103ff addiu \$1,\$4,1023
+[ 0-9a-f]+: 7c23001d she \$3,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c25001d she \$5,0\(\$1\)
+[ 0-9a-f]+: 24e1f800 addiu \$1,\$7,-2048
+[ 0-9a-f]+: 7c26001d she \$6,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c28001d she \$8,0\(\$1\)
+[ 0-9a-f]+: 254107ff addiu \$1,\$10,2047
+[ 0-9a-f]+: 7c29001d she \$9,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c2b001d she \$11,0\(\$1\)
+[ 0-9a-f]+: 25a1f000 addiu \$1,\$13,-4096
+[ 0-9a-f]+: 7c2c001d she \$12,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c2e001d she \$14,0\(\$1\)
+[ 0-9a-f]+: 26010fff addiu \$1,\$16,4095
+[ 0-9a-f]+: 7c2f001d she \$15,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c31001d she \$17,0\(\$1\)
+[ 0-9a-f]+: 26618000 addiu \$1,\$19,-32768
+[ 0-9a-f]+: 7c32001d she \$18,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c34001d she \$20,0\(\$1\)
+[ 0-9a-f]+: 26c17fff addiu \$1,\$22,32767
+[ 0-9a-f]+: 7c35001d she \$21,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c37001d she \$23,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00390821 addu \$1,\$1,\$25
+[ 0-9a-f]+: 7c38ff9d she \$24,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c3aff9d she \$26,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 003c0821 addu \$1,\$1,\$28
+[ 0-9a-f]+: 7c3b001d she \$27,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c3d001d she \$29,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 003f0821 addu \$1,\$1,\$31
+[ 0-9a-f]+: 7c3e001d she \$30,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c20001d she \$0,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00230821 addu \$1,\$1,\$3
+[ 0-9a-f]+: 7c22ff9d she \$2,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c24ff9d she \$4,-1\(\$1\)
+[ 0-9a-f]+: 7cc5001d she \$5,0\(\$6\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c27001d she \$7,0\(\$1\)
+[ 0-9a-f]+: 7d28801f swe \$8,-256\(\$9\)
+[ 0-9a-f]+: 7c0a801f swe \$10,-256\(\$0\)
+[ 0-9a-f]+: 7d8b7f9f swe \$11,255\(\$12\)
+[ 0-9a-f]+: 7c0d7f9f swe \$13,255\(\$0\)
+[ 0-9a-f]+: 25e1feff addiu \$1,\$15,-257
+[ 0-9a-f]+: 7c2e001f swe \$14,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c30001f swe \$16,0\(\$1\)
+[ 0-9a-f]+: 26410100 addiu \$1,\$18,256
+[ 0-9a-f]+: 7c31001f swe \$17,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c33001f swe \$19,0\(\$1\)
+[ 0-9a-f]+: 26a1fe00 addiu \$1,\$21,-512
+[ 0-9a-f]+: 7c34001f swe \$20,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c36001f swe \$22,0\(\$1\)
+[ 0-9a-f]+: 270101ff addiu \$1,\$24,511
+[ 0-9a-f]+: 7c37001f swe \$23,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c39001f swe \$25,0\(\$1\)
+[ 0-9a-f]+: 2761fc00 addiu \$1,\$27,-1024
+[ 0-9a-f]+: 7c3a001f swe \$26,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c3c001f swe \$28,0\(\$1\)
+[ 0-9a-f]+: 27c103ff addiu \$1,\$30,1023
+[ 0-9a-f]+: 7c3d001f swe \$29,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c3f001f swe \$31,0\(\$1\)
+[ 0-9a-f]+: 2441f800 addiu \$1,\$2,-2048
+[ 0-9a-f]+: 7c20001f swe \$0,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c23001f swe \$3,0\(\$1\)
+[ 0-9a-f]+: 24a107ff addiu \$1,\$5,2047
+[ 0-9a-f]+: 7c24001f swe \$4,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c26001f swe \$6,0\(\$1\)
+[ 0-9a-f]+: 2501f000 addiu \$1,\$8,-4096
+[ 0-9a-f]+: 7c27001f swe \$7,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c29001f swe \$9,0\(\$1\)
+[ 0-9a-f]+: 25610fff addiu \$1,\$11,4095
+[ 0-9a-f]+: 7c2a001f swe \$10,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c2c001f swe \$12,0\(\$1\)
+[ 0-9a-f]+: 25c18000 addiu \$1,\$14,-32768
+[ 0-9a-f]+: 7c2d001f swe \$13,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c2f001f swe \$15,0\(\$1\)
+[ 0-9a-f]+: 26217fff addiu \$1,\$17,32767
+[ 0-9a-f]+: 7c30001f swe \$16,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c32001f swe \$18,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00340821 addu \$1,\$1,\$20
+[ 0-9a-f]+: 7c33ff9f swe \$19,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c35ff9f swe \$21,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00370821 addu \$1,\$1,\$23
+[ 0-9a-f]+: 7c36001f swe \$22,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c38001f swe \$24,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 003a0821 addu \$1,\$1,\$26
+[ 0-9a-f]+: 7c39001f swe \$25,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c3b001f swe \$27,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 003d0821 addu \$1,\$1,\$29
+[ 0-9a-f]+: 7c3cff9f swe \$28,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c3eff9f swe \$30,-1\(\$1\)
+[ 0-9a-f]+: 7c1f001f swe \$31,0\(\$0\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c22001f swe \$2,0\(\$1\)
+[ 0-9a-f]+: 7f38801b cachee 0x18,-256\(\$25\)
+[ 0-9a-f]+: 7c1a801b cachee 0x1a,-256\(\$0\)
+[ 0-9a-f]+: 7f9b7f9b cachee 0x1b,255\(\$28\)
+[ 0-9a-f]+: 7c1d7f9b cachee 0x1d,255\(\$0\)
+[ 0-9a-f]+: 27e1feff addiu \$1,\$31,-257
+[ 0-9a-f]+: 7c3e001b cachee 0x1e,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c20001b cachee 0x0,0\(\$1\)
+[ 0-9a-f]+: 24610100 addiu \$1,\$3,256
+[ 0-9a-f]+: 7c22001b cachee 0x2,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c24001b cachee 0x4,0\(\$1\)
+[ 0-9a-f]+: 24c1fe00 addiu \$1,\$6,-512
+[ 0-9a-f]+: 7c25001b cachee 0x5,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c27001b cachee 0x7,0\(\$1\)
+[ 0-9a-f]+: 252101ff addiu \$1,\$9,511
+[ 0-9a-f]+: 7c28001b cachee 0x8,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c2a001b cachee 0xa,0\(\$1\)
+[ 0-9a-f]+: 2581fc00 addiu \$1,\$12,-1024
+[ 0-9a-f]+: 7c2b001b cachee 0xb,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c2d001b cachee 0xd,0\(\$1\)
+[ 0-9a-f]+: 25e103ff addiu \$1,\$15,1023
+[ 0-9a-f]+: 7c2e001b cachee 0xe,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c30001b cachee 0x10,0\(\$1\)
+[ 0-9a-f]+: 2641f800 addiu \$1,\$18,-2048
+[ 0-9a-f]+: 7c31001b cachee 0x11,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c33001b cachee 0x13,0\(\$1\)
+[ 0-9a-f]+: 26a107ff addiu \$1,\$21,2047
+[ 0-9a-f]+: 7c34001b cachee 0x14,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c36001b cachee 0x16,0\(\$1\)
+[ 0-9a-f]+: 2701f000 addiu \$1,\$24,-4096
+[ 0-9a-f]+: 7c37001b cachee 0x17,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c39001b cachee 0x19,0\(\$1\)
+[ 0-9a-f]+: 27610fff addiu \$1,\$27,4095
+[ 0-9a-f]+: 7c3a001b cachee 0x1a,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c3c001b cachee 0x1c,0\(\$1\)
+[ 0-9a-f]+: 27c18000 addiu \$1,\$30,-32768
+[ 0-9a-f]+: 7c3d001b cachee 0x1d,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c3f001b cachee 0x1f,0\(\$1\)
+[ 0-9a-f]+: 24417fff addiu \$1,\$2,32767
+[ 0-9a-f]+: 7c20001b cachee 0x0,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c23001b cachee 0x3,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 00250821 addu \$1,\$1,\$5
+[ 0-9a-f]+: 7c24ff9b cachee 0x4,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c26ff9b cachee 0x6,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00280821 addu \$1,\$1,\$8
+[ 0-9a-f]+: 7c27001b cachee 0x7,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c29001b cachee 0x9,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 002b0821 addu \$1,\$1,\$11
+[ 0-9a-f]+: 7c2a001b cachee 0xa,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2c001b cachee 0xc,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 002e0821 addu \$1,\$1,\$14
+[ 0-9a-f]+: 7c2dff9b cachee 0xd,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2fff9b cachee 0xf,-1\(\$1\)
+[ 0-9a-f]+: 7e30001b cachee 0x10,0\(\$17\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c32001b cachee 0x12,0\(\$1\)
+[ 0-9a-f]+: 7e938023 prefe 0x13,-256\(\$20\)
+[ 0-9a-f]+: 7c158023 prefe 0x15,-256\(\$0\)
+[ 0-9a-f]+: 7ef67fa3 prefe 0x16,255\(\$23\)
+[ 0-9a-f]+: 7c187fa3 prefe 0x18,255\(\$0\)
+[ 0-9a-f]+: 2741feff addiu \$1,\$26,-257
+[ 0-9a-f]+: 7c390023 prefe 0x19,0\(\$1\)
+[ 0-9a-f]+: 2401feff li \$1,-257
+[ 0-9a-f]+: 7c3b0023 prefe 0x1b,0\(\$1\)
+[ 0-9a-f]+: 27a10100 addiu \$1,\$29,256
+[ 0-9a-f]+: 7c3c0023 prefe 0x1c,0\(\$1\)
+[ 0-9a-f]+: 24010100 li \$1,256
+[ 0-9a-f]+: 7c3e0023 prefe 0x1e,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c3f0023 prefe 0x1f,0\(\$1\)
+[ 0-9a-f]+: 2401fe00 li \$1,-512
+[ 0-9a-f]+: 7c220023 prefe 0x2,0\(\$1\)
+[ 0-9a-f]+: 248101ff addiu \$1,\$4,511
+[ 0-9a-f]+: 7c230023 prefe 0x3,0\(\$1\)
+[ 0-9a-f]+: 240101ff li \$1,511
+[ 0-9a-f]+: 7c250023 prefe 0x5,0\(\$1\)
+[ 0-9a-f]+: 24e1fc00 addiu \$1,\$7,-1024
+[ 0-9a-f]+: 7c260023 prefe 0x6,0\(\$1\)
+[ 0-9a-f]+: 2401fc00 li \$1,-1024
+[ 0-9a-f]+: 7c280023 prefe 0x8,0\(\$1\)
+[ 0-9a-f]+: 254103ff addiu \$1,\$10,1023
+[ 0-9a-f]+: 7c290023 prefe 0x9,0\(\$1\)
+[ 0-9a-f]+: 240103ff li \$1,1023
+[ 0-9a-f]+: 7c2b0023 prefe 0xb,0\(\$1\)
+[ 0-9a-f]+: 25a1f800 addiu \$1,\$13,-2048
+[ 0-9a-f]+: 7c2c0023 prefe 0xc,0\(\$1\)
+[ 0-9a-f]+: 2401f800 li \$1,-2048
+[ 0-9a-f]+: 7c2e0023 prefe 0xe,0\(\$1\)
+[ 0-9a-f]+: 260107ff addiu \$1,\$16,2047
+[ 0-9a-f]+: 7c2f0023 prefe 0xf,0\(\$1\)
+[ 0-9a-f]+: 240107ff li \$1,2047
+[ 0-9a-f]+: 7c310023 prefe 0x11,0\(\$1\)
+[ 0-9a-f]+: 2661f000 addiu \$1,\$19,-4096
+[ 0-9a-f]+: 7c320023 prefe 0x12,0\(\$1\)
+[ 0-9a-f]+: 2401f000 li \$1,-4096
+[ 0-9a-f]+: 7c340023 prefe 0x14,0\(\$1\)
+[ 0-9a-f]+: 26c10fff addiu \$1,\$22,4095
+[ 0-9a-f]+: 7c350023 prefe 0x15,0\(\$1\)
+[ 0-9a-f]+: 24010fff li \$1,4095
+[ 0-9a-f]+: 7c370023 prefe 0x17,0\(\$1\)
+[ 0-9a-f]+: 27218000 addiu \$1,\$25,-32768
+[ 0-9a-f]+: 7c380023 prefe 0x18,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c3a0023 prefe 0x1a,0\(\$1\)
+[ 0-9a-f]+: 27817fff addiu \$1,\$28,32767
+[ 0-9a-f]+: 7c3b0023 prefe 0x1b,0\(\$1\)
+[ 0-9a-f]+: 24017fff li \$1,32767
+[ 0-9a-f]+: 7c3d0023 prefe 0x1d,0\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 003f0821 addu \$1,\$1,\$31
+[ 0-9a-f]+: 7c3effa3 prefe 0x1e,-1\(\$1\)
+[ 0-9a-f]+: 24018000 li \$1,-32768
+[ 0-9a-f]+: 7c20ffa3 prefe 0x0,-1\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 00230821 addu \$1,\$1,\$3
+[ 0-9a-f]+: 7c220023 prefe 0x2,0\(\$1\)
+[ 0-9a-f]+: 34018000 li \$1,0x8000
+[ 0-9a-f]+: 7c240023 prefe 0x4,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00260821 addu \$1,\$1,\$6
+[ 0-9a-f]+: 7c250023 prefe 0x5,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c270023 prefe 0x7,0\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 00290821 addu \$1,\$1,\$9
+[ 0-9a-f]+: 7c28ffa3 prefe 0x8,-1\(\$1\)
+[ 0-9a-f]+: 3c018000 lui \$1,0x8000
+[ 0-9a-f]+: 7c2affa3 prefe 0xa,-1\(\$1\)
+[ 0-9a-f]+: 7d8b0023 prefe 0xb,0\(\$12\)
+[ 0-9a-f]+: 3c010000 lui \$1,0x0
+ [ 0-9a-f]+: R_MIPS_HI16 MYDATA
+[ 0-9a-f]+: 24210000 addiu \$1,\$1,0
+ [ 0-9a-f]+: R_MIPS_LO16 MYDATA
+[ 0-9a-f]+: 7c2d0023 prefe 0xd,0\(\$1\)
+[ 0-9a-f]+: 24c10000 addiu \$1,\$6,0
+ [ 0-9a-f]+: R_MIPS_LO16 foo
+[ 0-9a-f]+: 7c250023 prefe 0x5,0\(\$1\)
+#pass
diff --git a/gas/testsuite/gas/mips/mipsr6@jal-svr4pic-noreorder.d b/gas/testsuite/gas/mips/mipsr6@jal-svr4pic-noreorder.d
new file mode 100644
index 0000000..88b7e31
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@jal-svr4pic-noreorder.d
@@ -0,0 +1,46 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS jal-svr4pic noreorder
+#as: -32 -KPIC
+#source: jal-svr4pic-noreorder.s
+
+# Test the jal macro with -KPIC and `.set noreorder'.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 3c1c0000 lui gp,0x0
+[ ]*[0-9a-f]+: R_MIPS_HI16 _gp_disp
+[0-9a-f]+ <[^>]*> 279c0000 addiu gp,gp,0
+[ ]*[0-9a-f]+: R_MIPS_LO16 _gp_disp
+[0-9a-f]+ <[^>]*> 0399e021 addu gp,gp,t9
+[0-9a-f]+ <[^>]*> afbc0000 sw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 03202009 jalr a0,t9
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 8f990000 lw t9,0\(gp\)
+[ ]*[0-9a-f]+: R_MIPS_GOT16 .text
+[0-9a-f]+ <[^>]*> 27390000 addiu t9,t9,0
+[ ]*[0-9a-f]+: R_MIPS_LO16 .text
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[ ]*[0-9a-f]+: R_MIPS_JALR text_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 8f990000 lw t9,0\(gp\)
+[ ]*[0-9a-f]+: R_MIPS_CALL16 weak_text_label
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[ ]*[0-9a-f]+: R_MIPS_JALR weak_text_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 8f990000 lw t9,0\(gp\)
+[ ]*[0-9a-f]+: R_MIPS_CALL16 external_text_label
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[ ]*[0-9a-f]+: R_MIPS_JALR external_text_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 1000ffff b 0+005c <text_label\+0x5c>
+[ ]*5c: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@jal-svr4pic.d b/gas/testsuite/gas/mips/mipsr6@jal-svr4pic.d
new file mode 100644
index 0000000..e0a5c0e
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@jal-svr4pic.d
@@ -0,0 +1,44 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS jal-svr4pic
+#as: -32 -KPIC
+#source: jal-svr4pic.s
+
+# Test the jal macro with -KPIC.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 3c1c0000 lui gp,0x0
+[ ]*[0-9a-f]+: R_MIPS_HI16 _gp_disp
+[0-9a-f]+ <[^>]*> 279c0000 addiu gp,gp,0
+[ ]*[0-9a-f]+: R_MIPS_LO16 _gp_disp
+[0-9a-f]+ <[^>]*> 0399e021 addu gp,gp,t9
+[0-9a-f]+ <[^>]*> afbc0000 sw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 03202009 jalr a0,t9
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 8f990000 lw t9,0\(gp\)
+[ ]*[0-9a-f]+: R_MIPS_GOT16 .text
+[0-9a-f]+ <[^>]*> 27390000 addiu t9,t9,0
+[ ]*[0-9a-f]+: R_MIPS_LO16 .text
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[ ]*[0-9a-f]+: R_MIPS_JALR text_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 8f990000 lw t9,0\(gp\)
+[ ]*[0-9a-f]+: R_MIPS_CALL16 weak_text_label
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[ ]*[0-9a-f]+: R_MIPS_JALR weak_text_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+[0-9a-f]+ <[^>]*> 8f990000 lw t9,0\(gp\)
+[ ]*[0-9a-f]+: R_MIPS_CALL16 external_text_label
+[0-9a-f]+ <[^>]*> 0320f809 jalr t9
+[ ]*[0-9a-f]+: R_MIPS_JALR external_text_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 1000ffff b 0+0054 <text_label\+0x54>
+[ ]*54: .*R_MIPS_PC16 text_label
+[0-9a-f]+ <[^>]*> 8fbc0000 lw gp,0\(sp\)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@ld-zero-2.d b/gas/testsuite/gas/mips/mipsr6@ld-zero-2.d
new file mode 100644
index 0000000..2b1344f
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@ld-zero-2.d
@@ -0,0 +1,13 @@
+#objdump: -dr --prefix-addresses
+#as: -32
+#name: MIPS II load $zero
+#source: ld-zero-2.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> lui at,0x1234
+[0-9a-f]+ <[^>]*> ori at,at,0x5600
+[0-9a-f]+ <[^>]*> addu at,at,v0
+[0-9a-f]+ <[^>]*> ll zero,120\(at\)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@ld-zero-3.d b/gas/testsuite/gas/mips/mipsr6@ld-zero-3.d
new file mode 100644
index 0000000..855dd49
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@ld-zero-3.d
@@ -0,0 +1,19 @@
+#objdump: -dr --prefix-addresses
+#as: -mabi=o64
+#name: MIPS III load $zero
+#source: ld-zero-3.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> lui at,0x1234
+[0-9a-f]+ <[^>]*> addu at,at,v0
+[0-9a-f]+ <[^>]*> lwu zero,22136\(at\)
+[0-9a-f]+ <[^>]*> lui at,0x1234
+[0-9a-f]+ <[^>]*> addu at,at,v0
+[0-9a-f]+ <[^>]*> ld zero,22136\(at\)
+[0-9a-f]+ <[^>]*> lui at,0x1234
+[0-9a-f]+ <[^>]*> ori at,at,0x5600
+[0-9a-f]+ <[^>]*> addu at,at,v0
+[0-9a-f]+ <[^>]*> lld zero,120\(at\)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@loc-swap-dis.d b/gas/testsuite/gas/mips/mipsr6@loc-swap-dis.d
new file mode 100644
index 0000000..d377f6a
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@loc-swap-dis.d
@@ -0,0 +1,34 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS DWARF-2 location information with branch swapping disassembly
+#as: -32
+#source: loc-swap.s
+
+# Check branch swapping with DWARF-2 location information.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 02002021 move a0,s0
+[0-9a-f]+ <[^>]*> 00800009 jr a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00800009 jr a0
+[0-9a-f]+ <[^>]*> 0200f821 move ra,s0
+[0-9a-f]+ <[^>]*> 03e00009 jr ra
+[0-9a-f]+ <[^>]*> 02002021 move a0,s0
+[0-9a-f]+ <[^>]*> 0200f821 move ra,s0
+[0-9a-f]+ <[^>]*> 03e00009 jr ra
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 02002021 move a0,s0
+[0-9a-f]+ <[^>]*> 0080f809 jalr a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0200f821 move ra,s0
+[0-9a-f]+ <[^>]*> 0080f809 jalr a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0c000000 jal 0+0000 <foo>
+[ ]*[0-9a-f]+: R_MIPS_26 bar
+[0-9a-f]+ <[^>]*> 02002021 move a0,s0
+[0-9a-f]+ <[^>]*> 0200f821 move ra,s0
+[0-9a-f]+ <[^>]*> 0c000000 jal 0+0000 <foo>
+[ ]*[0-9a-f]+: R_MIPS_26 bar
+[0-9a-f]+ <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32-cp2.d b/gas/testsuite/gas/mips/mipsr6@mips32-cp2.d
new file mode 100644
index 0000000..2b7c098
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32-cp2.d
@@ -0,0 +1,20 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPS32 cop2 instructions
+#source: mips32-cp2.s
+#as: -32
+
+# Check MIPS32 cop2 instruction assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 48411000 cfc2 at,\$2
+0+0004 <[^>]*> 4b234567 c2 0x1234567
+0+0008 <[^>]*> 48c21800 ctc2 v0,\$3
+0+000c <[^>]*> 48032000 mfc2 v1,\$4
+0+0010 <[^>]*> 48042800 mfc2 a0,\$5
+0+0014 <[^>]*> 48053007 mfc2 a1,\$6,7
+0+0018 <[^>]*> 48863800 mtc2 a2,\$7
+0+001c <[^>]*> 48874000 mtc2 a3,\$8
+0+0020 <[^>]*> 48884807 mtc2 t0,\$9,7
+#pass
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32-dsp.d b/gas/testsuite/gas/mips/mipsr6@mips32-dsp.d
new file mode 100644
index 0000000..2c9046e
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32-dsp.d
@@ -0,0 +1,147 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS DSP ASE for MIPS32
+#as: -mdsp -32
+#source: mips32-dsp.s
+
+# Check MIPS DSP ASE for MIPS32 Instruction Assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 7c220290 addq\.ph zero,at,v0
+0+0004 <[^>]*> 7c430b90 addq_s\.ph at,v0,v1
+0+0008 <[^>]*> 7c641590 addq_s\.w v0,v1,a0
+0+000c <[^>]*> 7c851810 addu\.qb v1,a0,a1
+0+0010 <[^>]*> 7ca62110 addu_s\.qb a0,a1,a2
+0+0014 <[^>]*> 7cc72ad0 subq\.ph a1,a2,a3
+0+0018 <[^>]*> 7ce833d0 subq_s\.ph a2,a3,t0
+0+001c <[^>]*> 7d093dd0 subq_s\.w a3,t0,t1
+0+0020 <[^>]*> 7d2a4050 subu\.qb t0,t1,t2
+0+0024 <[^>]*> 7d4b4950 subu_s\.qb t1,t2,t3
+0+0028 <[^>]*> 7d6c5410 addsc t2,t3,t4
+0+002c <[^>]*> 7d8d5c50 addwc t3,t4,t5
+0+0030 <[^>]*> 7dae6490 modsub t4,t5,t6
+0+0034 <[^>]*> 7dc06d10 raddu\.w\.qb t5,t6
+0+0038 <[^>]*> 7c0f7252 absq_s\.ph t6,t7
+0+003c <[^>]*> 7c107c52 absq_s\.w t7,s0
+0+0040 <[^>]*> 7e328311 precrq\.qb\.ph s0,s1,s2
+0+0044 <[^>]*> 7e538d11 precrq\.ph\.w s1,s2,s3
+0+0048 <[^>]*> 7e749551 precrq_rs\.ph\.w s2,s3,s4
+0+004c <[^>]*> 7e959bd1 precrqu_s\.qb\.ph s3,s4,s5
+0+0050 <[^>]*> 7c15a312 preceq\.w\.phl s4,s5
+0+0054 <[^>]*> 7c16ab52 preceq\.w\.phr s5,s6
+0+0058 <[^>]*> 7c17b112 precequ\.ph\.qbl s6,s7
+0+005c <[^>]*> 7c18b952 precequ\.ph\.qbr s7,t8
+0+0060 <[^>]*> 7c19c192 precequ\.ph\.qbla t8,t9
+0+0064 <[^>]*> 7c1ac9d2 precequ\.ph\.qbra t9,k0
+0+0068 <[^>]*> 7c1bd712 preceu\.ph\.qbl k0,k1
+0+006c <[^>]*> 7c1cdf52 preceu\.ph\.qbr k1,gp
+0+0070 <[^>]*> 7c1de792 preceu\.ph\.qbla gp,sp
+0+0074 <[^>]*> 7c1eefd2 preceu\.ph\.qbra sp,s8
+0+0078 <[^>]*> 7c1ff013 shll\.qb s8,ra,0x0
+0+007c <[^>]*> 7cfff013 shll\.qb s8,ra,0x7
+0+0080 <[^>]*> 7c20f893 shllv\.qb ra,zero,at
+0+0084 <[^>]*> 7c010213 shll\.ph zero,at,0x0
+0+0088 <[^>]*> 7de10213 shll\.ph zero,at,0xf
+0+008c <[^>]*> 7c620a93 shllv\.ph at,v0,v1
+0+0090 <[^>]*> 7c031313 shll_s\.ph v0,v1,0x0
+0+0094 <[^>]*> 7de31313 shll_s\.ph v0,v1,0xf
+0+0098 <[^>]*> 7ca41b93 shllv_s\.ph v1,a0,a1
+0+009c <[^>]*> 7c052513 shll_s\.w a0,a1,0x0
+0+00a0 <[^>]*> 7fe52513 shll_s\.w a0,a1,0x1f
+0+00a4 <[^>]*> 7ce62d93 shllv_s\.w a1,a2,a3
+0+00a8 <[^>]*> 7c073053 shrl\.qb a2,a3,0x0
+0+00ac <[^>]*> 7ce73053 shrl\.qb a2,a3,0x7
+0+00b0 <[^>]*> 7d2838d3 shrlv\.qb a3,t0,t1
+0+00b4 <[^>]*> 7c094253 shra\.ph t0,t1,0x0
+0+00b8 <[^>]*> 7de94253 shra\.ph t0,t1,0xf
+0+00bc <[^>]*> 7d6a4ad3 shrav\.ph t1,t2,t3
+0+00c0 <[^>]*> 7c0b5353 shra_r\.ph t2,t3,0x0
+0+00c4 <[^>]*> 7deb5353 shra_r\.ph t2,t3,0xf
+0+00c8 <[^>]*> 7dac5bd3 shrav_r\.ph t3,t4,t5
+0+00cc <[^>]*> 7c0d6553 shra_r\.w t4,t5,0x0
+0+00d0 <[^>]*> 7fed6553 shra_r\.w t4,t5,0x1f
+0+00d4 <[^>]*> 7dee6dd3 shrav_r\.w t5,t6,t7
+0+00d8 <[^>]*> 7df07190 muleu_s\.ph\.qbl t6,t7,s0
+0+00dc <[^>]*> 7e1179d0 muleu_s\.ph\.qbr t7,s0,s1
+0+00e0 <[^>]*> 7e3287d0 mulq_rs\.ph s0,s1,s2
+0+00e4 <[^>]*> 7e538f10 muleq_s\.w\.phl s1,s2,s3
+0+00e8 <[^>]*> 7e749750 muleq_s\.w\.phr s2,s3,s4
+0+00ec <[^>]*> 7e7400f0 dpau\.h\.qbl \$ac0,s3,s4
+0+00f0 <[^>]*> 7e9509f0 dpau\.h\.qbr \$ac1,s4,s5
+0+00f4 <[^>]*> 7eb612f0 dpsu\.h\.qbl \$ac2,s5,s6
+0+00f8 <[^>]*> 7ed71bf0 dpsu\.h\.qbr \$ac3,s6,s7
+0+00fc <[^>]*> 7ef80130 dpaq_s\.w\.ph \$ac0,s7,t8
+0+0100 <[^>]*> 7f190970 dpsq_s\.w\.ph \$ac1,t8,t9
+0+0104 <[^>]*> 7f3a11b0 mulsaq_s\.w\.ph \$ac2,t9,k0
+0+0108 <[^>]*> 7f5b1b30 dpaq_sa\.l\.w \$ac3,k0,k1
+0+010c <[^>]*> 7f7c0370 dpsq_sa\.l\.w \$ac0,k1,gp
+0+0110 <[^>]*> 7f9d0d30 maq_s\.w\.phl \$ac1,gp,sp
+0+0114 <[^>]*> 7fbe15b0 maq_s\.w\.phr \$ac2,sp,s8
+0+0118 <[^>]*> 7fdf1c30 maq_sa\.w\.phl \$ac3,s8,ra
+0+011c <[^>]*> 7fe004b0 maq_sa\.w\.phr \$ac0,ra,zero
+0+0120 <[^>]*> 7c0106d2 bitrev zero,at
+0+0124 <[^>]*> 7c41000c insv at,v0
+0+0128 <[^>]*> 7c001092 repl\.qb v0,0x0
+0+012c <[^>]*> 7cff1092 repl\.qb v0,0xff
+0+0130 <[^>]*> 7c0418d2 replv\.qb v1,a0
+0+0134 <[^>]*> 7e002292 repl\.ph a0,-512
+0+0138 <[^>]*> 7dff2292 repl\.ph a0,511
+0+013c <[^>]*> 7c062ad2 replv\.ph a1,a2
+0+0140 <[^>]*> 7cc70011 cmpu\.eq\.qb a2,a3
+0+0144 <[^>]*> 7ce80051 cmpu\.lt\.qb a3,t0
+0+0148 <[^>]*> 7d090091 cmpu\.le\.qb t0,t1
+0+014c <[^>]*> 7d4b4911 cmpgu\.eq\.qb t1,t2,t3
+0+0150 <[^>]*> 7d6c5151 cmpgu\.lt\.qb t2,t3,t4
+0+0154 <[^>]*> 7d8d5991 cmpgu\.le\.qb t3,t4,t5
+0+0158 <[^>]*> 7d8d0211 cmp\.eq\.ph t4,t5
+0+015c <[^>]*> 7dae0251 cmp\.lt\.ph t5,t6
+0+0160 <[^>]*> 7dcf0291 cmp\.le\.ph t6,t7
+0+0164 <[^>]*> 7e1178d1 pick\.qb t7,s0,s1
+0+0168 <[^>]*> 7e3282d1 pick\.ph s0,s1,s2
+0+016c <[^>]*> 7e538b91 packrl\.ph s1,s2,s3
+0+0170 <[^>]*> 7c120838 extr\.w s2,\$ac1,0x0
+0+0174 <[^>]*> 7ff20838 extr\.w s2,\$ac1,0x1f
+0+0178 <[^>]*> 7c131138 extr_r\.w s3,\$ac2,0x0
+0+017c <[^>]*> 7ff31138 extr_r\.w s3,\$ac2,0x1f
+0+0180 <[^>]*> 7c1419b8 extr_rs\.w s4,\$ac3,0x0
+0+0184 <[^>]*> 7ff419b8 extr_rs\.w s4,\$ac3,0x1f
+0+0188 <[^>]*> 7c1503b8 extr_s\.h s5,\$ac0,0x0
+0+018c <[^>]*> 7ff503b8 extr_s\.h s5,\$ac0,0x1f
+0+0190 <[^>]*> 7ef60bf8 extrv_s\.h s6,\$ac1,s7
+0+0194 <[^>]*> 7f171078 extrv\.w s7,\$ac2,t8
+0+0198 <[^>]*> 7f381978 extrv_r\.w t8,\$ac3,t9
+0+019c <[^>]*> 7f5901f8 extrv_rs\.w t9,\$ac0,k0
+0+01a0 <[^>]*> 7c1a08b8 extp k0,\$ac1,0x0
+0+01a4 <[^>]*> 7ffa08b8 extp k0,\$ac1,0x1f
+0+01a8 <[^>]*> 7f9b10f8 extpv k1,\$ac2,gp
+0+01ac <[^>]*> 7c1c1ab8 extpdp gp,\$ac3,0x0
+0+01b0 <[^>]*> 7ffc1ab8 extpdp gp,\$ac3,0x1f
+0+01b4 <[^>]*> 7fdd02f8 extpdpv sp,\$ac0,s8
+0+01b8 <[^>]*> 7e000eb8 shilo \$ac1,-32
+0+01bc <[^>]*> 7df00eb8 shilo \$ac1,31
+0+01c0 <[^>]*> 7fc016f8 shilov \$ac2,s8
+0+01c4 <[^>]*> 7fe01ff8 mthlip ra,\$ac3
+0+01c8 <[^>]*> 00000010 mfhi zero,\$ac0
+0+01cc <[^>]*> 00200812 mflo at,\$ac1
+0+01d0 <[^>]*> 00401011 mthi v0,\$ac2
+0+01d4 <[^>]*> 00601813 mtlo v1,\$ac3
+0+01d8 <[^>]*> 7c8004f8 wrdsp a0,0x0
+0+01dc <[^>]*> 7c81fcf8 wrdsp a0,0x3f
+0+01e0 <[^>]*> 7cbffcf8 wrdsp a1
+0+01e4 <[^>]*> 7c0034b8 rddsp a2,0x0
+0+01e8 <[^>]*> 7c3f34b8 rddsp a2,0x3f
+0+01ec <[^>]*> 7fff3cb8 rddsp a3
+0+01f0 <[^>]*> 7d49418a lbux t0,t1\(t2\)
+0+01f4 <[^>]*> 7d6a490a lhx t1,t2\(t3\)
+0+01f8 <[^>]*> 7d8b500a lwx t2,t3\(t4\)
+0+01fc <[^>]*> 041cffff bposge32 000001fc <[^>]*>
+ 1fc: R_MIPS_PC16 text_label
+0+0200 <[^>]*> 00000000 nop
+0+0204 <[^>]*> 716c1000 madd \$ac2,t3,t4
+0+0208 <[^>]*> 718d1801 maddu \$ac3,t4,t5
+0+020c <[^>]*> 71ae0004 msub \$ac0,t5,t6
+0+0210 <[^>]*> 71cf0805 msubu \$ac1,t6,t7
+0+0214 <[^>]*> 02b61818 mult \$ac3,s5,s6
+0+0218 <[^>]*> 02d70019 multu \$ac0,s6,s7
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32-dspr2.d b/gas/testsuite/gas/mips/mipsr6@mips32-dspr2.d
new file mode 100644
index 0000000..feb0abc
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32-dspr2.d
@@ -0,0 +1,73 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS DSP ASE Rev2 for MIPS32
+#as: -mdspr2 -32
+#source: mips32-dspr2.s
+
+# Check MIPS DSP ASE Rev2 for MIPS32 Instruction Assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 7c010052 absq_s\.qb zero,at
+0+0004 <[^>]*> 7c430a10 addu\.ph at,v0,v1
+0+0008 <[^>]*> 7c641310 addu_s\.ph v0,v1,a0
+0+000c <[^>]*> 7c851818 adduh\.qb v1,a0,a1
+0+0010 <[^>]*> 7ca62098 adduh_r\.qb a0,a1,a2
+0+0014 <[^>]*> 7cc50031 append a1,a2,0x0
+0+0018 <[^>]*> 7cc5f831 append a1,a2,0x1f
+0+001c <[^>]*> 00000000 nop
+0+0020 <[^>]*> 7ce60c31 balign a2,a3,0x1
+0+0024 <[^>]*> 7cc73391 packrl\.ph a2,a2,a3
+0+0028 <[^>]*> 7ce61c31 balign a2,a3,0x3
+0+002c <[^>]*> 7ce83611 cmpgdu\.eq\.qb a2,a3,t0
+0+0030 <[^>]*> 7d093e51 cmpgdu\.lt\.qb a3,t0,t1
+0+0034 <[^>]*> 7d2a4691 cmpgdu\.le\.qb t0,t1,t2
+0+0038 <[^>]*> 7d2a0030 dpa\.w\.ph \$ac0,t1,t2
+0+003c <[^>]*> 7d4b0870 dps\.w\.ph \$ac1,t2,t3
+0+0040 <[^>]*> 716c1000 madd \$ac2,t3,t4
+0+0044 <[^>]*> 718d1801 maddu \$ac3,t4,t5
+0+0048 <[^>]*> 71ae0004 msub \$ac0,t5,t6
+0+004c <[^>]*> 71cf0805 msubu \$ac1,t6,t7
+0+0050 <[^>]*> 7e117b18 mul\.ph t7,s0,s1
+0+0054 <[^>]*> 7e328398 mul_s\.ph s0,s1,s2
+0+0058 <[^>]*> 7e538dd8 mulq_rs\.w s1,s2,s3
+0+005c <[^>]*> 7e749790 mulq_s\.ph s2,s3,s4
+0+0060 <[^>]*> 7e959d98 mulq_s\.w s3,s4,s5
+0+0064 <[^>]*> 7e9510b0 mulsa\.w\.ph \$ac2,s4,s5
+0+0068 <[^>]*> 02b61818 mult \$ac3,s5,s6
+0+006c <[^>]*> 02d70019 multu \$ac0,s6,s7
+0+0070 <[^>]*> 7f19bb51 precr\.qb\.ph s7,t8,t9
+0+0074 <[^>]*> 7f380791 precr_sra\.ph\.w t8,t9,0x0
+0+0078 <[^>]*> 7f38ff91 precr_sra\.ph\.w t8,t9,0x1f
+0+007c <[^>]*> 7f5907d1 precr_sra_r\.ph\.w t9,k0,0x0
+0+0080 <[^>]*> 7f59ffd1 precr_sra_r\.ph\.w t9,k0,0x1f
+0+0084 <[^>]*> 7f7a0071 prepend k0,k1,0x0
+0+0088 <[^>]*> 7f7af871 prepend k0,k1,0x1f
+0+008c <[^>]*> 7c1cd913 shra\.qb k1,gp,0x0
+0+0090 <[^>]*> 7cfcd913 shra\.qb k1,gp,0x7
+0+0094 <[^>]*> 7c1de153 shra_r\.qb gp,sp,0x0
+0+0098 <[^>]*> 7cfde153 shra_r\.qb gp,sp,0x7
+0+009c <[^>]*> 7ffee993 shrav\.qb sp,s8,ra
+0+00a0 <[^>]*> 7c1ff1d3 shrav_r\.qb s8,ra,zero
+0+00a4 <[^>]*> 7c00fe53 shrl\.ph ra,zero,0x0
+0+00a8 <[^>]*> 7de0fe53 shrl\.ph ra,zero,0xf
+0+00ac <[^>]*> 7c4106d3 shrlv\.ph zero,at,v0
+0+00b0 <[^>]*> 7c430a50 subu\.ph at,v0,v1
+0+00b4 <[^>]*> 7c641350 subu_s\.ph v0,v1,a0
+0+00b8 <[^>]*> 7c851858 subuh\.qb v1,a0,a1
+0+00bc <[^>]*> 7ca620d8 subuh_r\.qb a0,a1,a2
+0+00c0 <[^>]*> 7cc72a18 addqh\.ph a1,a2,a3
+0+00c4 <[^>]*> 7ce83298 addqh_r\.ph a2,a3,t0
+0+00c8 <[^>]*> 7d093c18 addqh\.w a3,t0,t1
+0+00cc <[^>]*> 7d2a4498 addqh_r\.w t0,t1,t2
+0+00d0 <[^>]*> 7d4b4a58 subqh\.ph t1,t2,t3
+0+00d4 <[^>]*> 7d6c52d8 subqh_r\.ph t2,t3,t4
+0+00d8 <[^>]*> 7d8d5c58 subqh\.w t3,t4,t5
+0+00dc <[^>]*> 7dae64d8 subqh_r\.w t4,t5,t6
+0+00e0 <[^>]*> 7dae0a30 dpax\.w\.ph \$ac1,t5,t6
+0+00e4 <[^>]*> 7dcf1270 dpsx\.w\.ph \$ac2,t6,t7
+0+00e8 <[^>]*> 7df01e30 dpaqx_s\.w\.ph \$ac3,t7,s0
+0+00ec <[^>]*> 7e1106b0 dpaqx_sa\.w\.ph \$ac0,s0,s1
+0+00f0 <[^>]*> 7e320e70 dpsqx_s\.w\.ph \$ac1,s1,s2
+0+00f4 <[^>]*> 7e5316f0 dpsqx_sa\.w\.ph \$ac2,s2,s3
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32-imm.d b/gas/testsuite/gas/mips/mipsr6@mips32-imm.d
new file mode 100644
index 0000000..5a98f8d
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32-imm.d
@@ -0,0 +1,13 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPS32 WAIT and SDBBP instructions
+#as: -32
+#source: mips32-imm.s
+
+# Check MIPS32 WAIT and SDBBP instruction assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+[0-9a-f]+ <[^>]*> 4359e260 wait 0x56789
+[0-9a-f]+ <[^>]*> 0159e24e sdbbp 0x56789
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32.d b/gas/testsuite/gas/mips/mipsr6@mips32.d
new file mode 100644
index 0000000..e7af216
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32.d
@@ -0,0 +1,32 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPS32 instructions
+#as: -32
+#source: mips32.s
+
+# Check MIPS32 instruction assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 00400851 clo at,v0
+0+0004 <[^>]*> 00801850 clz v1,a0
+0+0008 <[^>]*> 01cf6898 mul t5,t6,t7
+0+000c <[^>]*> 7e040035 pref 0x4,0\(s0\)
+0+0010 <[^>]*> 00000040 ssnop
+0+0014 <[^>]*> 7c250025 cache 0x5,0\(at\)
+0+0018 <[^>]*> 42000018 eret
+0+001c <[^>]*> 42000008 tlbp
+0+0020 <[^>]*> 42000001 tlbr
+0+0024 <[^>]*> 42000002 tlbwi
+0+0028 <[^>]*> 42000006 tlbwr
+0+002c <[^>]*> 42000020 wait
+0+0030 <[^>]*> 42000020 wait
+0+0034 <[^>]*> 4200d160 wait 0x345
+0+0038 <[^>]*> 0000000d break
+0+003c <[^>]*> 0000000d break
+0+0040 <[^>]*> 0345000d break 0x345
+0+0044 <[^>]*> 0048d14d break 0x48,0x345
+0+0048 <[^>]*> 0000000e sdbbp
+0+004c <[^>]*> 0000000e sdbbp
+0+0050 <[^>]*> 0000d14e sdbbp 0x345
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32r2-ill.l b/gas/testsuite/gas/mips/mipsr6@mips32r2-ill.l
new file mode 100644
index 0000000..adffffd
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32r2-ill.l
@@ -0,0 +1,13 @@
+.*: Assembler messages:
+.*:12: Error: operand 3 out of range `ext \$4,\$5,-1,1'
+.*:15: Error: operand 3 out of range `ext \$4,\$5,32,1'
+.*:18: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:21: Error: operand 4 out of range `ext \$4,\$5,0,33'
+.*:24: Error: operand 4 out of range `ext \$4,\$5,0,0'
+.*:27: Error: operand 4 out of range `ext \$4,\$5,31,2'
+.*:30: Error: operand 3 out of range `ins \$4,\$5,-1,1'
+.*:33: Error: operand 3 out of range `ins \$4,\$5,32,1'
+.*:36: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:39: Error: operand 4 out of range `ins \$4,\$5,0,33'
+.*:42: Error: operand 4 out of range `ins \$4,\$5,0,0'
+.*:45: Error: operand 4 out of range `ins \$4,\$5,31,2'
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32r2-ill.s b/gas/testsuite/gas/mips/mipsr6@mips32r2-ill.s
new file mode 100644
index 0000000..0564316
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32r2-ill.s
@@ -0,0 +1,58 @@
+# source file to test illegal mips32r2 instructions
+
+ .set noreorder
+ .set noat
+
+ .text
+text_label:
+
+ # insert and extract position/size checks:
+
+ # ext constraint: 0 <= pos < 32
+ ext $4, $5, -1, 1 # error
+ ext $4, $5, 0, 1
+ ext $4, $5, 31, 1
+ ext $4, $5, 32, 1 # error
+
+ # ext constraint: 0 < size <= 32
+ ext $4, $5, 0, 0 # error
+ ext $4, $5, 0, 1
+ ext $4, $5, 0, 32
+ ext $4, $5, 0, 33 # error
+
+ # ext constraint: 0 < (pos+size) <= 32
+ ext $4, $5, 0, 0 # error
+ ext $4, $5, 0, 1
+ ext $4, $5, 31, 1
+ ext $4, $5, 31, 2 # error
+
+ # ins constraint: 0 <= pos < 32
+ ins $4, $5, -1, 1 # error
+ ins $4, $5, 0, 1
+ ins $4, $5, 31, 1
+ ins $4, $5, 32, 1 # error
+
+ # ins constraint: 0 < size <= 32
+ ins $4, $5, 0, 0 # error
+ ins $4, $5, 0, 1
+ ins $4, $5, 0, 32
+ ins $4, $5, 0, 33 # error
+
+ # ins constraint: 0 < (pos+size) <= 32
+ ins $4, $5, 0, 0 # error
+ ins $4, $5, 0, 1
+ ins $4, $5, 31, 1
+ ins $4, $5, 31, 2 # error
+
+ # FP register checks.
+ #
+ # Even registers are supported w/ 32-bit FPU, odd
+ # registers supported only for 64-bit FPU.
+ # This file tests 32-bit FPU.
+
+ mfhc1 $17, $f0
+
+ mthc1 $17, $f0
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .space 8
diff --git a/gas/testsuite/gas/mips/mipsr6@mips32r2.d b/gas/testsuite/gas/mips/mipsr6@mips32r2.d
new file mode 100644
index 0000000..dbf680c
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips32r2.d
@@ -0,0 +1,45 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M reg-names=numeric
+#name: MIPS MIPS32r2 non-fp instructions
+#as: -32
+#source: mips32r2.s
+
+# Check MIPS32 Release 2 (mips32r2) *non-fp* instruction assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 000000c0 ehb
+0+0004 <[^>]*> 7ca43980 ext \$4,\$5,0x6,0x8
+0+0008 <[^>]*> 7ca46984 ins \$4,\$5,0x6,0x8
+0+000c <[^>]*> 0100fc09 jalr.hb \$8
+0+0010 <[^>]*> 0120a409 jalr.hb \$20,\$9
+0+0014 <[^>]*> 01000409 jr.hb \$8
+0+0018 <[^>]*> 7c0a003b rdhwr \$10,\$0
+0+001c <[^>]*> 7c0b083b rdhwr \$11,\$1
+0+0020 <[^>]*> 7c0c103b rdhwr \$12,\$2
+0+0024 <[^>]*> 7c0d183b rdhwr \$13,\$3
+0+0028 <[^>]*> 7c0e203b rdhwr \$14,\$4
+0+002c <[^>]*> 7c0f283b rdhwr \$15,\$5
+0+0030 <[^>]*> 002acf02 ror \$25,\$10,0x1c
+0+0034 <[^>]*> 002ac902 ror \$25,\$10,0x4
+0+0038 <[^>]*> 0004c823 negu \$25,\$4
+0+003c <[^>]*> 032ac846 rorv \$25,\$10,\$25
+0+0040 <[^>]*> 008ac846 rorv \$25,\$10,\$4
+0+0044 <[^>]*> 008ac846 rorv \$25,\$10,\$4
+0+0048 <[^>]*> 7c073c20 seb \$7,\$7
+0+004c <[^>]*> 7c0a4420 seb \$8,\$10
+0+0050 <[^>]*> 7c073e20 seh \$7,\$7
+0+0054 <[^>]*> 7c0a4620 seh \$8,\$10
+0+0058 <[^>]*> 055f5555 synci 21845\(\$10\)
+0+005c <[^>]*> 7c0738a0 wsbh \$7,\$7
+0+0060 <[^>]*> 7c0a40a0 wsbh \$8,\$10
+0+0064 <[^>]*> 41606000 di
+0+0068 <[^>]*> 41606000 di
+0+006c <[^>]*> 416a6000 di \$10
+0+0070 <[^>]*> 41606020 ei
+0+0074 <[^>]*> 41606020 ei
+0+0078 <[^>]*> 416a6020 ei \$10
+0+007c <[^>]*> 41595000 rdpgpr \$10,\$25
+0+0080 <[^>]*> 41d95000 wrpgpr \$10,\$25
+0+0084 <[^>]*> 00000140 pause
+ ...
diff --git a/gas/testsuite/gas/mips/mipsr6@mips4-fp.d b/gas/testsuite/gas/mips/mipsr6@mips4-fp.d
new file mode 100644
index 0000000..a81a423
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips4-fp.d
@@ -0,0 +1,13 @@
+#objdump: -dr --prefix-addresses
+#name: MIPS mips4 fp
+
+# Test mips4 fp instructions.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> recip.d \$f4,\$f6
+[0-9a-f]+ <[^>]*> recip.s \$f4,\$f6
+[0-9a-f]+ <[^>]*> rsqrt.d \$f4,\$f6
+[0-9a-f]+ <[^>]*> rsqrt.s \$f4,\$f6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@mips4-fp.l b/gas/testsuite/gas/mips/mipsr6@mips4-fp.l
new file mode 100644
index 0000000..85aef3d
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips4-fp.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*:4: Error: opcode not supported on this processor: .* \(.*\) `recip.d \$f4,\$f6'
+.*:5: Error: opcode not supported on this processor: .* \(.*\) `recip.s \$f4,\$f6'
+.*:6: Error: opcode not supported on this processor: .* \(.*\) `rsqrt.d \$f4,\$f6'
+.*:7: Error: opcode not supported on this processor: .* \(.*\) `rsqrt.s \$f4,\$f6'
diff --git a/gas/testsuite/gas/mips/mipsr6@mips4-fp.s b/gas/testsuite/gas/mips/mipsr6@mips4-fp.s
new file mode 100644
index 0000000..4d124e5
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips4-fp.s
@@ -0,0 +1,11 @@
+# Source file used to test -mips4 fp instructions.
+
+text_label:
+ recip.d $f4,$f6
+ recip.s $f4,$f6
+ rsqrt.d $f4,$f6
+ rsqrt.s $f4,$f6
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 2
+ .space 8
diff --git a/gas/testsuite/gas/mips/mipsr6@mips4.d b/gas/testsuite/gas/mips/mipsr6@mips4.d
new file mode 100644
index 0000000..08b6d96
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips4.d
@@ -0,0 +1,11 @@
+#objdump: -dr --prefix-addresses
+#name: MIPS mips4 non-fp
+#source: mips4.s
+
+# Test mips4 *non-fp* insturctions.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> pref 0x4,0\(a0\)
+ ...
diff --git a/gas/testsuite/gas/mips/mipsr6@mips5-fp.d b/gas/testsuite/gas/mips/mipsr6@mips5-fp.d
new file mode 100644
index 0000000..77244fb
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips5-fp.d
@@ -0,0 +1,12 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M reg-names=numeric
+#name: MIPS mips5 instructions
+#stderr: mipsr6@mips5-fp.l
+
+# Check MIPS V instruction assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> 46c09428 cvt\.s\.pl \$f16,\$f18
+0+0004 <[^>]*> 46c0a4a0 cvt\.s\.pu \$f18,\$f20
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@mips5-fp.l b/gas/testsuite/gas/mips/mipsr6@mips5-fp.l
new file mode 100644
index 0000000..927ff97
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips5-fp.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:4: Warning: condition code register should be even for c.eq.ps, was 3
+.*:5: Warning: condition code register should be even for movf.ps, was 3
diff --git a/gas/testsuite/gas/mips/mipsr6@mips5-fp.s b/gas/testsuite/gas/mips/mipsr6@mips5-fp.s
new file mode 100644
index 0000000..6bee111
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips5-fp.s
@@ -0,0 +1,8 @@
+# Source file used to test -mips5 instructions.
+
+text_label:
+ cvt.s.pl $f16, $f18
+ cvt.s.pu $f18, $f20
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .space 8
diff --git a/gas/testsuite/gas/mips/mipsr6@mips64.d b/gas/testsuite/gas/mips/mipsr6@mips64.d
new file mode 100644
index 0000000..c9e732c
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@mips64.d
@@ -0,0 +1,13 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPS64 instructions
+#as: -32
+#source: mips64.s
+
+# Check MIPS64 instruction assembly
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 00400853 dclo at,v0
+0+0004 <[^>]*> 00801852 dclz v1,a0
+#pass
diff --git a/gas/testsuite/gas/mips/mipsr6@msa-branch.d b/gas/testsuite/gas/mips/mipsr6@msa-branch.d
new file mode 100644
index 0000000..3466145
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@msa-branch.d
@@ -0,0 +1,309 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -Mmsa
+#name: MSA branch reorder
+#as: -32 -mmsa
+#source: msa-branch.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4700.... bz\.b \$w0,[0-9a-f]+ <[^>]*>
+[ ]*4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4701.... bz\.b \$w1,[0-9a-f]+ <[^>]*>
+[ ]*c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4702.... bz\.b \$w2,[0-9a-f]+ <[^>]*>
+[ ]*14: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4700.... bz\.b \$w0,[0-9a-f]+ <[^>]*>
+[ ]*20: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4701.... bz\.b \$w1,[0-9a-f]+ <[^>]*>
+[ ]*28: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4702.... bz\.b \$w2,[0-9a-f]+ <[^>]*>
+[ ]*30: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4700.... bz\.b \$w0,[0-9a-f]+ <[^>]*>
+[ ]*3c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4701.... bz\.b \$w1,[0-9a-f]+ <[^>]*>
+[ ]*44: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4702.... bz\.b \$w2,[0-9a-f]+ <[^>]*>
+[ ]*4c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4720.... bz\.h \$w0,[0-9a-f]+ <[^>]*>
+[ ]*58: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4721.... bz\.h \$w1,[0-9a-f]+ <[^>]*>
+[ ]*60: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4722.... bz\.h \$w2,[0-9a-f]+ <[^>]*>
+[ ]*68: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4720.... bz\.h \$w0,[0-9a-f]+ <[^>]*>
+[ ]*74: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4721.... bz\.h \$w1,[0-9a-f]+ <[^>]*>
+[ ]*7c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4722.... bz\.h \$w2,[0-9a-f]+ <[^>]*>
+[ ]*84: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4720.... bz\.h \$w0,[0-9a-f]+ <[^>]*>
+[ ]*90: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4721.... bz\.h \$w1,[0-9a-f]+ <[^>]*>
+[ ]*98: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4722.... bz\.h \$w2,[0-9a-f]+ <[^>]*>
+[ ]*a0: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4740.... bz\.w \$w0,[0-9a-f]+ <[^>]*>
+[ ]*ac: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4741.... bz\.w \$w1,[0-9a-f]+ <[^>]*>
+[ ]*b4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4742.... bz\.w \$w2,[0-9a-f]+ <[^>]*>
+[ ]*bc: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4740.... bz\.w \$w0,[0-9a-f]+ <[^>]*>
+[ ]*c8: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4741.... bz\.w \$w1,[0-9a-f]+ <[^>]*>
+[ ]*d0: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4742.... bz\.w \$w2,[0-9a-f]+ <[^>]*>
+[ ]*d8: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4740.... bz\.w \$w0,[0-9a-f]+ <[^>]*>
+[ ]*e4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4741.... bz\.w \$w1,[0-9a-f]+ <[^>]*>
+[ ]*ec: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4742.... bz\.w \$w2,[0-9a-f]+ <[^>]*>
+[ ]*f4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4760.... bz\.d \$w0,[0-9a-f]+ <[^>]*>
+[ ]*100: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4761.... bz\.d \$w1,[0-9a-f]+ <[^>]*>
+[ ]*108: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4762.... bz\.d \$w2,[0-9a-f]+ <[^>]*>
+[ ]*110: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4760.... bz\.d \$w0,[0-9a-f]+ <[^>]*>
+[ ]*11c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4761.... bz\.d \$w1,[0-9a-f]+ <[^>]*>
+[ ]*124: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4762.... bz\.d \$w2,[0-9a-f]+ <[^>]*>
+[ ]*12c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4760.... bz\.d \$w0,[0-9a-f]+ <[^>]*>
+[ ]*138: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4761.... bz\.d \$w1,[0-9a-f]+ <[^>]*>
+[ ]*140: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4762.... bz\.d \$w2,[0-9a-f]+ <[^>]*>
+[ ]*148: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4560.... bz\.v \$w0,[0-9a-f]+ <[^>]*>
+[ ]*154: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4561.... bz\.v \$w1,[0-9a-f]+ <[^>]*>
+[ ]*15c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4562.... bz\.v \$w2,[0-9a-f]+ <[^>]*>
+[ ]*164: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4560.... bz\.v \$w0,[0-9a-f]+ <[^>]*>
+[ ]*170: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4561.... bz\.v \$w1,[0-9a-f]+ <[^>]*>
+[ ]*178: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4562.... bz\.v \$w2,[0-9a-f]+ <[^>]*>
+[ ]*180: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4560.... bz\.v \$w0,[0-9a-f]+ <[^>]*>
+[ ]*18c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4561.... bz\.v \$w1,[0-9a-f]+ <[^>]*>
+[ ]*194: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4562.... bz\.v \$w2,[0-9a-f]+ <[^>]*>
+[ ]*19c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4780.... bnz\.b \$w0,[0-9a-f]+ <[^>]*>
+[ ]*1a8: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4781.... bnz\.b \$w1,[0-9a-f]+ <[^>]*>
+[ ]*1b0: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 4782.... bnz\.b \$w2,[0-9a-f]+ <[^>]*>
+[ ]*1b8: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4780.... bnz\.b \$w0,[0-9a-f]+ <[^>]*>
+[ ]*1c4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4781.... bnz\.b \$w1,[0-9a-f]+ <[^>]*>
+[ ]*1cc: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 4782.... bnz\.b \$w2,[0-9a-f]+ <[^>]*>
+[ ]*1d4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4780.... bnz\.b \$w0,[0-9a-f]+ <[^>]*>
+[ ]*1e0: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4781.... bnz\.b \$w1,[0-9a-f]+ <[^>]*>
+[ ]*1e8: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 4782.... bnz\.b \$w2,[0-9a-f]+ <[^>]*>
+[ ]*1f0: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47a0.... bnz\.h \$w0,[0-9a-f]+ <[^>]*>
+[ ]*1fc: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47a1.... bnz\.h \$w1,[0-9a-f]+ <[^>]*>
+[ ]*204: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47a2.... bnz\.h \$w2,[0-9a-f]+ <[^>]*>
+[ ]*20c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47a0.... bnz\.h \$w0,[0-9a-f]+ <[^>]*>
+[ ]*218: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47a1.... bnz\.h \$w1,[0-9a-f]+ <[^>]*>
+[ ]*220: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47a2.... bnz\.h \$w2,[0-9a-f]+ <[^>]*>
+[ ]*228: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47a0.... bnz\.h \$w0,[0-9a-f]+ <[^>]*>
+[ ]*234: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47a1.... bnz\.h \$w1,[0-9a-f]+ <[^>]*>
+[ ]*23c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47a2.... bnz\.h \$w2,[0-9a-f]+ <[^>]*>
+[ ]*244: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47c0.... bnz\.w \$w0,[0-9a-f]+ <[^>]*>
+[ ]*250: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47c1.... bnz\.w \$w1,[0-9a-f]+ <[^>]*>
+[ ]*258: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47c2.... bnz\.w \$w2,[0-9a-f]+ <[^>]*>
+[ ]*260: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47c0.... bnz\.w \$w0,[0-9a-f]+ <[^>]*>
+[ ]*26c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47c1.... bnz\.w \$w1,[0-9a-f]+ <[^>]*>
+[ ]*274: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47c2.... bnz\.w \$w2,[0-9a-f]+ <[^>]*>
+[ ]*27c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47c0.... bnz\.w \$w0,[0-9a-f]+ <[^>]*>
+[ ]*288: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47c1.... bnz\.w \$w1,[0-9a-f]+ <[^>]*>
+[ ]*290: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47c2.... bnz\.w \$w2,[0-9a-f]+ <[^>]*>
+[ ]*298: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47e0.... bnz\.d \$w0,[0-9a-f]+ <[^>]*>
+[ ]*2a4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47e1.... bnz\.d \$w1,[0-9a-f]+ <[^>]*>
+[ ]*2ac: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 47e2.... bnz\.d \$w2,[0-9a-f]+ <[^>]*>
+[ ]*2b4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47e0.... bnz\.d \$w0,[0-9a-f]+ <[^>]*>
+[ ]*2c0: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47e1.... bnz\.d \$w1,[0-9a-f]+ <[^>]*>
+[ ]*2c8: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 47e2.... bnz\.d \$w2,[0-9a-f]+ <[^>]*>
+[ ]*2d0: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47e0.... bnz\.d \$w0,[0-9a-f]+ <[^>]*>
+[ ]*2dc: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47e1.... bnz\.d \$w1,[0-9a-f]+ <[^>]*>
+[ ]*2e4: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 47e2.... bnz\.d \$w2,[0-9a-f]+ <[^>]*>
+[ ]*2ec: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 45e0.... bnz\.v \$w0,[0-9a-f]+ <[^>]*>
+[ ]*2f8: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45e1.... bnz\.v \$w1,[0-9a-f]+ <[^>]*>
+[ ]*300: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 45e2.... bnz\.v \$w2,[0-9a-f]+ <[^>]*>
+[ ]*308: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 7aa2081c fsune\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 45e0.... bnz\.v \$w0,[0-9a-f]+ <[^>]*>
+[ ]*314: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45e1.... bnz\.v \$w1,[0-9a-f]+ <[^>]*>
+[ ]*31c: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 45e2.... bnz\.v \$w2,[0-9a-f]+ <[^>]*>
+[ ]*324: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46020800 add\.s \$f0,\$f1,\$f2
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 45e0.... bnz\.v \$w0,[0-9a-f]+ <[^>]*>
+[ ]*330: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45e1.... bnz\.v \$w1,[0-9a-f]+ <[^>]*>
+[ ]*338: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+[0-9a-f]+ <[^>]*> 45e2.... bnz\.v \$w2,[0-9a-f]+ <[^>]*>
+[ ]*340: .*R_MIPS_PC16 test
+[0-9a-f]+ <[^>]*> 46241000 add\.d \$f0,\$f2,\$f4
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@msa.d b/gas/testsuite/gas/mips/mipsr6@msa.d
new file mode 100644
index 0000000..4471c95
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@msa.d
@@ -0,0 +1,788 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -Mmsa
+#name: MSA instructions
+#as: -32 -mmsa --defsym insn_log2=2
+#source: msa.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 7802080d sll\.b \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 782520cd sll\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7848398d sll\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 786b524d sll\.d \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 78706b09 slli\.b \$w12,\$w13,0x0
+[0-9a-f]+ <[^>]*> 78777b89 slli\.b \$w14,\$w15,0x7
+[0-9a-f]+ <[^>]*> 78608c09 slli\.h \$w16,\$w17,0x0
+[0-9a-f]+ <[^>]*> 786f9c89 slli\.h \$w18,\$w19,0xf
+[0-9a-f]+ <[^>]*> 7840ad09 slli\.w \$w20,\$w21,0x0
+[0-9a-f]+ <[^>]*> 785fbd89 slli\.w \$w22,\$w23,0x1f
+[0-9a-f]+ <[^>]*> 7800ce09 slli\.d \$w24,\$w25,0x0
+[0-9a-f]+ <[^>]*> 783fde89 slli\.d \$w26,\$w27,0x3f
+[0-9a-f]+ <[^>]*> 789eef0d sra\.b \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 78a107cd sra\.h \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 78c4188d sra\.w \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 78e7314d sra\.d \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 78f04a09 srai\.b \$w8,\$w9,0x0
+[0-9a-f]+ <[^>]*> 78f75a89 srai\.b \$w10,\$w11,0x7
+[0-9a-f]+ <[^>]*> 78e06b09 srai\.h \$w12,\$w13,0x0
+[0-9a-f]+ <[^>]*> 78ef7b89 srai\.h \$w14,\$w15,0xf
+[0-9a-f]+ <[^>]*> 78c08c09 srai\.w \$w16,\$w17,0x0
+[0-9a-f]+ <[^>]*> 78df9c89 srai\.w \$w18,\$w19,0x1f
+[0-9a-f]+ <[^>]*> 7880ad09 srai\.d \$w20,\$w21,0x0
+[0-9a-f]+ <[^>]*> 78bfbd89 srai\.d \$w22,\$w23,0x3f
+[0-9a-f]+ <[^>]*> 791ace0d srl\.b \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 793de6cd srl\.h \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7940ff8d srl\.w \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 7963104d srl\.d \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 79702909 srli\.b \$w4,\$w5,0x0
+[0-9a-f]+ <[^>]*> 79773989 srli\.b \$w6,\$w7,0x7
+[0-9a-f]+ <[^>]*> 79604a09 srli\.h \$w8,\$w9,0x0
+[0-9a-f]+ <[^>]*> 796f5a89 srli\.h \$w10,\$w11,0xf
+[0-9a-f]+ <[^>]*> 79406b09 srli\.w \$w12,\$w13,0x0
+[0-9a-f]+ <[^>]*> 795f7b89 srli\.w \$w14,\$w15,0x1f
+[0-9a-f]+ <[^>]*> 79008c09 srli\.d \$w16,\$w17,0x0
+[0-9a-f]+ <[^>]*> 793f9c89 srli\.d \$w18,\$w19,0x3f
+[0-9a-f]+ <[^>]*> 7996ad0d bclr\.b \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 79b9c5cd bclr\.h \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 79dcde8d bclr\.w \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 79fff74d bclr\.d \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 79f00809 bclri\.b \$w0,\$w1,0x0
+[0-9a-f]+ <[^>]*> 79f71889 bclri\.b \$w2,\$w3,0x7
+[0-9a-f]+ <[^>]*> 79e02909 bclri\.h \$w4,\$w5,0x0
+[0-9a-f]+ <[^>]*> 79ef3989 bclri\.h \$w6,\$w7,0xf
+[0-9a-f]+ <[^>]*> 79c04a09 bclri\.w \$w8,\$w9,0x0
+[0-9a-f]+ <[^>]*> 79df5a89 bclri\.w \$w10,\$w11,0x1f
+[0-9a-f]+ <[^>]*> 79806b09 bclri\.d \$w12,\$w13,0x0
+[0-9a-f]+ <[^>]*> 79bf7b89 bclri\.d \$w14,\$w15,0x3f
+[0-9a-f]+ <[^>]*> 7a128c0d bset\.b \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 7a35a4cd bset\.h \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7a58bd8d bset\.w \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 7a7bd64d bset\.d \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 7a70ef09 bseti\.b \$w28,\$w29,0x0
+[0-9a-f]+ <[^>]*> 7a77ff89 bseti\.b \$w30,\$w31,0x7
+[0-9a-f]+ <[^>]*> 7a600809 bseti\.h \$w0,\$w1,0x0
+[0-9a-f]+ <[^>]*> 7a6f1889 bseti\.h \$w2,\$w3,0xf
+[0-9a-f]+ <[^>]*> 7a402909 bseti\.w \$w4,\$w5,0x0
+[0-9a-f]+ <[^>]*> 7a5f3989 bseti\.w \$w6,\$w7,0x1f
+[0-9a-f]+ <[^>]*> 7a004a09 bseti\.d \$w8,\$w9,0x0
+[0-9a-f]+ <[^>]*> 7a3f5a89 bseti\.d \$w10,\$w11,0x3f
+[0-9a-f]+ <[^>]*> 7a8e6b0d bneg\.b \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 7ab183cd bneg\.h \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 7ad49c8d bneg\.w \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7af7b54d bneg\.d \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 7af0ce09 bnegi\.b \$w24,\$w25,0x0
+[0-9a-f]+ <[^>]*> 7af7de89 bnegi\.b \$w26,\$w27,0x7
+[0-9a-f]+ <[^>]*> 7ae0ef09 bnegi\.h \$w28,\$w29,0x0
+[0-9a-f]+ <[^>]*> 7aefff89 bnegi\.h \$w30,\$w31,0xf
+[0-9a-f]+ <[^>]*> 7ac00809 bnegi\.w \$w0,\$w1,0x0
+[0-9a-f]+ <[^>]*> 7adf1889 bnegi\.w \$w2,\$w3,0x1f
+[0-9a-f]+ <[^>]*> 7a802909 bnegi\.d \$w4,\$w5,0x0
+[0-9a-f]+ <[^>]*> 7abf3989 bnegi\.d \$w6,\$w7,0x3f
+[0-9a-f]+ <[^>]*> 7b0a4a0d binsl\.b \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 7b2d62cd binsl\.h \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 7b507b8d binsl\.w \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7b73944d binsl\.d \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7b70ad09 binsli\.b \$w20,\$w21,0x0
+[0-9a-f]+ <[^>]*> 7b77bd89 binsli\.b \$w22,\$w23,0x7
+[0-9a-f]+ <[^>]*> 7b60ce09 binsli\.h \$w24,\$w25,0x0
+[0-9a-f]+ <[^>]*> 7b6fde89 binsli\.h \$w26,\$w27,0xf
+[0-9a-f]+ <[^>]*> 7b40ef09 binsli\.w \$w28,\$w29,0x0
+[0-9a-f]+ <[^>]*> 7b5fff89 binsli\.w \$w30,\$w31,0x1f
+[0-9a-f]+ <[^>]*> 7b000809 binsli\.d \$w0,\$w1,0x0
+[0-9a-f]+ <[^>]*> 7b3f1889 binsli\.d \$w2,\$w3,0x3f
+[0-9a-f]+ <[^>]*> 7b86290d binsr\.b \$w4,\$w5,\$w6
+[0-9a-f]+ <[^>]*> 7ba941cd binsr\.h \$w7,\$w8,\$w9
+[0-9a-f]+ <[^>]*> 7bcc5a8d binsr\.w \$w10,\$w11,\$w12
+[0-9a-f]+ <[^>]*> 7bef734d binsr\.d \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 7bf08c09 binsri\.b \$w16,\$w17,0x0
+[0-9a-f]+ <[^>]*> 7bf79c89 binsri\.b \$w18,\$w19,0x7
+[0-9a-f]+ <[^>]*> 7be0ad09 binsri\.h \$w20,\$w21,0x0
+[0-9a-f]+ <[^>]*> 7befbd89 binsri\.h \$w22,\$w23,0xf
+[0-9a-f]+ <[^>]*> 7bc0ce09 binsri\.w \$w24,\$w25,0x0
+[0-9a-f]+ <[^>]*> 7bdfde89 binsri\.w \$w26,\$w27,0x1f
+[0-9a-f]+ <[^>]*> 7b80ef09 binsri\.d \$w28,\$w29,0x0
+[0-9a-f]+ <[^>]*> 7bbfff89 binsri\.d \$w30,\$w31,0x3f
+[0-9a-f]+ <[^>]*> 7802080e addv\.b \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 782520ce addv\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7848398e addv\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 786b524e addv\.d \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 78006b06 addvi\.b \$w12,\$w13,0
+[0-9a-f]+ <[^>]*> 781f7b86 addvi\.b \$w14,\$w15,31
+[0-9a-f]+ <[^>]*> 78208c06 addvi\.h \$w16,\$w17,0
+[0-9a-f]+ <[^>]*> 783f9c86 addvi\.h \$w18,\$w19,31
+[0-9a-f]+ <[^>]*> 7840ad06 addvi\.w \$w20,\$w21,0
+[0-9a-f]+ <[^>]*> 785fbd86 addvi\.w \$w22,\$w23,31
+[0-9a-f]+ <[^>]*> 7860ce06 addvi\.d \$w24,\$w25,0
+[0-9a-f]+ <[^>]*> 787fde86 addvi\.d \$w26,\$w27,31
+[0-9a-f]+ <[^>]*> 789eef0e subv\.b \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 78a107ce subv\.h \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 78c4188e subv\.w \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 78e7314e subv\.d \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 78804a06 subvi\.b \$w8,\$w9,0
+[0-9a-f]+ <[^>]*> 789f5a86 subvi\.b \$w10,\$w11,31
+[0-9a-f]+ <[^>]*> 78a06b06 subvi\.h \$w12,\$w13,0
+[0-9a-f]+ <[^>]*> 78bf7b86 subvi\.h \$w14,\$w15,31
+[0-9a-f]+ <[^>]*> 78c08c06 subvi\.w \$w16,\$w17,0
+[0-9a-f]+ <[^>]*> 78df9c86 subvi\.w \$w18,\$w19,31
+[0-9a-f]+ <[^>]*> 78e0ad06 subvi\.d \$w20,\$w21,0
+[0-9a-f]+ <[^>]*> 78ffbd86 subvi\.d \$w22,\$w23,31
+[0-9a-f]+ <[^>]*> 791ace0e max_s\.b \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 793de6ce max_s\.h \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7940ff8e max_s\.w \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 7963104e max_s\.d \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 79102906 maxi_s\.b \$w4,\$w5,-16
+[0-9a-f]+ <[^>]*> 790f3986 maxi_s\.b \$w6,\$w7,15
+[0-9a-f]+ <[^>]*> 79304a06 maxi_s\.h \$w8,\$w9,-16
+[0-9a-f]+ <[^>]*> 792f5a86 maxi_s\.h \$w10,\$w11,15
+[0-9a-f]+ <[^>]*> 79506b06 maxi_s\.w \$w12,\$w13,-16
+[0-9a-f]+ <[^>]*> 794f7b86 maxi_s\.w \$w14,\$w15,15
+[0-9a-f]+ <[^>]*> 79708c06 maxi_s\.d \$w16,\$w17,-16
+[0-9a-f]+ <[^>]*> 796f9c86 maxi_s\.d \$w18,\$w19,15
+[0-9a-f]+ <[^>]*> 7996ad0e max_u\.b \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 79b9c5ce max_u\.h \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 79dcde8e max_u\.w \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 79fff74e max_u\.d \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 79800806 maxi_u\.b \$w0,\$w1,0
+[0-9a-f]+ <[^>]*> 799f1886 maxi_u\.b \$w2,\$w3,31
+[0-9a-f]+ <[^>]*> 79a02906 maxi_u\.h \$w4,\$w5,0
+[0-9a-f]+ <[^>]*> 79bf3986 maxi_u\.h \$w6,\$w7,31
+[0-9a-f]+ <[^>]*> 79c04a06 maxi_u\.w \$w8,\$w9,0
+[0-9a-f]+ <[^>]*> 79df5a86 maxi_u\.w \$w10,\$w11,31
+[0-9a-f]+ <[^>]*> 79e06b06 maxi_u\.d \$w12,\$w13,0
+[0-9a-f]+ <[^>]*> 79ff7b86 maxi_u\.d \$w14,\$w15,31
+[0-9a-f]+ <[^>]*> 7a128c0e min_s\.b \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 7a35a4ce min_s\.h \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7a58bd8e min_s\.w \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 7a7bd64e min_s\.d \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 7a10ef06 mini_s\.b \$w28,\$w29,-16
+[0-9a-f]+ <[^>]*> 7a0fff86 mini_s\.b \$w30,\$w31,15
+[0-9a-f]+ <[^>]*> 7a300806 mini_s\.h \$w0,\$w1,-16
+[0-9a-f]+ <[^>]*> 7a2f1886 mini_s\.h \$w2,\$w3,15
+[0-9a-f]+ <[^>]*> 7a502906 mini_s\.w \$w4,\$w5,-16
+[0-9a-f]+ <[^>]*> 7a4f3986 mini_s\.w \$w6,\$w7,15
+[0-9a-f]+ <[^>]*> 7a704a06 mini_s\.d \$w8,\$w9,-16
+[0-9a-f]+ <[^>]*> 7a6f5a86 mini_s\.d \$w10,\$w11,15
+[0-9a-f]+ <[^>]*> 7a8e6b0e min_u\.b \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 7ab183ce min_u\.h \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 7ad49c8e min_u\.w \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7af7b54e min_u\.d \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 7a80ce06 mini_u\.b \$w24,\$w25,0
+[0-9a-f]+ <[^>]*> 7a9fde86 mini_u\.b \$w26,\$w27,31
+[0-9a-f]+ <[^>]*> 7aa0ef06 mini_u\.h \$w28,\$w29,0
+[0-9a-f]+ <[^>]*> 7abfff86 mini_u\.h \$w30,\$w31,31
+[0-9a-f]+ <[^>]*> 7ac00806 mini_u\.w \$w0,\$w1,0
+[0-9a-f]+ <[^>]*> 7adf1886 mini_u\.w \$w2,\$w3,31
+[0-9a-f]+ <[^>]*> 7ae02906 mini_u\.d \$w4,\$w5,0
+[0-9a-f]+ <[^>]*> 7aff3986 mini_u\.d \$w6,\$w7,31
+[0-9a-f]+ <[^>]*> 7b0a4a0e max_a\.b \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 7b2d62ce max_a\.h \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 7b507b8e max_a\.w \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7b73944e max_a\.d \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7b96ad0e min_a\.b \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7bb9c5ce min_a\.h \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 7bdcde8e min_a\.w \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 7bfff74e min_a\.d \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 7802080f ceq\.b \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 782520cf ceq\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7848398f ceq\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 786b524f ceq\.d \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 78106b07 ceqi\.b \$w12,\$w13,-16
+[0-9a-f]+ <[^>]*> 780f7b87 ceqi\.b \$w14,\$w15,15
+[0-9a-f]+ <[^>]*> 78308c07 ceqi\.h \$w16,\$w17,-16
+[0-9a-f]+ <[^>]*> 782f9c87 ceqi\.h \$w18,\$w19,15
+[0-9a-f]+ <[^>]*> 7850ad07 ceqi\.w \$w20,\$w21,-16
+[0-9a-f]+ <[^>]*> 784fbd87 ceqi\.w \$w22,\$w23,15
+[0-9a-f]+ <[^>]*> 7870ce07 ceqi\.d \$w24,\$w25,-16
+[0-9a-f]+ <[^>]*> 786fde87 ceqi\.d \$w26,\$w27,15
+[0-9a-f]+ <[^>]*> 791eef0f clt_s\.b \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 792107cf clt_s\.h \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 7944188f clt_s\.w \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 7967314f clt_s\.d \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 79104a07 clti_s\.b \$w8,\$w9,-16
+[0-9a-f]+ <[^>]*> 790f5a87 clti_s\.b \$w10,\$w11,15
+[0-9a-f]+ <[^>]*> 79306b07 clti_s\.h \$w12,\$w13,-16
+[0-9a-f]+ <[^>]*> 792f7b87 clti_s\.h \$w14,\$w15,15
+[0-9a-f]+ <[^>]*> 79508c07 clti_s\.w \$w16,\$w17,-16
+[0-9a-f]+ <[^>]*> 794f9c87 clti_s\.w \$w18,\$w19,15
+[0-9a-f]+ <[^>]*> 7970ad07 clti_s\.d \$w20,\$w21,-16
+[0-9a-f]+ <[^>]*> 796fbd87 clti_s\.d \$w22,\$w23,15
+[0-9a-f]+ <[^>]*> 799ace0f clt_u\.b \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 79bde6cf clt_u\.h \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 79c0ff8f clt_u\.w \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 79e3104f clt_u\.d \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 79802907 clti_u\.b \$w4,\$w5,0
+[0-9a-f]+ <[^>]*> 799f3987 clti_u\.b \$w6,\$w7,31
+[0-9a-f]+ <[^>]*> 79a04a07 clti_u\.h \$w8,\$w9,0
+[0-9a-f]+ <[^>]*> 79bf5a87 clti_u\.h \$w10,\$w11,31
+[0-9a-f]+ <[^>]*> 79c06b07 clti_u\.w \$w12,\$w13,0
+[0-9a-f]+ <[^>]*> 79df7b87 clti_u\.w \$w14,\$w15,31
+[0-9a-f]+ <[^>]*> 79e08c07 clti_u\.d \$w16,\$w17,0
+[0-9a-f]+ <[^>]*> 79ff9c87 clti_u\.d \$w18,\$w19,31
+[0-9a-f]+ <[^>]*> 7a16ad0f cle_s\.b \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7a39c5cf cle_s\.h \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 7a5cde8f cle_s\.w \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 7a7ff74f cle_s\.d \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 7a100807 clei_s\.b \$w0,\$w1,-16
+[0-9a-f]+ <[^>]*> 7a0f1887 clei_s\.b \$w2,\$w3,15
+[0-9a-f]+ <[^>]*> 7a302907 clei_s\.h \$w4,\$w5,-16
+[0-9a-f]+ <[^>]*> 7a2f3987 clei_s\.h \$w6,\$w7,15
+[0-9a-f]+ <[^>]*> 7a504a07 clei_s\.w \$w8,\$w9,-16
+[0-9a-f]+ <[^>]*> 7a4f5a87 clei_s\.w \$w10,\$w11,15
+[0-9a-f]+ <[^>]*> 7a706b07 clei_s\.d \$w12,\$w13,-16
+[0-9a-f]+ <[^>]*> 7a6f7b87 clei_s\.d \$w14,\$w15,15
+[0-9a-f]+ <[^>]*> 7a928c0f cle_u\.b \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 7ab5a4cf cle_u\.h \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7ad8bd8f cle_u\.w \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 7afbd64f cle_u\.d \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 7a80ef07 clei_u\.b \$w28,\$w29,0
+[0-9a-f]+ <[^>]*> 7a9fff87 clei_u\.b \$w30,\$w31,31
+[0-9a-f]+ <[^>]*> 7aa00807 clei_u\.h \$w0,\$w1,0
+[0-9a-f]+ <[^>]*> 7abf1887 clei_u\.h \$w2,\$w3,31
+[0-9a-f]+ <[^>]*> 7ac02907 clei_u\.w \$w4,\$w5,0
+[0-9a-f]+ <[^>]*> 7adf3987 clei_u\.w \$w6,\$w7,31
+[0-9a-f]+ <[^>]*> 7ae04a07 clei_u\.d \$w8,\$w9,0
+[0-9a-f]+ <[^>]*> 7aff5a87 clei_u\.d \$w10,\$w11,31
+[0-9a-f]+ <[^>]*> 7a006b20 ld\.b \$w12,-512\(t5\)
+[0-9a-f]+ <[^>]*> 79ff7ba0 ld\.b \$w14,511\(t7\)
+[0-9a-f]+ <[^>]*> 7a008c21 ld\.h \$w16,-1024\(s1\)
+[0-9a-f]+ <[^>]*> 79ff9ca1 ld\.h \$w18,1022\(s3\)
+[0-9a-f]+ <[^>]*> 7a00ad22 ld\.w \$w20,-2048\(s5\)
+[0-9a-f]+ <[^>]*> 79ffbda2 ld\.w \$w22,2044\(s7\)
+[0-9a-f]+ <[^>]*> 7a00ce23 ld\.d \$w24,-4096\(t9\)
+[0-9a-f]+ <[^>]*> 79ffdea3 ld\.d \$w26,4088\(k1\)
+[0-9a-f]+ <[^>]*> 7a00ef24 st\.b \$w28,-512\(sp\)
+[0-9a-f]+ <[^>]*> 79ffffa4 st\.b \$w30,511\(ra\)
+[0-9a-f]+ <[^>]*> 7a000825 st\.h \$w0,-1024\(at\)
+[0-9a-f]+ <[^>]*> 79ff18a5 st\.h \$w2,1022\(v1\)
+[0-9a-f]+ <[^>]*> 7a002926 st\.w \$w4,-2048\(a1\)
+[0-9a-f]+ <[^>]*> 79ff39a6 st\.w \$w6,2044\(a3\)
+[0-9a-f]+ <[^>]*> 7a004a27 st\.d \$w8,-4096\(t1\)
+[0-9a-f]+ <[^>]*> 79ff5aa7 st\.d \$w10,4088\(t3\)
+[0-9a-f]+ <[^>]*> 78706b0a sat_s\.b \$w12,\$w13,0x0
+[0-9a-f]+ <[^>]*> 78777b8a sat_s\.b \$w14,\$w15,0x7
+[0-9a-f]+ <[^>]*> 78608c0a sat_s\.h \$w16,\$w17,0x0
+[0-9a-f]+ <[^>]*> 786f9c8a sat_s\.h \$w18,\$w19,0xf
+[0-9a-f]+ <[^>]*> 7840ad0a sat_s\.w \$w20,\$w21,0x0
+[0-9a-f]+ <[^>]*> 785fbd8a sat_s\.w \$w22,\$w23,0x1f
+[0-9a-f]+ <[^>]*> 7800ce0a sat_s\.d \$w24,\$w25,0x0
+[0-9a-f]+ <[^>]*> 783fde8a sat_s\.d \$w26,\$w27,0x3f
+[0-9a-f]+ <[^>]*> 78f0ef0a sat_u\.b \$w28,\$w29,0x0
+[0-9a-f]+ <[^>]*> 78f7ff8a sat_u\.b \$w30,\$w31,0x7
+[0-9a-f]+ <[^>]*> 78e0080a sat_u\.h \$w0,\$w1,0x0
+[0-9a-f]+ <[^>]*> 78ef188a sat_u\.h \$w2,\$w3,0xf
+[0-9a-f]+ <[^>]*> 78c0290a sat_u\.w \$w4,\$w5,0x0
+[0-9a-f]+ <[^>]*> 78df398a sat_u\.w \$w6,\$w7,0x1f
+[0-9a-f]+ <[^>]*> 78804a0a sat_u\.d \$w8,\$w9,0x0
+[0-9a-f]+ <[^>]*> 78bf5a8a sat_u\.d \$w10,\$w11,0x3f
+[0-9a-f]+ <[^>]*> 780e6b10 add_a\.b \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 783183d0 add_a\.h \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 78549c90 add_a\.w \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7877b550 add_a\.d \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 789ace10 adds_a\.b \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 78bde6d0 adds_a\.h \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 78c0ff90 adds_a\.w \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 78e31050 adds_a\.d \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 79062910 adds_s\.b \$w4,\$w5,\$w6
+[0-9a-f]+ <[^>]*> 792941d0 adds_s\.h \$w7,\$w8,\$w9
+[0-9a-f]+ <[^>]*> 794c5a90 adds_s\.w \$w10,\$w11,\$w12
+[0-9a-f]+ <[^>]*> 796f7350 adds_s\.d \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 79928c10 adds_u\.b \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 79b5a4d0 adds_u\.h \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 79d8bd90 adds_u\.w \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 79fbd650 adds_u\.d \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 7a1eef10 ave_s\.b \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 7a2107d0 ave_s\.h \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 7a441890 ave_s\.w \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 7a673150 ave_s\.d \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 7a8a4a10 ave_u\.b \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 7aad62d0 ave_u\.h \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 7ad07b90 ave_u\.w \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7af39450 ave_u\.d \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7b16ad10 aver_s\.b \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7b39c5d0 aver_s\.h \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 7b5cde90 aver_s\.w \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 7b7ff750 aver_s\.d \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 7b820810 aver_u\.b \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 7ba520d0 aver_u\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7bc83990 aver_u\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 7beb5250 aver_u\.d \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 780e6b11 subs_s\.b \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 783183d1 subs_s\.h \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 78549c91 subs_s\.w \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7877b551 subs_s\.d \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 789ace11 subs_u\.b \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 78bde6d1 subs_u\.h \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 78c0ff91 subs_u\.w \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 78e31051 subs_u\.d \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 79062911 subsus_u\.b \$w4,\$w5,\$w6
+[0-9a-f]+ <[^>]*> 792941d1 subsus_u\.h \$w7,\$w8,\$w9
+[0-9a-f]+ <[^>]*> 794c5a91 subsus_u\.w \$w10,\$w11,\$w12
+[0-9a-f]+ <[^>]*> 796f7351 subsus_u\.d \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 79928c11 subsuu_s\.b \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 79b5a4d1 subsuu_s\.h \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 79d8bd91 subsuu_s\.w \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 79fbd651 subsuu_s\.d \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 7a1eef11 asub_s\.b \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 7a2107d1 asub_s\.h \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 7a441891 asub_s\.w \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 7a673151 asub_s\.d \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 7a8a4a11 asub_u\.b \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 7aad62d1 asub_u\.h \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 7ad07b91 asub_u\.w \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7af39451 asub_u\.d \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7816ad12 mulv\.b \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7839c5d2 mulv\.h \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 785cde92 mulv\.w \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 787ff752 mulv\.d \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 78820812 maddv\.b \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 78a520d2 maddv\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 78c83992 maddv\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 78eb5252 maddv\.d \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 790e6b12 msubv\.b \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 793183d2 msubv\.h \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 79549c92 msubv\.w \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7977b552 msubv\.d \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 7a1ace12 div_s\.b \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 7a3de6d2 div_s\.h \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7a40ff92 div_s\.w \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 7a631052 div_s\.d \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 7a862912 div_u\.b \$w4,\$w5,\$w6
+[0-9a-f]+ <[^>]*> 7aa941d2 div_u\.h \$w7,\$w8,\$w9
+[0-9a-f]+ <[^>]*> 7acc5a92 div_u\.w \$w10,\$w11,\$w12
+[0-9a-f]+ <[^>]*> 7aef7352 div_u\.d \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 7b128c12 mod_s\.b \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 7b35a4d2 mod_s\.h \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7b58bd92 mod_s\.w \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 7b7bd652 mod_s\.d \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 7b9eef12 mod_u\.b \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 7ba107d2 mod_u\.h \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 7bc41892 mod_u\.w \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 7be73152 mod_u\.d \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 782a4a13 dotp_s\.h \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 784d62d3 dotp_s\.w \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 78707b93 dotp_s\.d \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 78b39453 dotp_u\.h \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 78d6ad13 dotp_u\.w \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 78f9c5d3 dotp_u\.d \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 793cde93 dpadd_s\.h \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 795ff753 dpadd_s\.w \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 79620813 dpadd_s\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 79a520d3 dpadd_u\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 79c83993 dpadd_u\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 79eb5253 dpadd_u\.d \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 7a2e6b13 dpsub_s\.h \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 7a5183d3 dpsub_s\.w \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 7a749c93 dpsub_s\.d \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7ab7b553 dpsub_u\.h \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 7adace13 dpsub_u\.w \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 7afde6d3 dpsub_u\.d \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7800ff94 sld\.b \$w30,\$w31\[zero\]
+[0-9a-f]+ <[^>]*> 78231054 sld\.h \$w1,\$w2\[v1\]
+[0-9a-f]+ <[^>]*> 78462914 sld\.w \$w4,\$w5\[a2\]
+[0-9a-f]+ <[^>]*> 786941d4 sld\.d \$w7,\$w8\[t1\]
+[0-9a-f]+ <[^>]*> 78005a99 sldi\.b \$w10,\$w11\[0\]
+[0-9a-f]+ <[^>]*> 780f6b19 sldi\.b \$w12,\$w13\[15\]
+[0-9a-f]+ <[^>]*> 78207b99 sldi\.h \$w14,\$w15\[0\]
+[0-9a-f]+ <[^>]*> 78278c19 sldi\.h \$w16,\$w17\[7\]
+[0-9a-f]+ <[^>]*> 78309c99 sldi\.w \$w18,\$w19\[0\]
+[0-9a-f]+ <[^>]*> 7833ad19 sldi\.w \$w20,\$w21\[3\]
+[0-9a-f]+ <[^>]*> 7838bd99 sldi\.d \$w22,\$w23\[0\]
+[0-9a-f]+ <[^>]*> 7839ce19 sldi\.d \$w24,\$w25\[1\]
+[0-9a-f]+ <[^>]*> 789cde94 splat\.b \$w26,\$w27\[gp\]
+[0-9a-f]+ <[^>]*> 78bff754 splat\.h \$w29,\$w30\[ra\]
+[0-9a-f]+ <[^>]*> 78c20814 splat\.w \$w0,\$w1\[v0\]
+[0-9a-f]+ <[^>]*> 78e520d4 splat\.d \$w3,\$w4\[a1\]
+[0-9a-f]+ <[^>]*> 78403999 splati\.b \$w6,\$w7\[0\]
+[0-9a-f]+ <[^>]*> 784f4a19 splati\.b \$w8,\$w9\[15\]
+[0-9a-f]+ <[^>]*> 78605a99 splati\.h \$w10,\$w11\[0\]
+[0-9a-f]+ <[^>]*> 78676b19 splati\.h \$w12,\$w13\[7\]
+[0-9a-f]+ <[^>]*> 78707b99 splati\.w \$w14,\$w15\[0\]
+[0-9a-f]+ <[^>]*> 78738c19 splati\.w \$w16,\$w17\[3\]
+[0-9a-f]+ <[^>]*> 78789c99 splati\.d \$w18,\$w19\[0\]
+[0-9a-f]+ <[^>]*> 7879ad19 splati\.d \$w20,\$w21\[1\]
+[0-9a-f]+ <[^>]*> 7918bd94 pckev\.b \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 793bd654 pckev\.h \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 795eef14 pckev\.w \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 796107d4 pckev\.d \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 79841894 pckod\.b \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 79a73154 pckod\.h \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 79ca4a14 pckod\.w \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 79ed62d4 pckod\.d \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 7a107b94 ilvl\.b \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7a339454 ilvl\.h \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7a56ad14 ilvl\.w \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7a79c5d4 ilvl\.d \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 7a9cde94 ilvr\.b \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 7abff754 ilvr\.h \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 7ac20814 ilvr\.w \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 7ae520d4 ilvr\.d \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7b083994 ilvev\.b \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 7b2b5254 ilvev\.h \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 7b4e6b14 ilvev\.w \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 7b7183d4 ilvev\.d \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 7b949c94 ilvod\.b \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7bb7b554 ilvod\.h \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 7bdace14 ilvod\.w \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 7bfde6d4 ilvod\.d \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7800ff95 vshf\.b \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 78231055 vshf\.h \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 78462915 vshf\.w \$w4,\$w5,\$w6
+[0-9a-f]+ <[^>]*> 786941d5 vshf\.d \$w7,\$w8,\$w9
+[0-9a-f]+ <[^>]*> 788c5a95 srar\.b \$w10,\$w11,\$w12
+[0-9a-f]+ <[^>]*> 78af7355 srar\.h \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 78d28c15 srar\.w \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 78f5a4d5 srar\.d \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7970bd8a srari\.b \$w22,\$w23,0x0
+[0-9a-f]+ <[^>]*> 7977ce0a srari\.b \$w24,\$w25,0x7
+[0-9a-f]+ <[^>]*> 7960de8a srari\.h \$w26,\$w27,0x0
+[0-9a-f]+ <[^>]*> 796fef0a srari\.h \$w28,\$w29,0xf
+[0-9a-f]+ <[^>]*> 7940ff8a srari\.w \$w30,\$w31,0x0
+[0-9a-f]+ <[^>]*> 795f080a srari\.w \$w0,\$w1,0x1f
+[0-9a-f]+ <[^>]*> 7900188a srari\.d \$w2,\$w3,0x0
+[0-9a-f]+ <[^>]*> 793f290a srari\.d \$w4,\$w5,0x3f
+[0-9a-f]+ <[^>]*> 79083995 srlr\.b \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 792b5255 srlr\.h \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 794e6b15 srlr\.w \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 797183d5 srlr\.d \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 79f09c8a srlri\.b \$w18,\$w19,0x0
+[0-9a-f]+ <[^>]*> 79f7ad0a srlri\.b \$w20,\$w21,0x7
+[0-9a-f]+ <[^>]*> 79e0bd8a srlri\.h \$w22,\$w23,0x0
+[0-9a-f]+ <[^>]*> 79efce0a srlri\.h \$w24,\$w25,0xf
+[0-9a-f]+ <[^>]*> 79c0de8a srlri\.w \$w26,\$w27,0x0
+[0-9a-f]+ <[^>]*> 79dfef0a srlri\.w \$w28,\$w29,0x1f
+[0-9a-f]+ <[^>]*> 7980ff8a srlri\.d \$w30,\$w31,0x0
+[0-9a-f]+ <[^>]*> 79bf080a srlri\.d \$w0,\$w1,0x3f
+[0-9a-f]+ <[^>]*> 7a241895 hadd_s\.h \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 7a473155 hadd_s\.w \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 7a6a4a15 hadd_s\.d \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 7aad62d5 hadd_u\.h \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 7ad07b95 hadd_u\.w \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7af39455 hadd_u\.d \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7b36ad15 hsub_s\.h \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7b59c5d5 hsub_s\.w \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 7b7cde95 hsub_s\.d \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 7bbff755 hsub_u\.h \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 7bc20815 hsub_u\.w \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 7be520d5 hsub_u\.d \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7808399e and\.v \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 78005240 andi\.b \$w9,\$w10,0x0
+[0-9a-f]+ <[^>]*> 78ff62c0 andi\.b \$w11,\$w12,0xff
+[0-9a-f]+ <[^>]*> 782f735e or\.v \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 79008c00 ori\.b \$w16,\$w17,0x0
+[0-9a-f]+ <[^>]*> 79ff9c80 ori\.b \$w18,\$w19,0xff
+[0-9a-f]+ <[^>]*> 7856ad1e nor\.v \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7a00c5c0 nori\.b \$w23,\$w24,0x0
+[0-9a-f]+ <[^>]*> 7affd640 nori\.b \$w25,\$w26,0xff
+[0-9a-f]+ <[^>]*> 787de6de xor\.v \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7b00ff80 xori\.b \$w30,\$w31,0x0
+[0-9a-f]+ <[^>]*> 7bff0800 xori\.b \$w0,\$w1,0xff
+[0-9a-f]+ <[^>]*> 7884189e bmnz\.v \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 78003141 bmnzi\.b \$w5,\$w6,0x0
+[0-9a-f]+ <[^>]*> 78ff41c1 bmnzi\.b \$w7,\$w8,0xff
+[0-9a-f]+ <[^>]*> 78ab525e bmz\.v \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 79006b01 bmzi\.b \$w12,\$w13,0x0
+[0-9a-f]+ <[^>]*> 79ff7b81 bmzi\.b \$w14,\$w15,0xff
+[0-9a-f]+ <[^>]*> 78d28c1e bsel\.v \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 7a00a4c1 bseli\.b \$w19,\$w20,0x0
+[0-9a-f]+ <[^>]*> 7affb541 bseli\.b \$w21,\$w22,0xff
+[0-9a-f]+ <[^>]*> 7800c5c2 shf\.b \$w23,\$w24,0x0
+[0-9a-f]+ <[^>]*> 78ffd642 shf\.b \$w25,\$w26,0xff
+[0-9a-f]+ <[^>]*> 7900e6c2 shf\.h \$w27,\$w28,0x0
+[0-9a-f]+ <[^>]*> 79fff742 shf\.h \$w29,\$w30,0xff
+[0-9a-f]+ <[^>]*> 7a0007c2 shf\.w \$w31,\$w0,0x0
+[0-9a-f]+ <[^>]*> 7aff1042 shf\.w \$w1,\$w2,0xff
+[0-9a-f]+ <[^>]*> 45e38000 bnz\.v \$w3,[0-9a-f]+ <[^>]*>
+[ ]*794: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45e47fff bnz\.v \$w4,[0-9a-f]+ <[^>]*>
+[ ]*79c: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45e5ffff bnz\.v \$w5,[0-9a-f]+ <[^>]*>
+[ ]*7a4: .*R_MIPS_PC16 .L1.1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45e6ffff bnz\.v \$w6,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45678000 bz\.v \$w7,[0-9a-f]+ <[^>]*>
+[ ]*7b4: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 45687fff bz\.v \$w8,[0-9a-f]+ <[^>]*>
+[ ]*7bc: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4569ffff bz\.v \$w9,[0-9a-f]+ <[^>]*>
+[ ]*7c4: .*R_MIPS_PC16 .L1.2
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 456affff bz\.v \$w10,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 7b0062de fill\.b \$w11,t4
+[0-9a-f]+ <[^>]*> 7b01735e fill\.h \$w13,t6
+[0-9a-f]+ <[^>]*> 7b0283de fill\.w \$w15,s0
+[0-9a-f]+ <[^>]*> 7b04a4de pcnt\.b \$w19,\$w20
+[0-9a-f]+ <[^>]*> 7b05b55e pcnt\.h \$w21,\$w22
+[0-9a-f]+ <[^>]*> 7b06c5de pcnt\.w \$w23,\$w24
+[0-9a-f]+ <[^>]*> 7b07d65e pcnt\.d \$w25,\$w26
+[0-9a-f]+ <[^>]*> 7b08e6de nloc\.b \$w27,\$w28
+[0-9a-f]+ <[^>]*> 7b09f75e nloc\.h \$w29,\$w30
+[0-9a-f]+ <[^>]*> 7b0a07de nloc\.w \$w31,\$w0
+[0-9a-f]+ <[^>]*> 7b0b105e nloc\.d \$w1,\$w2
+[0-9a-f]+ <[^>]*> 7b0c20de nlzc\.b \$w3,\$w4
+[0-9a-f]+ <[^>]*> 7b0d315e nlzc\.h \$w5,\$w6
+[0-9a-f]+ <[^>]*> 7b0e41de nlzc\.w \$w7,\$w8
+[0-9a-f]+ <[^>]*> 7b0f525e nlzc\.d \$w9,\$w10
+[0-9a-f]+ <[^>]*> 788062d9 copy_s\.b t3,\$w12\[0\]
+[0-9a-f]+ <[^>]*> 788f7359 copy_s\.b t5,\$w14\[15\]
+[0-9a-f]+ <[^>]*> 78a083d9 copy_s\.h t7,\$w16\[0\]
+[0-9a-f]+ <[^>]*> 78a79459 copy_s\.h s1,\$w18\[7\]
+[0-9a-f]+ <[^>]*> 78b0a4d9 copy_s\.w s3,\$w20\[0\]
+[0-9a-f]+ <[^>]*> 78b3b559 copy_s\.w s5,\$w22\[3\]
+[0-9a-f]+ <[^>]*> 78c0e6d9 copy_u\.b k1,\$w28\[0\]
+[0-9a-f]+ <[^>]*> 78cff759 copy_u\.b sp,\$w30\[15\]
+[0-9a-f]+ <[^>]*> 78e007d9 copy_u\.h ra,\$w0\[0\]
+[0-9a-f]+ <[^>]*> 78e71059 copy_u\.h at,\$w2\[7\]
+[0-9a-f]+ <[^>]*> 78f020d9 copy_u\.w v1,\$w4\[0\]
+[0-9a-f]+ <[^>]*> 78f33159 copy_u\.w a1,\$w6\[3\]
+[0-9a-f]+ <[^>]*> 790062d9 insert\.b \$w11\[0\],t4
+[0-9a-f]+ <[^>]*> 790f7359 insert\.b \$w13\[15\],t6
+[0-9a-f]+ <[^>]*> 792083d9 insert\.h \$w15\[0\],s0
+[0-9a-f]+ <[^>]*> 79279459 insert\.h \$w17\[7\],s2
+[0-9a-f]+ <[^>]*> 7930a4d9 insert\.w \$w19\[0\],s4
+[0-9a-f]+ <[^>]*> 7933b559 insert\.w \$w21\[3\],s6
+[0-9a-f]+ <[^>]*> 7940e6d9 insve\.b \$w27\[0\],\$w28\[0\]
+[0-9a-f]+ <[^>]*> 794ff759 insve\.b \$w29\[15\],\$w30\[0\]
+[0-9a-f]+ <[^>]*> 796007d9 insve\.h \$w31\[0\],\$w0\[0\]
+[0-9a-f]+ <[^>]*> 79671059 insve\.h \$w1\[7\],\$w2\[0\]
+[0-9a-f]+ <[^>]*> 797020d9 insve\.w \$w3\[0\],\$w4\[0\]
+[0-9a-f]+ <[^>]*> 79733159 insve\.w \$w5\[3\],\$w6\[0\]
+[0-9a-f]+ <[^>]*> 797841d9 insve\.d \$w7\[0\],\$w8\[0\]
+[0-9a-f]+ <[^>]*> 79795259 insve\.d \$w9\[1\],\$w10\[0\]
+[0-9a-f]+ <[^>]*> 478b8000 bnz\.b \$w11,[0-9a-f]+ <[^>]*>
+[ ]*878: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 478c7fff bnz\.b \$w12,[0-9a-f]+ <[^>]*>
+[ ]*880: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 478dffff bnz\.b \$w13,[0-9a-f]+ <[^>]*>
+[ ]*888: .*R_MIPS_PC16 .L1.3
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 478effff bnz\.b \$w14,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47af8000 bnz\.h \$w15,[0-9a-f]+ <[^>]*>
+[ ]*898: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47b07fff bnz\.h \$w16,[0-9a-f]+ <[^>]*>
+[ ]*8a0: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47b1ffff bnz\.h \$w17,[0-9a-f]+ <[^>]*>
+[ ]*8a8: .*R_MIPS_PC16 .L1.4
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47b2ffff bnz\.h \$w18,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47d38000 bnz\.w \$w19,[0-9a-f]+ <[^>]*>
+[ ]*8b8: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47d47fff bnz\.w \$w20,[0-9a-f]+ <[^>]*>
+[ ]*8c0: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47d5ffff bnz\.w \$w21,[0-9a-f]+ <[^>]*>
+[ ]*8c8: .*R_MIPS_PC16 .L1.5
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47d6ffff bnz\.w \$w22,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47f78000 bnz\.d \$w23,[0-9a-f]+ <[^>]*>
+[ ]*8d8: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47f87fff bnz\.d \$w24,[0-9a-f]+ <[^>]*>
+[ ]*8e0: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47f9ffff bnz\.d \$w25,[0-9a-f]+ <[^>]*>
+[ ]*8e8: .*R_MIPS_PC16 .L1.6
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47faffff bnz\.d \$w26,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 471b8000 bz\.b \$w27,[0-9a-f]+ <[^>]*>
+[ ]*8f8: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 471c7fff bz\.b \$w28,[0-9a-f]+ <[^>]*>
+[ ]*900: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 471dffff bz\.b \$w29,[0-9a-f]+ <[^>]*>
+[ ]*908: .*R_MIPS_PC16 .L1.7
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 471effff bz\.b \$w30,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 473f8000 bz\.h \$w31,[0-9a-f]+ <[^>]*>
+[ ]*918: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47207fff bz\.h \$w0,[0-9a-f]+ <[^>]*>
+[ ]*920: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4721ffff bz\.h \$w1,[0-9a-f]+ <[^>]*>
+[ ]*928: .*R_MIPS_PC16 .L1.8
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4722ffff bz\.h \$w2,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47438000 bz\.w \$w3,[0-9a-f]+ <[^>]*>
+[ ]*938: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47447fff bz\.w \$w4,[0-9a-f]+ <[^>]*>
+[ ]*940: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4745ffff bz\.w \$w5,[0-9a-f]+ <[^>]*>
+[ ]*948: .*R_MIPS_PC16 .L1.9
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4746ffff bz\.w \$w6,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47678000 bz\.d \$w7,[0-9a-f]+ <[^>]*>
+[ ]*958: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 47687fff bz\.d \$w8,[0-9a-f]+ <[^>]*>
+[ ]*960: .*R_MIPS_PC16 L0.
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 4769ffff bz\.d \$w9,[0-9a-f]+ <[^>]*>
+[ ]*968: .*R_MIPS_PC16 .L1.10
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 476affff bz\.d \$w10,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 external_label
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 7b1002c7 ldi\.b \$w11,-512
+[0-9a-f]+ <[^>]*> 7b0ffb07 ldi\.b \$w12,511
+[0-9a-f]+ <[^>]*> 7b300347 ldi\.h \$w13,-512
+[0-9a-f]+ <[^>]*> 7b2ffb87 ldi\.h \$w14,511
+[0-9a-f]+ <[^>]*> 7b5003c7 ldi\.w \$w15,-512
+[0-9a-f]+ <[^>]*> 7b4ffc07 ldi\.w \$w16,511
+[0-9a-f]+ <[^>]*> 7b700447 ldi\.d \$w17,-512
+[0-9a-f]+ <[^>]*> 7b6ffc87 ldi\.d \$w18,511
+[0-9a-f]+ <[^>]*> 7815a4da fcaf\.w \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7838bd9a fcaf\.d \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 785bd65a fcun\.w \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 787eef1a fcun\.d \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 788107da fceq\.w \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 78a4189a fceq\.d \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 78c7315a fcueq\.w \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 78ea4a1a fcueq\.d \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 790d62da fclt\.w \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 79307b9a fclt\.d \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7953945a fcult\.w \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7976ad1a fcult\.d \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7999c5da fcle\.w \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 79bcde9a fcle\.d \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 79dff75a fcule\.w \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 79e2081a fcule\.d \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 7a0520da fsaf\.w \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7a28399a fsaf\.d \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 7a4b525a fsun\.w \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 7a6e6b1a fsun\.d \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 7a9183da fseq\.w \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 7ab49c9a fseq\.d \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7ad7b55a fsueq\.w \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 7aface1a fsueq\.d \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 7b1de6da fslt\.w \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7b20ff9a fslt\.d \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 7b43105a fsult\.w \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 7b66291a fsult\.d \$w4,\$w5,\$w6
+[0-9a-f]+ <[^>]*> 7b8941da fsle\.w \$w7,\$w8,\$w9
+[0-9a-f]+ <[^>]*> 7bac5a9a fsle\.d \$w10,\$w11,\$w12
+[0-9a-f]+ <[^>]*> 7bcf735a fsule\.w \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 7bf28c1a fsule\.d \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 7815a4db fadd\.w \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7838bd9b fadd\.d \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 785bd65b fsub\.w \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 787eef1b fsub\.d \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 788107db fmul\.w \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 78a4189b fmul\.d \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 78c7315b fdiv\.w \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 78ea4a1b fdiv\.d \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 790d62db fmadd\.w \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 79307b9b fmadd\.d \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7953945b fmsub\.w \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7976ad1b fmsub\.d \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 79d9c5db fexp2\.w \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 79fcde9b fexp2\.d \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 7a1ff75b fexdo\.h \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 7a22081b fexdo\.w \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 7a8520db ftq\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7aa8399b ftq\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 7b0b525b fmin\.w \$w9,\$w10,\$w11
+[0-9a-f]+ <[^>]*> 7b2e6b1b fmin\.d \$w12,\$w13,\$w14
+[0-9a-f]+ <[^>]*> 7b5183db fmin_a\.w \$w15,\$w16,\$w17
+[0-9a-f]+ <[^>]*> 7b749c9b fmin_a\.d \$w18,\$w19,\$w20
+[0-9a-f]+ <[^>]*> 7b97b55b fmax\.w \$w21,\$w22,\$w23
+[0-9a-f]+ <[^>]*> 7bbace1b fmax\.d \$w24,\$w25,\$w26
+[0-9a-f]+ <[^>]*> 7bdde6db fmax_a\.w \$w27,\$w28,\$w29
+[0-9a-f]+ <[^>]*> 7be0ff9b fmax_a\.d \$w30,\$w31,\$w0
+[0-9a-f]+ <[^>]*> 7843105c fcor\.w \$w1,\$w2,\$w3
+[0-9a-f]+ <[^>]*> 7866291c fcor\.d \$w4,\$w5,\$w6
+[0-9a-f]+ <[^>]*> 788941dc fcune\.w \$w7,\$w8,\$w9
+[0-9a-f]+ <[^>]*> 78ac5a9c fcune\.d \$w10,\$w11,\$w12
+[0-9a-f]+ <[^>]*> 78cf735c fcne\.w \$w13,\$w14,\$w15
+[0-9a-f]+ <[^>]*> 78f28c1c fcne\.d \$w16,\$w17,\$w18
+[0-9a-f]+ <[^>]*> 7915a4dc mul_q\.h \$w19,\$w20,\$w21
+[0-9a-f]+ <[^>]*> 7938bd9c mul_q\.w \$w22,\$w23,\$w24
+[0-9a-f]+ <[^>]*> 795bd65c madd_q\.h \$w25,\$w26,\$w27
+[0-9a-f]+ <[^>]*> 797eef1c madd_q\.w \$w28,\$w29,\$w30
+[0-9a-f]+ <[^>]*> 798107dc msub_q\.h \$w31,\$w0,\$w1
+[0-9a-f]+ <[^>]*> 79a4189c msub_q\.w \$w2,\$w3,\$w4
+[0-9a-f]+ <[^>]*> 7a47315c fsor\.w \$w5,\$w6,\$w7
+[0-9a-f]+ <[^>]*> 7a6a4a1c fsor\.d \$w8,\$w9,\$w10
+[0-9a-f]+ <[^>]*> 7a8d62dc fsune\.w \$w11,\$w12,\$w13
+[0-9a-f]+ <[^>]*> 7ab07b9c fsune\.d \$w14,\$w15,\$w16
+[0-9a-f]+ <[^>]*> 7ad3945c fsne\.w \$w17,\$w18,\$w19
+[0-9a-f]+ <[^>]*> 7af6ad1c fsne\.d \$w20,\$w21,\$w22
+[0-9a-f]+ <[^>]*> 7b19c5dc mulr_q\.h \$w23,\$w24,\$w25
+[0-9a-f]+ <[^>]*> 7b3cde9c mulr_q\.w \$w26,\$w27,\$w28
+[0-9a-f]+ <[^>]*> 7b5ff75c maddr_q\.h \$w29,\$w30,\$w31
+[0-9a-f]+ <[^>]*> 7b62081c maddr_q\.w \$w0,\$w1,\$w2
+[0-9a-f]+ <[^>]*> 7b8520dc msubr_q\.h \$w3,\$w4,\$w5
+[0-9a-f]+ <[^>]*> 7ba8399c msubr_q\.w \$w6,\$w7,\$w8
+[0-9a-f]+ <[^>]*> 7b20525e fclass\.w \$w9,\$w10
+[0-9a-f]+ <[^>]*> 7b2162de fclass\.d \$w11,\$w12
+[0-9a-f]+ <[^>]*> 7b22735e ftrunc_s\.w \$w13,\$w14
+[0-9a-f]+ <[^>]*> 7b2383de ftrunc_s\.d \$w15,\$w16
+[0-9a-f]+ <[^>]*> 7b24945e ftrunc_u\.w \$w17,\$w18
+[0-9a-f]+ <[^>]*> 7b25a4de ftrunc_u\.d \$w19,\$w20
+[0-9a-f]+ <[^>]*> 7b26b55e fsqrt\.w \$w21,\$w22
+[0-9a-f]+ <[^>]*> 7b27c5de fsqrt\.d \$w23,\$w24
+[0-9a-f]+ <[^>]*> 7b28d65e frsqrt\.w \$w25,\$w26
+[0-9a-f]+ <[^>]*> 7b29e6de frsqrt\.d \$w27,\$w28
+[0-9a-f]+ <[^>]*> 7b2af75e frcp\.w \$w29,\$w30
+[0-9a-f]+ <[^>]*> 7b2b07de frcp\.d \$w31,\$w0
+[0-9a-f]+ <[^>]*> 7b2c105e frint\.w \$w1,\$w2
+[0-9a-f]+ <[^>]*> 7b2d20de frint\.d \$w3,\$w4
+[0-9a-f]+ <[^>]*> 7b2e315e flog2\.w \$w5,\$w6
+[0-9a-f]+ <[^>]*> 7b2f41de flog2\.d \$w7,\$w8
+[0-9a-f]+ <[^>]*> 7b30525e fexupl\.w \$w9,\$w10
+[0-9a-f]+ <[^>]*> 7b3162de fexupl\.d \$w11,\$w12
+[0-9a-f]+ <[^>]*> 7b32735e fexupr\.w \$w13,\$w14
+[0-9a-f]+ <[^>]*> 7b3383de fexupr\.d \$w15,\$w16
+[0-9a-f]+ <[^>]*> 7b34945e ffql\.w \$w17,\$w18
+[0-9a-f]+ <[^>]*> 7b35a4de ffql\.d \$w19,\$w20
+[0-9a-f]+ <[^>]*> 7b36b55e ffqr\.w \$w21,\$w22
+[0-9a-f]+ <[^>]*> 7b37c5de ffqr\.d \$w23,\$w24
+[0-9a-f]+ <[^>]*> 7b38d65e ftint_s\.w \$w25,\$w26
+[0-9a-f]+ <[^>]*> 7b39e6de ftint_s\.d \$w27,\$w28
+[0-9a-f]+ <[^>]*> 7b3af75e ftint_u\.w \$w29,\$w30
+[0-9a-f]+ <[^>]*> 7b3b07de ftint_u\.d \$w31,\$w0
+[0-9a-f]+ <[^>]*> 7b3c105e ffint_s\.w \$w1,\$w2
+[0-9a-f]+ <[^>]*> 7b3d20de ffint_s\.d \$w3,\$w4
+[0-9a-f]+ <[^>]*> 7b3e315e ffint_u\.w \$w5,\$w6
+[0-9a-f]+ <[^>]*> 7b3f41de ffint_u\.d \$w7,\$w8
+[0-9a-f]+ <[^>]*> 783e4819 ctcmsa msa_ir,t1
+[0-9a-f]+ <[^>]*> 783e5059 ctcmsa msa_csr,t2
+[0-9a-f]+ <[^>]*> 783e5899 ctcmsa msa_access,t3
+[0-9a-f]+ <[^>]*> 783e60d9 ctcmsa msa_save,t4
+[0-9a-f]+ <[^>]*> 787e0359 cfcmsa t5,msa_ir
+[0-9a-f]+ <[^>]*> 787e0b99 cfcmsa t6,msa_csr
+[0-9a-f]+ <[^>]*> 787e13d9 cfcmsa t7,msa_access
+[0-9a-f]+ <[^>]*> 787e1c19 cfcmsa s0,msa_save
+[0-9a-f]+ <[^>]*> 78be9459 move\.v \$w17,\$w18
+[0-9a-f]+ <[^>]*> 02959805 lsa s3,s4,s5,0x1
+[0-9a-f]+ <[^>]*> 02f8b0c5 lsa s6,s7,t8,0x4
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@pref.d b/gas/testsuite/gas/mips/mipsr6@pref.d
new file mode 100644
index 0000000..a644665
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@pref.d
@@ -0,0 +1,13 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS PREF instruction
+#as: -32 --defsym tpref=1
+#source: cache.s
+
+# Check MIPS PREF instruction assembly.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 7c457fb5 pref 0x5,255\(v0\)
+[0-9a-f]+ <[^>]*> 7c658035 pref 0x5,-256\(v1\)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mipsr6@relax-swap3.d b/gas/testsuite/gas/mips/mipsr6@relax-swap3.d
new file mode 100644
index 0000000..a848901
--- /dev/null
+++ b/gas/testsuite/gas/mips/mipsr6@relax-swap3.d
@@ -0,0 +1,22 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS relaxed macro with branch swapping
+#as: -32
+#source: relax-swap3.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 3c020000 lui v0,0x0
+[ ]*[0-9a-f]+: R_MIPS_HI16 bar
+[0-9a-f]+ <[^>]*> 24420000 addiu v0,v0,0
+[ ]*[0-9a-f]+: R_MIPS_LO16 bar
+[0-9a-f]+ <[^>]*> 00600009 jr v1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 3c020000 lui v0,0x0
+[ ]*[0-9a-f]+: R_MIPS_HI16 bar
+[0-9a-f]+ <[^>]*> 24420000 addiu v0,v0,0
+[ ]*[0-9a-f]+: R_MIPS_LO16 bar
+[0-9a-f]+ <[^>]*> 1060ffff beqz v1,[0-9a-f]+ <[^>]*>
+[ ]*[0-9a-f]+: R_MIPS_PC16 .L.1
+[0-9a-f]+ <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r6-64-n32.d b/gas/testsuite/gas/mips/r6-64-n32.d
new file mode 100644
index 0000000..6d471c6
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-64-n32.d
@@ -0,0 +1,61 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPSR6 64 instructions
+#as: -n32
+#source: r6-64.s
+
+# Check MIPSR6 64 instructions
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 0064109c dmul v0,v1,a0
+0+0004 <[^>]*> 006410dc dmuh v0,v1,a0
+0+0008 <[^>]*> 0064109e ddiv v0,v1,a0
+0+000c <[^>]*> 0064109d dmulu v0,v1,a0
+0+0010 <[^>]*> 006410dd dmuhu v0,v1,a0
+0+0014 <[^>]*> 006410de dmod v0,v1,a0
+0+0018 <[^>]*> 0064109f ddivu v0,v1,a0
+0+001c <[^>]*> 006410df dmodu v0,v1,a0
+0+0020 <[^>]*> 00641015 dlsa v0,v1,a0,0x1
+0+0024 <[^>]*> 006410d5 dlsa v0,v1,a0,0x4
+0+0028 <[^>]*> 00601052 dclz v0,v1
+0+002c <[^>]*> 00601053 dclo v0,v1
+0+0030 <[^>]*> 7c628037 lld v0,-256\(v1\)
+0+0034 <[^>]*> 7c627fb7 lld v0,255\(v1\)
+0+0038 <[^>]*> 7c628027 scd v0,-256\(v1\)
+0+003c <[^>]*> 7c627fa7 scd v0,255\(v1\)
+0+0040 <[^>]*> 7c432224 dalign a0,v0,v1,0
+0+0044 <[^>]*> 7c432264 dalign a0,v0,v1,1
+0+0048 <[^>]*> 7c4322a4 dalign a0,v0,v1,2
+0+004c <[^>]*> 7c4322e4 dalign a0,v0,v1,3
+0+0050 <[^>]*> 7c432324 dalign a0,v0,v1,4
+0+0054 <[^>]*> 7c432364 dalign a0,v0,v1,5
+0+0058 <[^>]*> 7c4323a4 dalign a0,v0,v1,6
+0+005c <[^>]*> 7c4323e4 dalign a0,v0,v1,7
+0+0060 <[^>]*> 7c022024 dbitswap a0,v0
+0+0064 <[^>]*> 7443ffff daui v1,v0,0xffff
+0+0068 <[^>]*> 0466ffff dahi v1,v1,0xffff
+0+006c <[^>]*> 047effff dati v1,v1,0xffff
+0+0070 <[^>]*> ec900000 lwupc a0,00000070 <[^>]*>
+[ ]*70: R_MIPS_PC19_S2 \.L1.1
+0+0074 <[^>]*> ec900000 lwupc a0,00000074 <[^>]*>
+[ ]*74: R_MIPS_PC19_S2 L0.-0x100000
+0+0078 <[^>]*> ec900000 lwupc a0,00000078 <[^>]*>
+[ ]*78: R_MIPS_PC19_S2 L0.+0xffffc
+0+007c <[^>]*> ec940000 lwupc a0,fff0007c <[^>]*>
+0+0080 <[^>]*> ec93ffff lwupc a0,0010007c <[^>]*>
+0+0084 <[^>]*> 00000000 nop
+0+0088 <[^>]*> ec980000 ldpc a0,00000088 <[^>]*>
+[ ]*88: R_MIPS_PC18_S3 \.L1.1
+0+008c <[^>]*> 00000000 nop
+0+0090 <[^>]*> ec980000 ldpc a0,00000090 <[^>]*>
+[ ]*90: R_MIPS_PC18_S3 L0.-0x100000
+0+0094 <[^>]*> 00000000 nop
+0+0098 <[^>]*> ec980000 ldpc a0,00000098 <[^>]*>
+[ ]*98: R_MIPS_PC18_S3 L0.+0xffff8
+0+009c <[^>]*> 00000000 nop
+0+00a0 <[^>]*> ec9a0000 ldpc a0,fff000a0 <[^>]*>
+0+00a4 <[^>]*> 00000000 nop
+0+00a8 <[^>]*> ec99ffff ldpc a0,001000a0 <[^>]*>
+0+00ac <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r6-64-n64.d b/gas/testsuite/gas/mips/r6-64-n64.d
new file mode 100644
index 0000000..2202820
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-64-n64.d
@@ -0,0 +1,73 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPSR6 64 instructions
+#as: -64
+#source: r6-64.s
+
+# Check MIPSR6 64 instructions
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 0064109c dmul v0,v1,a0
+0+0004 <[^>]*> 006410dc dmuh v0,v1,a0
+0+0008 <[^>]*> 0064109e ddiv v0,v1,a0
+0+000c <[^>]*> 0064109d dmulu v0,v1,a0
+0+0010 <[^>]*> 006410dd dmuhu v0,v1,a0
+0+0014 <[^>]*> 006410de dmod v0,v1,a0
+0+0018 <[^>]*> 0064109f ddivu v0,v1,a0
+0+001c <[^>]*> 006410df dmodu v0,v1,a0
+0+0020 <[^>]*> 00641015 dlsa v0,v1,a0,0x1
+0+0024 <[^>]*> 006410d5 dlsa v0,v1,a0,0x4
+0+0028 <[^>]*> 00601052 dclz v0,v1
+0+002c <[^>]*> 00601053 dclo v0,v1
+0+0030 <[^>]*> 7c628037 lld v0,-256\(v1\)
+0+0034 <[^>]*> 7c627fb7 lld v0,255\(v1\)
+0+0038 <[^>]*> 7c628027 scd v0,-256\(v1\)
+0+003c <[^>]*> 7c627fa7 scd v0,255\(v1\)
+0+0040 <[^>]*> 7c432224 dalign a0,v0,v1,0
+0+0044 <[^>]*> 7c432264 dalign a0,v0,v1,1
+0+0048 <[^>]*> 7c4322a4 dalign a0,v0,v1,2
+0+004c <[^>]*> 7c4322e4 dalign a0,v0,v1,3
+0+0050 <[^>]*> 7c432324 dalign a0,v0,v1,4
+0+0054 <[^>]*> 7c432364 dalign a0,v0,v1,5
+0+0058 <[^>]*> 7c4323a4 dalign a0,v0,v1,6
+0+005c <[^>]*> 7c4323e4 dalign a0,v0,v1,7
+0+0060 <[^>]*> 7c022024 dbitswap a0,v0
+0+0064 <[^>]*> 7443ffff daui v1,v0,0xffff
+0+0068 <[^>]*> 0466ffff dahi v1,v1,0xffff
+0+006c <[^>]*> 047effff dati v1,v1,0xffff
+0+0070 <[^>]*> ec900000 lwupc a0,0+0000070 <[^>]*>
+[ ]*70: R_MIPS_PC19_S2 \.L1.1
+[ ]*70: R_MIPS_NONE \*ABS\*
+[ ]*70: R_MIPS_NONE \*ABS\*
+0+0074 <[^>]*> ec900000 lwupc a0,0+0000074 <[^>]*>
+[ ]*74: R_MIPS_PC19_S2 L0.-0x100000
+[ ]*74: R_MIPS_NONE \*ABS\*-0x100000
+[ ]*74: R_MIPS_NONE \*ABS\*-0x100000
+0+0078 <[^>]*> ec900000 lwupc a0,0+0000078 <[^>]*>
+[ ]*78: R_MIPS_PC19_S2 L0.\+0xffffc
+[ ]*78: R_MIPS_NONE \*ABS\*\+0xffffc
+[ ]*78: R_MIPS_NONE \*ABS\*\+0xffffc
+0+007c <[^>]*> ec940000 lwupc a0,f+ff0007c <[^>]*>
+0+0080 <[^>]*> ec93ffff lwupc a0,0+010007c <[^>]*>
+0+0084 <[^>]*> 00000000 nop
+0+0088 <[^>]*> ec980000 ldpc a0,0+0000088 <[^>]*>
+[ ]*88: R_MIPS_PC18_S3 \.L1.1
+[ ]*88: R_MIPS_NONE \*ABS\*
+[ ]*88: R_MIPS_NONE \*ABS\*
+0+008c <[^>]*> 00000000 nop
+0+0090 <[^>]*> ec980000 ldpc a0,0+0000090 <[^>]*>
+[ ]*90: R_MIPS_PC18_S3 L0.-0x100000
+[ ]*90: R_MIPS_NONE \*ABS\*-0x100000
+[ ]*90: R_MIPS_NONE \*ABS\*-0x100000
+0+0094 <[^>]*> 00000000 nop
+0+0098 <[^>]*> ec980000 ldpc a0,0+0000098 <[^>]*>
+[ ]*98: R_MIPS_PC18_S3 L0.\+0xffff8
+[ ]*98: R_MIPS_NONE \*ABS\*\+0xffff8
+[ ]*98: R_MIPS_NONE \*ABS\*\+0xffff8
+0+009c <[^>]*> 00000000 nop
+0+00a0 <[^>]*> ec9a0000 ldpc a0,f+ff000a0 <[^>]*>
+0+00a4 <[^>]*> 00000000 nop
+0+00a8 <[^>]*> ec99ffff ldpc a0,0+01000a0 <[^>]*>
+0+00ac <[^>]*> 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r6-64-removed.l b/gas/testsuite/gas/mips/r6-64-removed.l
new file mode 100644
index 0000000..a4208ba
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-64-removed.l
@@ -0,0 +1,10 @@
+.*: Assembler messages:
+.*:2: Error: opcode not supported on this processor: .* \(.*\) `daddi \$23,\$24,1023'
+.*:3: Error: invalid operands `ddiv \$2,\$4'
+.*:4: Error: invalid operands `ddivu \$2,\$4'
+.*:5: Error: opcode not supported on this processor: .* \(.*\) `dmult \$2,\$3'
+.*:6: Error: opcode not supported on this processor: .* \(.*\) `dmultu \$2,\$3'
+.*:7: Error: opcode not supported on this processor: .* \(.*\) `ldl \$2,1\(\$3\)'
+.*:8: Error: opcode not supported on this processor: .* \(.*\) `ldr \$2,1\(\$3\)'
+.*:9: Error: opcode not supported on this processor: .* \(.*\) `sdl \$2,1\(\$3\)'
+.*:10: Error: opcode not supported on this processor: .* \(.*\) `sdr \$2,1\(\$3\)'
diff --git a/gas/testsuite/gas/mips/r6-64-removed.s b/gas/testsuite/gas/mips/r6-64-removed.s
new file mode 100644
index 0000000..77b8b04
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-64-removed.s
@@ -0,0 +1,10 @@
+ .set reorder
+ daddi $23,$24,1023
+ ddiv $2, $4
+ ddivu $2, $4
+ dmult $2,$3
+ dmultu $2,$3
+ ldl $2, 1($3)
+ ldr $2, 1($3)
+ sdl $2, 1($3)
+ sdr $2, 1($3)
diff --git a/gas/testsuite/gas/mips/r6-64.s b/gas/testsuite/gas/mips/r6-64.s
new file mode 100644
index 0000000..7a97ad2
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-64.s
@@ -0,0 +1,59 @@
+ .text
+ dmul $2,$3,$4
+ dmuh $2,$3,$4
+ ddiv $2,$3,$4
+ dmulu $2,$3,$4
+ dmuhu $2,$3,$4
+ dmod $2,$3,$4
+ ddivu $2,$3,$4
+ dmodu $2,$3,$4
+
+ dlsa $2,$3,$4,1
+ dlsa $2,$3,$4,4
+
+ dclz $2,$3
+ dclo $2,$3
+
+ lld $2,-256($3)
+ lld $2,255($3)
+ scd $2,-256($3)
+ scd $2,255($3)
+
+ dalign $4, $2, $3, 0
+ dalign $4, $2, $3, 1
+ dalign $4, $2, $3, 2
+ dalign $4, $2, $3, 3
+ dalign $4, $2, $3, 4
+ dalign $4, $2, $3, 5
+ dalign $4, $2, $3, 6
+ dalign $4, $2, $3, 7
+
+ dbitswap $4, $2
+
+ daui $3, $2, 0xffff
+ dahi $3, $3, 0xffff
+ dati $3, $3, 0xffff
+
+ lwupc $4, 1f
+ lwupc $4, .+(-262144 << 2)
+ lwupc $4, .+(262143 << 2)
+ lwu $4, (-262144 << 2)($pc)
+ lwu $4, (262143 << 2)($pc)
+
+ .align 3
+ ldpc $4, 1f
+ .align 3
+ ldpc $4, .+(-131072 << 3)
+ .align 3
+ ldpc $4, .+(131071 << 3)
+ .align 3
+ ld $4, (-131072 << 3)($pc)
+ .align 3
+ ld $4, (131071 << 3)($pc)
+ .align 3
+1:
+ nop
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 2
+ .space 8
diff --git a/gas/testsuite/gas/mips/r6-attr-none-double.d b/gas/testsuite/gas/mips/r6-attr-none-double.d
new file mode 100644
index 0000000..2a9fd36
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-attr-none-double.d
@@ -0,0 +1,22 @@
+#PROG: readelf
+#source: empty.s
+#readelf: -A
+#name: MIPS infer fpabi (double-precision)
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: .*
+ASEs:
+#...
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
+
diff --git a/gas/testsuite/gas/mips/r6-n32.d b/gas/testsuite/gas/mips/r6-n32.d
new file mode 100644
index 0000000..4df4f31
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-n32.d
@@ -0,0 +1,493 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPSR6 instructions
+#as: -n32
+#source: r6.s
+
+# Check MIPSR6 instructions
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 46020818 maddf.s \$f0,\$f1,\$f2
+0+0004 <[^>]*> 462520d8 maddf.d \$f3,\$f4,\$f5
+0+0008 <[^>]*> 46083999 msubf.s \$f6,\$f7,\$f8
+0+000c <[^>]*> 462b5259 msubf.d \$f9,\$f10,\$f11
+0+0010 <[^>]*> 46820800 cmp.af.s \$f0,\$f1,\$f2
+0+0014 <[^>]*> 46a20800 cmp.af.d \$f0,\$f1,\$f2
+0+0018 <[^>]*> 46820801 cmp.un.s \$f0,\$f1,\$f2
+0+001c <[^>]*> 46a20801 cmp.un.d \$f0,\$f1,\$f2
+0+0020 <[^>]*> 46820802 cmp.eq.s \$f0,\$f1,\$f2
+0+0024 <[^>]*> 46a20802 cmp.eq.d \$f0,\$f1,\$f2
+0+0028 <[^>]*> 46820803 cmp.ueq.s \$f0,\$f1,\$f2
+0+002c <[^>]*> 46a20803 cmp.ueq.d \$f0,\$f1,\$f2
+0+0030 <[^>]*> 46820804 cmp.lt.s \$f0,\$f1,\$f2
+0+0034 <[^>]*> 46a20804 cmp.lt.d \$f0,\$f1,\$f2
+0+0038 <[^>]*> 46820805 cmp.ult.s \$f0,\$f1,\$f2
+0+003c <[^>]*> 46a20805 cmp.ult.d \$f0,\$f1,\$f2
+0+0040 <[^>]*> 46820806 cmp.le.s \$f0,\$f1,\$f2
+0+0044 <[^>]*> 46a20806 cmp.le.d \$f0,\$f1,\$f2
+0+0048 <[^>]*> 46820807 cmp.ule.s \$f0,\$f1,\$f2
+0+004c <[^>]*> 46a20807 cmp.ule.d \$f0,\$f1,\$f2
+0+0050 <[^>]*> 46820808 cmp.saf.s \$f0,\$f1,\$f2
+0+0054 <[^>]*> 46a20808 cmp.saf.d \$f0,\$f1,\$f2
+0+0058 <[^>]*> 46820809 cmp.sun.s \$f0,\$f1,\$f2
+0+005c <[^>]*> 46a20809 cmp.sun.d \$f0,\$f1,\$f2
+0+0060 <[^>]*> 4682080a cmp.seq.s \$f0,\$f1,\$f2
+0+0064 <[^>]*> 46a2080a cmp.seq.d \$f0,\$f1,\$f2
+0+0068 <[^>]*> 4682080b cmp.sueq.s \$f0,\$f1,\$f2
+0+006c <[^>]*> 46a2080b cmp.sueq.d \$f0,\$f1,\$f2
+0+0070 <[^>]*> 4682080c cmp.slt.s \$f0,\$f1,\$f2
+0+0074 <[^>]*> 46a2080c cmp.slt.d \$f0,\$f1,\$f2
+0+0078 <[^>]*> 4682080d cmp.sult.s \$f0,\$f1,\$f2
+0+007c <[^>]*> 46a2080d cmp.sult.d \$f0,\$f1,\$f2
+0+0080 <[^>]*> 4682080e cmp.sle.s \$f0,\$f1,\$f2
+0+0084 <[^>]*> 46a2080e cmp.sle.d \$f0,\$f1,\$f2
+0+0088 <[^>]*> 4682080f cmp.sule.s \$f0,\$f1,\$f2
+0+008c <[^>]*> 46a2080f cmp.sule.d \$f0,\$f1,\$f2
+0+0090 <[^>]*> 46820811 cmp.or.s \$f0,\$f1,\$f2
+0+0094 <[^>]*> 46a20811 cmp.or.d \$f0,\$f1,\$f2
+0+0098 <[^>]*> 46820812 cmp.une.s \$f0,\$f1,\$f2
+0+009c <[^>]*> 46a20812 cmp.une.d \$f0,\$f1,\$f2
+0+00a0 <[^>]*> 46820813 cmp.ne.s \$f0,\$f1,\$f2
+0+00a4 <[^>]*> 46a20813 cmp.ne.d \$f0,\$f1,\$f2
+0+00a8 <[^>]*> 46820819 cmp.sor.s \$f0,\$f1,\$f2
+0+00ac <[^>]*> 46a20819 cmp.sor.d \$f0,\$f1,\$f2
+0+00b0 <[^>]*> 4682081a cmp.sune.s \$f0,\$f1,\$f2
+0+00b4 <[^>]*> 46a2081a cmp.sune.d \$f0,\$f1,\$f2
+0+00b8 <[^>]*> 4682081b cmp.sne.s \$f0,\$f1,\$f2
+0+00bc <[^>]*> 46a2081b cmp.sne.d \$f0,\$f1,\$f2
+0+00c0 <[^>]*> 45200000 bc1eqz \$f0,000000c4 <[^>]*>
+[ ]*c0: R_MIPS_PC16 .L1.1-0x4
+0+00c4 <[^>]*> 00000000 nop
+0+00c8 <[^>]*> 453f0000 bc1eqz \$f31,000000cc <[^>]*>
+[ ]*c8: R_MIPS_PC16 .L1.1-0x4
+0+00cc <[^>]*> 00000000 nop
+0+00d0 <[^>]*> 453f0000 bc1eqz \$f31,000000d4 <[^>]*>
+[ ]*d0: R_MIPS_PC16 new-0x4
+0+00d4 <[^>]*> 00000000 nop
+0+00d8 <[^>]*> 453f0000 bc1eqz \$f31,000000dc <[^>]*>
+[ ]*d8: R_MIPS_PC16 external_label-0x4
+0+00dc <[^>]*> 00000000 nop
+0+00e0 <[^>]*> 45a00000 bc1nez \$f0,000000e4 <[^>]*>
+[ ]*e0: R_MIPS_PC16 .L1.1-0x4
+0+00e4 <[^>]*> 00000000 nop
+0+00e8 <[^>]*> 45bf0000 bc1nez \$f31,000000ec <[^>]*>
+[ ]*e8: R_MIPS_PC16 .L1.1-0x4
+0+00ec <[^>]*> 00000000 nop
+0+00f0 <[^>]*> 45bf0000 bc1nez \$f31,000000f4 <[^>]*>
+[ ]*f0: R_MIPS_PC16 new-0x4
+0+00f4 <[^>]*> 00000000 nop
+0+00f8 <[^>]*> 45bf0000 bc1nez \$f31,000000fc <[^>]*>
+[ ]*f8: R_MIPS_PC16 external_label-0x4
+0+00fc <[^>]*> 00000000 nop
+0+0100 <[^>]*> 49200000 bc2eqz \$0,00000104 <[^>]*>
+[ ]*100: R_MIPS_PC16 .L1.1-0x4
+0+0104 <[^>]*> 00000000 nop
+0+0108 <[^>]*> 493f0000 bc2eqz \$31,0000010c <[^>]*>
+[ ]*108: R_MIPS_PC16 .L1.1-0x4
+0+010c <[^>]*> 00000000 nop
+0+0110 <[^>]*> 493f0000 bc2eqz \$31,00000114 <[^>]*>
+[ ]*110: R_MIPS_PC16 new-0x4
+0+0114 <[^>]*> 00000000 nop
+0+0118 <[^>]*> 493f0000 bc2eqz \$31,0000011c <[^>]*>
+[ ]*118: R_MIPS_PC16 external_label-0x4
+0+011c <[^>]*> 00000000 nop
+0+0120 <[^>]*> 49a00000 bc2nez \$0,00000124 <[^>]*>
+[ ]*120: R_MIPS_PC16 .L1.1-0x4
+0+0124 <[^>]*> 00000000 nop
+0+0128 <[^>]*> 49bf0000 bc2nez \$31,0000012c <[^>]*>
+[ ]*128: R_MIPS_PC16 .L1.1-0x4
+0+012c <[^>]*> 00000000 nop
+0+0130 <[^>]*> 49bf0000 bc2nez \$31,00000134 <[^>]*>
+[ ]*130: R_MIPS_PC16 new-0x4
+0+0134 <[^>]*> 00000000 nop
+0+0138 <[^>]*> 49bf0000 bc2nez \$31,0000013c <[^>]*>
+[ ]*138: R_MIPS_PC16 external_label-0x4
+0+013c <[^>]*> 00000000 nop
+0+0140 <[^>]*> 46020810 sel.s \$f0,\$f1,\$f2
+0+0144 <[^>]*> 46220810 sel.d \$f0,\$f1,\$f2
+0+0148 <[^>]*> 46020814 seleqz.s \$f0,\$f1,\$f2
+0+014c <[^>]*> 46220814 seleqz.d \$f0,\$f1,\$f2
+0+0150 <[^>]*> 46020817 selnez.s \$f0,\$f1,\$f2
+0+0154 <[^>]*> 46220817 selnez.d \$f0,\$f1,\$f2
+0+0158 <[^>]*> 00641035 seleqz v0,v1,a0
+0+015c <[^>]*> 00641037 selnez v0,v1,a0
+0+0160 <[^>]*> 00641098 mul v0,v1,a0
+0+0164 <[^>]*> 006410d8 muh v0,v1,a0
+0+0168 <[^>]*> 00641099 mulu v0,v1,a0
+0+016c <[^>]*> 006410d9 muhu v0,v1,a0
+0+0170 <[^>]*> 0064109a div v0,v1,a0
+0+0174 <[^>]*> 006410da mod v0,v1,a0
+0+0178 <[^>]*> 0064109b divu v0,v1,a0
+0+017c <[^>]*> 006410db modu v0,v1,a0
+0+0180 <[^>]*> 49422000 lwc2 \$2,0\(a0\)
+0+0184 <[^>]*> 49422400 lwc2 \$2,-1024\(a0\)
+0+0188 <[^>]*> 494223ff lwc2 \$2,1023\(a0\)
+0+018c <[^>]*> 49622000 swc2 \$2,0\(a0\)
+0+0190 <[^>]*> 49622400 swc2 \$2,-1024\(a0\)
+0+0194 <[^>]*> 496223ff swc2 \$2,1023\(a0\)
+0+0198 <[^>]*> 49c22000 ldc2 \$2,0\(a0\)
+0+019c <[^>]*> 49c22400 ldc2 \$2,-1024\(a0\)
+0+01a0 <[^>]*> 49c223ff ldc2 \$2,1023\(a0\)
+0+01a4 <[^>]*> 49e22000 sdc2 \$2,0\(a0\)
+0+01a8 <[^>]*> 49e22400 sdc2 \$2,-1024\(a0\)
+0+01ac <[^>]*> 49e223ff sdc2 \$2,1023\(a0\)
+0+01b0 <[^>]*> 00641005 lsa v0,v1,a0,0x1
+0+01b4 <[^>]*> 006410c5 lsa v0,v1,a0,0x4
+0+01b8 <[^>]*> 00601050 clz v0,v1
+0+01bc <[^>]*> 00601051 clo v0,v1
+0+01c0 <[^>]*> 0000000e sdbbp
+0+01c4 <[^>]*> 0000000e sdbbp
+0+01c8 <[^>]*> 0000004e sdbbp 0x1
+0+01cc <[^>]*> 03ffffce sdbbp 0xfffff
+0+01d0 <[^>]*> 3c02ffff lui v0,0xffff
+0+01d4 <[^>]*> 7c008035 pref 0x0,-256\(zero\)
+0+01d8 <[^>]*> 7fff7fb5 pref 0x1f,255\(ra\)
+0+01dc <[^>]*> 7c628036 ll v0,-256\(v1\)
+0+01e0 <[^>]*> 7c627fb6 ll v0,255\(v1\)
+0+01e4 <[^>]*> 7c628026 sc v0,-256\(v1\)
+0+01e8 <[^>]*> 7c627fa6 sc v0,255\(v1\)
+0+01ec <[^>]*> 7c608025 cache 0x0,-256\(v1\)
+0+01f0 <[^>]*> 7c7f7fa5 cache 0x1f,255\(v1\)
+0+01f4 <[^>]*> 7c432220 align a0,v0,v1,0
+0+01f8 <[^>]*> 7c432260 align a0,v0,v1,1
+0+01fc <[^>]*> 7c4322a0 align a0,v0,v1,2
+0+0200 <[^>]*> 7c4322e0 align a0,v0,v1,3
+0+0204 <[^>]*> 7c022020 bitswap a0,v0
+0+0208 <[^>]*> 20000000 bovc zero,zero,0000020c <[^>]*>
+[ ]*208: R_MIPS_PC16 ext-0x4
+0+020c <[^>]*> 00000000 nop
+0+0210 <[^>]*> 20400000 bovc v0,zero,00000214 <[^>]*>
+[ ]*210: R_MIPS_PC16 ext-0x4
+0+0214 <[^>]*> 00000000 nop
+0+0218 <[^>]*> 20400000 bovc v0,zero,0000021c <[^>]*>
+[ ]*218: R_MIPS_PC16 ext-0x4
+0+021c <[^>]*> 00000000 nop
+0+0220 <[^>]*> 20820000 bovc a0,v0,00000224 <[^>]*>
+[ ]*220: R_MIPS_PC16 ext-0x4
+0+0224 <[^>]*> 00000000 nop
+0+0228 <[^>]*> 20820000 bovc a0,v0,0000022c <[^>]*>
+[ ]*228: R_MIPS_PC16 ext-0x4
+0+022c <[^>]*> 00000000 nop
+0+0230 <[^>]*> 20820000 bovc a0,v0,00000234 <[^>]*>
+[ ]*230: R_MIPS_PC16 L0.-0x20000
+0+0234 <[^>]*> 00000000 nop
+0+0238 <[^>]*> 20820000 bovc a0,v0,0000023c <[^>]*>
+[ ]*238: R_MIPS_PC16 L0.+0x1fffc
+0+023c <[^>]*> 00000000 nop
+0+0240 <[^>]*> 20820000 bovc a0,v0,00000244 <[^>]*>
+[ ]*240: R_MIPS_PC16 .L1.2-0x4
+0+0244 <[^>]*> 00000000 nop
+0+0248 <[^>]*> 20420000 bovc v0,v0,0000024c <[^>]*>
+[ ]*248: R_MIPS_PC16 ext-0x4
+0+024c <[^>]*> 00000000 nop
+0+0250 <[^>]*> 20420000 bovc v0,v0,00000254 <[^>]*>
+[ ]*250: R_MIPS_PC16 L0.-0x20000
+0+0254 <[^>]*> 00000000 nop
+0+0258 <[^>]*> 20020000 beqzalc v0,0000025c <[^>]*>
+[ ]*258: R_MIPS_PC16 ext-0x4
+0+025c <[^>]*> 00000000 nop
+0+0260 <[^>]*> 20020000 beqzalc v0,00000264 <[^>]*>
+[ ]*260: R_MIPS_PC16 L0.-0x20000
+0+0264 <[^>]*> 00000000 nop
+0+0268 <[^>]*> 20020000 beqzalc v0,0000026c <[^>]*>
+[ ]*268: R_MIPS_PC16 L0.+0x1fffc
+0+026c <[^>]*> 00000000 nop
+0+0270 <[^>]*> 20020000 beqzalc v0,00000274 <[^>]*>
+[ ]*270: R_MIPS_PC16 .L1.2-0x4
+0+0274 <[^>]*> 00000000 nop
+0+0278 <[^>]*> 20430000 beqc v0,v1,0000027c <[^>]*>
+[ ]*278: R_MIPS_PC16 ext-0x4
+0+027c <[^>]*> 00000000 nop
+0+0280 <[^>]*> 20430000 beqc v0,v1,00000284 <[^>]*>
+[ ]*280: R_MIPS_PC16 ext-0x4
+0+0284 <[^>]*> 00000000 nop
+0+0288 <[^>]*> 20430000 beqc v0,v1,0000028c <[^>]*>
+[ ]*288: R_MIPS_PC16 L0.-0x20000
+0+028c <[^>]*> 00000000 nop
+0+0290 <[^>]*> 20430000 beqc v0,v1,00000294 <[^>]*>
+[ ]*290: R_MIPS_PC16 L0.+0x1fffc
+0+0294 <[^>]*> 00000000 nop
+0+0298 <[^>]*> 20430000 beqc v0,v1,0000029c <[^>]*>
+[ ]*298: R_MIPS_PC16 .L1.2-0x4
+0+029c <[^>]*> 00000000 nop
+0+02a0 <[^>]*> 60000000 bnvc zero,zero,000002a4 <[^>]*>
+[ ]*2a0: R_MIPS_PC16 ext-0x4
+0+02a4 <[^>]*> 00000000 nop
+0+02a8 <[^>]*> 60400000 bnvc v0,zero,000002ac <[^>]*>
+[ ]*2a8: R_MIPS_PC16 ext-0x4
+0+02ac <[^>]*> 00000000 nop
+0+02b0 <[^>]*> 60400000 bnvc v0,zero,000002b4 <[^>]*>
+[ ]*2b0: R_MIPS_PC16 ext-0x4
+0+02b4 <[^>]*> 00000000 nop
+0+02b8 <[^>]*> 60820000 bnvc a0,v0,000002bc <[^>]*>
+[ ]*2b8: R_MIPS_PC16 ext-0x4
+0+02bc <[^>]*> 00000000 nop
+0+02c0 <[^>]*> 60820000 bnvc a0,v0,000002c4 <[^>]*>
+[ ]*2c0: R_MIPS_PC16 ext-0x4
+0+02c4 <[^>]*> 00000000 nop
+0+02c8 <[^>]*> 60820000 bnvc a0,v0,000002cc <[^>]*>
+[ ]*2c8: R_MIPS_PC16 L0.-0x20000
+0+02cc <[^>]*> 00000000 nop
+0+02d0 <[^>]*> 60820000 bnvc a0,v0,000002d4 <[^>]*>
+[ ]*2d0: R_MIPS_PC16 L0.+0x1fffc
+0+02d4 <[^>]*> 00000000 nop
+0+02d8 <[^>]*> 60820000 bnvc a0,v0,000002dc <[^>]*>
+[ ]*2d8: R_MIPS_PC16 .L1.2-0x4
+0+02dc <[^>]*> 00000000 nop
+0+02e0 <[^>]*> 60420000 bnvc v0,v0,000002e4 <[^>]*>
+[ ]*2e0: R_MIPS_PC16 ext-0x4
+0+02e4 <[^>]*> 00000000 nop
+0+02e8 <[^>]*> 60420000 bnvc v0,v0,000002ec <[^>]*>
+[ ]*2e8: R_MIPS_PC16 L0.-0x20000
+0+02ec <[^>]*> 00000000 nop
+0+02f0 <[^>]*> 60020000 bnezalc v0,000002f4 <[^>]*>
+[ ]*2f0: R_MIPS_PC16 ext-0x4
+0+02f4 <[^>]*> 00000000 nop
+0+02f8 <[^>]*> 60020000 bnezalc v0,000002fc <[^>]*>
+[ ]*2f8: R_MIPS_PC16 L0.-0x20000
+0+02fc <[^>]*> 00000000 nop
+0+0300 <[^>]*> 60020000 bnezalc v0,00000304 <[^>]*>
+[ ]*300: R_MIPS_PC16 L0.+0x1fffc
+0+0304 <[^>]*> 00000000 nop
+0+0308 <[^>]*> 60020000 bnezalc v0,0000030c <[^>]*>
+[ ]*308: R_MIPS_PC16 .L1.2-0x4
+0+030c <[^>]*> 00000000 nop
+0+0310 <[^>]*> 60430000 bnec v0,v1,00000314 <[^>]*>
+[ ]*310: R_MIPS_PC16 ext-0x4
+0+0314 <[^>]*> 00000000 nop
+0+0318 <[^>]*> 60430000 bnec v0,v1,0000031c <[^>]*>
+[ ]*318: R_MIPS_PC16 ext-0x4
+0+031c <[^>]*> 00000000 nop
+0+0320 <[^>]*> 60430000 bnec v0,v1,00000324 <[^>]*>
+[ ]*320: R_MIPS_PC16 L0.-0x20000
+0+0324 <[^>]*> 00000000 nop
+0+0328 <[^>]*> 60430000 bnec v0,v1,0000032c <[^>]*>
+[ ]*328: R_MIPS_PC16 L0.+0x1fffc
+0+032c <[^>]*> 00000000 nop
+0+0330 <[^>]*> 60430000 bnec v0,v1,00000334 <[^>]*>
+[ ]*330: R_MIPS_PC16 .L1.2-0x4
+0+0334 <[^>]*> 00000000 nop
+0+0338 <[^>]*> 58020000 blezc v0,0000033c <[^>]*>
+[ ]*338: R_MIPS_PC16 ext-0x4
+0+033c <[^>]*> 00000000 nop
+0+0340 <[^>]*> 58020000 blezc v0,00000344 <[^>]*>
+[ ]*340: R_MIPS_PC16 L0.-0x20000
+0+0344 <[^>]*> 00000000 nop
+0+0348 <[^>]*> 58020000 blezc v0,0000034c <[^>]*>
+[ ]*348: R_MIPS_PC16 L0.+0x1fffc
+0+034c <[^>]*> 00000000 nop
+0+0350 <[^>]*> 58020000 blezc v0,00000354 <[^>]*>
+[ ]*350: R_MIPS_PC16 .L1.2-0x4
+0+0354 <[^>]*> 00000000 nop
+0+0358 <[^>]*> 58420000 bgezc v0,0000035c <[^>]*>
+[ ]*358: R_MIPS_PC16 ext-0x4
+0+035c <[^>]*> 00000000 nop
+0+0360 <[^>]*> 58420000 bgezc v0,00000364 <[^>]*>
+[ ]*360: R_MIPS_PC16 L0.-0x20000
+0+0364 <[^>]*> 00000000 nop
+0+0368 <[^>]*> 58420000 bgezc v0,0000036c <[^>]*>
+[ ]*368: R_MIPS_PC16 L0.+0x1fffc
+0+036c <[^>]*> 00000000 nop
+0+0370 <[^>]*> 58420000 bgezc v0,00000374 <[^>]*>
+[ ]*370: R_MIPS_PC16 .L1.2-0x4
+0+0374 <[^>]*> 00000000 nop
+0+0378 <[^>]*> 58430000 bgec v0,v1,0000037c <[^>]*>
+[ ]*378: R_MIPS_PC16 ext-0x4
+0+037c <[^>]*> 00000000 nop
+0+0380 <[^>]*> 58430000 bgec v0,v1,00000384 <[^>]*>
+[ ]*380: R_MIPS_PC16 L0.-0x20000
+0+0384 <[^>]*> 00000000 nop
+0+0388 <[^>]*> 58430000 bgec v0,v1,0000038c <[^>]*>
+[ ]*388: R_MIPS_PC16 L0.+0x1fffc
+0+038c <[^>]*> 00000000 nop
+0+0390 <[^>]*> 58430000 bgec v0,v1,00000394 <[^>]*>
+[ ]*390: R_MIPS_PC16 .L1.2-0x4
+0+0394 <[^>]*> 00000000 nop
+0+0398 <[^>]*> 58620000 bgec v1,v0,0000039c <[^>]*>
+[ ]*398: R_MIPS_PC16 .L1.2-0x4
+0+039c <[^>]*> 00000000 nop
+0+03a0 <[^>]*> 5c020000 bgtzc v0,000003a4 <[^>]*>
+[ ]*3a0: R_MIPS_PC16 ext-0x4
+0+03a4 <[^>]*> 00000000 nop
+0+03a8 <[^>]*> 5c020000 bgtzc v0,000003ac <[^>]*>
+[ ]*3a8: R_MIPS_PC16 L0.-0x20000
+0+03ac <[^>]*> 00000000 nop
+0+03b0 <[^>]*> 5c020000 bgtzc v0,000003b4 <[^>]*>
+[ ]*3b0: R_MIPS_PC16 L0.+0x1fffc
+0+03b4 <[^>]*> 00000000 nop
+0+03b8 <[^>]*> 5c020000 bgtzc v0,000003bc <[^>]*>
+[ ]*3b8: R_MIPS_PC16 .L1.2-0x4
+0+03bc <[^>]*> 00000000 nop
+0+03c0 <[^>]*> 5c420000 bltzc v0,000003c4 <[^>]*>
+[ ]*3c0: R_MIPS_PC16 ext-0x4
+0+03c4 <[^>]*> 00000000 nop
+0+03c8 <[^>]*> 5c420000 bltzc v0,000003cc <[^>]*>
+[ ]*3c8: R_MIPS_PC16 L0.-0x20000
+0+03cc <[^>]*> 00000000 nop
+0+03d0 <[^>]*> 5c420000 bltzc v0,000003d4 <[^>]*>
+[ ]*3d0: R_MIPS_PC16 L0.+0x1fffc
+0+03d4 <[^>]*> 00000000 nop
+0+03d8 <[^>]*> 5c420000 bltzc v0,000003dc <[^>]*>
+[ ]*3d8: R_MIPS_PC16 .L1.2-0x4
+0+03dc <[^>]*> 00000000 nop
+0+03e0 <[^>]*> 5c430000 bltc v0,v1,000003e4 <[^>]*>
+[ ]*3e0: R_MIPS_PC16 ext-0x4
+0+03e4 <[^>]*> 00000000 nop
+0+03e8 <[^>]*> 5c430000 bltc v0,v1,000003ec <[^>]*>
+[ ]*3e8: R_MIPS_PC16 L0.-0x20000
+0+03ec <[^>]*> 00000000 nop
+0+03f0 <[^>]*> 5c430000 bltc v0,v1,000003f4 <[^>]*>
+[ ]*3f0: R_MIPS_PC16 L0.+0x1fffc
+0+03f4 <[^>]*> 00000000 nop
+0+03f8 <[^>]*> 5c430000 bltc v0,v1,000003fc <[^>]*>
+[ ]*3f8: R_MIPS_PC16 .L1.2-0x4
+0+03fc <[^>]*> 00000000 nop
+0+0400 <[^>]*> 5c620000 bltc v1,v0,00000404 <[^>]*>
+[ ]*400: R_MIPS_PC16 .L1.2-0x4
+0+0404 <[^>]*> 00000000 nop
+0+0408 <[^>]*> 18020000 blezalc v0,0000040c <[^>]*>
+[ ]*408: R_MIPS_PC16 ext-0x4
+0+040c <[^>]*> 00000000 nop
+0+0410 <[^>]*> 18020000 blezalc v0,00000414 <[^>]*>
+[ ]*410: R_MIPS_PC16 L0.-0x20000
+0+0414 <[^>]*> 00000000 nop
+0+0418 <[^>]*> 18020000 blezalc v0,0000041c <[^>]*>
+[ ]*418: R_MIPS_PC16 L0.+0x1fffc
+0+041c <[^>]*> 00000000 nop
+0+0420 <[^>]*> 18020000 blezalc v0,00000424 <[^>]*>
+[ ]*420: R_MIPS_PC16 .L1.2-0x4
+0+0424 <[^>]*> 00000000 nop
+0+0428 <[^>]*> 18420000 bgezalc v0,0000042c <[^>]*>
+[ ]*428: R_MIPS_PC16 ext-0x4
+0+042c <[^>]*> 00000000 nop
+0+0430 <[^>]*> 18420000 bgezalc v0,00000434 <[^>]*>
+[ ]*430: R_MIPS_PC16 L0.-0x20000
+0+0434 <[^>]*> 00000000 nop
+0+0438 <[^>]*> 18420000 bgezalc v0,0000043c <[^>]*>
+[ ]*438: R_MIPS_PC16 L0.+0x1fffc
+0+043c <[^>]*> 00000000 nop
+0+0440 <[^>]*> 18420000 bgezalc v0,00000444 <[^>]*>
+[ ]*440: R_MIPS_PC16 .L1.2-0x4
+0+0444 <[^>]*> 00000000 nop
+0+0448 <[^>]*> 18430000 bgeuc v0,v1,0000044c <[^>]*>
+[ ]*448: R_MIPS_PC16 ext-0x4
+0+044c <[^>]*> 00000000 nop
+0+0450 <[^>]*> 18430000 bgeuc v0,v1,00000454 <[^>]*>
+[ ]*450: R_MIPS_PC16 L0.-0x20000
+0+0454 <[^>]*> 00000000 nop
+0+0458 <[^>]*> 18430000 bgeuc v0,v1,0000045c <[^>]*>
+[ ]*458: R_MIPS_PC16 L0.+0x1fffc
+0+045c <[^>]*> 00000000 nop
+0+0460 <[^>]*> 18430000 bgeuc v0,v1,00000464 <[^>]*>
+[ ]*460: R_MIPS_PC16 .L1.2-0x4
+0+0464 <[^>]*> 00000000 nop
+0+0468 <[^>]*> 18620000 bgeuc v1,v0,0000046c <[^>]*>
+[ ]*468: R_MIPS_PC16 .L1.2-0x4
+0+046c <[^>]*> 00000000 nop
+0+0470 <[^>]*> 1c020000 bgtzalc v0,00000474 <[^>]*>
+[ ]*470: R_MIPS_PC16 ext-0x4
+0+0474 <[^>]*> 00000000 nop
+0+0478 <[^>]*> 1c020000 bgtzalc v0,0000047c <[^>]*>
+[ ]*478: R_MIPS_PC16 L0.-0x20000
+0+047c <[^>]*> 00000000 nop
+0+0480 <[^>]*> 1c020000 bgtzalc v0,00000484 <[^>]*>
+[ ]*480: R_MIPS_PC16 L0.+0x1fffc
+0+0484 <[^>]*> 00000000 nop
+0+0488 <[^>]*> 1c020000 bgtzalc v0,0000048c <[^>]*>
+[ ]*488: R_MIPS_PC16 .L1.2-0x4
+0+048c <[^>]*> 00000000 nop
+0+0490 <[^>]*> 1c420000 bltzalc v0,00000494 <[^>]*>
+[ ]*490: R_MIPS_PC16 ext-0x4
+0+0494 <[^>]*> 00000000 nop
+0+0498 <[^>]*> 1c420000 bltzalc v0,0000049c <[^>]*>
+[ ]*498: R_MIPS_PC16 L0.-0x20000
+0+049c <[^>]*> 00000000 nop
+0+04a0 <[^>]*> 1c420000 bltzalc v0,000004a4 <[^>]*>
+[ ]*4a0: R_MIPS_PC16 L0.+0x1fffc
+0+04a4 <[^>]*> 00000000 nop
+0+04a8 <[^>]*> 1c420000 bltzalc v0,000004ac <[^>]*>
+[ ]*4a8: R_MIPS_PC16 .L1.2-0x4
+0+04ac <[^>]*> 00000000 nop
+0+04b0 <[^>]*> 1c430000 bltuc v0,v1,000004b4 <[^>]*>
+[ ]*4b0: R_MIPS_PC16 ext-0x4
+0+04b4 <[^>]*> 00000000 nop
+0+04b8 <[^>]*> 1c430000 bltuc v0,v1,000004bc <[^>]*>
+[ ]*4b8: R_MIPS_PC16 L0.-0x20000
+0+04bc <[^>]*> 00000000 nop
+0+04c0 <[^>]*> 1c430000 bltuc v0,v1,000004c4 <[^>]*>
+[ ]*4c0: R_MIPS_PC16 L0.+0x1fffc
+0+04c4 <[^>]*> 00000000 nop
+0+04c8 <[^>]*> 1c430000 bltuc v0,v1,000004cc <[^>]*>
+[ ]*4c8: R_MIPS_PC16 .L1.2-0x4
+0+04cc <[^>]*> 00000000 nop
+0+04d0 <[^>]*> 1c620000 bltuc v1,v0,000004d4 <[^>]*>
+[ ]*4d0: R_MIPS_PC16 .L1.2-0x4
+0+04d4 <[^>]*> 00000000 nop
+0+04d8 <[^>]*> c8000000 bc 000004dc <[^>]*>
+[ ]*4d8: R_MIPS_PC26_S2 ext-0x4
+0+04dc <[^>]*> c8000000 bc 000004e0 <[^>]*>
+[ ]*4dc: R_MIPS_PC26_S2 L0.-0x8000000
+0+04e0 <[^>]*> c8000000 bc 000004e4 <[^>]*>
+[ ]*4e0: R_MIPS_PC26_S2 L0.+0x7fffffc
+0+04e4 <[^>]*> c8000000 bc 000004e8 <[^>]*>
+[ ]*4e4: R_MIPS_PC26_S2 .L1.2-0x4
+0+04e8 <[^>]*> e8000000 balc 000004ec <[^>]*>
+[ ]*4e8: R_MIPS_PC26_S2 ext-0x4
+0+04ec <[^>]*> e8000000 balc 000004f0 <[^>]*>
+[ ]*4ec: R_MIPS_PC26_S2 L0.-0x8000000
+0+04f0 <[^>]*> e8000000 balc 000004f4 <[^>]*>
+[ ]*4f0: R_MIPS_PC26_S2 L0.+0x7fffffc
+0+04f4 <[^>]*> e8000000 balc 000004f8 <[^>]*>
+[ ]*4f4: R_MIPS_PC26_S2 .L1.2-0x4
+0+04f8 <[^>]*> d8400000 beqzc v0,000004fc <[^>]*>
+[ ]*4f8: R_MIPS_PC21_S2 ext-0x4
+0+04fc <[^>]*> 00000000 nop
+0+0500 <[^>]*> d8400000 beqzc v0,00000504 <[^>]*>
+[ ]*500: R_MIPS_PC21_S2 L0.-0x400000
+0+0504 <[^>]*> 00000000 nop
+0+0508 <[^>]*> d8400000 beqzc v0,0000050c <[^>]*>
+[ ]*508: R_MIPS_PC21_S2 L0.+0x3ffffc
+0+050c <[^>]*> 00000000 nop
+0+0510 <[^>]*> d8400000 beqzc v0,00000514 <[^>]*>
+[ ]*510: R_MIPS_PC21_S2 .L1.2-0x4
+0+0514 <[^>]*> 00000000 nop
+0+0518 <[^>]*> d8038000 jic v1,-32768
+0+051c <[^>]*> d8037fff jic v1,32767
+0+0520 <[^>]*> d81f0000 jrc ra
+0+0524 <[^>]*> f8400000 bnezc v0,00000528 <[^>]*>
+[ ]*524: R_MIPS_PC21_S2 ext-0x4
+0+0528 <[^>]*> 00000000 nop
+0+052c <[^>]*> f8400000 bnezc v0,00000530 <[^>]*>
+[ ]*52c: R_MIPS_PC21_S2 L0.-0x400000
+0+0530 <[^>]*> 00000000 nop
+0+0534 <[^>]*> f8400000 bnezc v0,00000538 <[^>]*>
+[ ]*534: R_MIPS_PC21_S2 L0.+0x3ffffc
+0+0538 <[^>]*> 00000000 nop
+0+053c <[^>]*> f8400000 bnezc v0,00000540 <[^>]*>
+[ ]*53c: R_MIPS_PC21_S2 .L1.2-0x4
+0+0540 <[^>]*> 00000000 nop
+0+0544 <[^>]*> f8038000 jialc v1,-32768
+0+0548 <[^>]*> f8037fff jialc v1,32767
+0+054c <[^>]*> 3c43ffff aui v1,v0,0xffff
+0+0550 <[^>]*> ec600000 lapc v1,00000550 <[^>]*>
+[ ]*550: R_MIPS_PC19_S2 .L1.2
+0+0554 <[^>]*> ec800000 lapc a0,00000554 <[^>]*>
+[ ]*554: R_MIPS_PC19_S2 L0.-0x100000
+0+0558 <[^>]*> ec800000 lapc a0,00000558 <[^>]*>
+[ ]*558: R_MIPS_PC19_S2 L0.+0xffffc
+0+055c <[^>]*> ec840000 lapc a0,fff0055c <[^>]*>
+0+0560 <[^>]*> ec83ffff lapc a0,0010055c <[^>]*>
+0+0564 <[^>]*> ec7effff auipc v1,0xffff
+0+0568 <[^>]*> ec7fffff aluipc v1,0xffff
+0+056c <[^>]*> ec880000 lwpc a0,0000056c <[^>]*>
+[ ]*56c: R_MIPS_PC19_S2 .L1.2
+0+0570 <[^>]*> ec880000 lwpc a0,00000570 <[^>]*>
+[ ]*570: R_MIPS_PC19_S2 L0.-0x100000
+0+0574 <[^>]*> ec880000 lwpc a0,00000574 <[^>]*>
+[ ]*574: R_MIPS_PC19_S2 L0.+0xffffc
+0+0578 <[^>]*> ec8c0000 lwpc a0,fff00578 <[^>]*>
+0+057c <[^>]*> ec8bffff lwpc a0,00100578 <[^>]*>
+0+0580 <[^>]*> 00000000 nop
+0+0584 <[^>]*> ec83ffff lapc a0,00100580 <[^>]*>
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r6-n64.d b/gas/testsuite/gas/mips/r6-n64.d
new file mode 100644
index 0000000..d099988
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-n64.d
@@ -0,0 +1,749 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPSR6 instructions
+#as: -64
+#source: r6.s
+
+# Check MIPSR6 instructions
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 46020818 maddf.s \$f0,\$f1,\$f2
+0+0004 <[^>]*> 462520d8 maddf.d \$f3,\$f4,\$f5
+0+0008 <[^>]*> 46083999 msubf.s \$f6,\$f7,\$f8
+0+000c <[^>]*> 462b5259 msubf.d \$f9,\$f10,\$f11
+0+0010 <[^>]*> 46820800 cmp.af.s \$f0,\$f1,\$f2
+0+0014 <[^>]*> 46a20800 cmp.af.d \$f0,\$f1,\$f2
+0+0018 <[^>]*> 46820801 cmp.un.s \$f0,\$f1,\$f2
+0+001c <[^>]*> 46a20801 cmp.un.d \$f0,\$f1,\$f2
+0+0020 <[^>]*> 46820802 cmp.eq.s \$f0,\$f1,\$f2
+0+0024 <[^>]*> 46a20802 cmp.eq.d \$f0,\$f1,\$f2
+0+0028 <[^>]*> 46820803 cmp.ueq.s \$f0,\$f1,\$f2
+0+002c <[^>]*> 46a20803 cmp.ueq.d \$f0,\$f1,\$f2
+0+0030 <[^>]*> 46820804 cmp.lt.s \$f0,\$f1,\$f2
+0+0034 <[^>]*> 46a20804 cmp.lt.d \$f0,\$f1,\$f2
+0+0038 <[^>]*> 46820805 cmp.ult.s \$f0,\$f1,\$f2
+0+003c <[^>]*> 46a20805 cmp.ult.d \$f0,\$f1,\$f2
+0+0040 <[^>]*> 46820806 cmp.le.s \$f0,\$f1,\$f2
+0+0044 <[^>]*> 46a20806 cmp.le.d \$f0,\$f1,\$f2
+0+0048 <[^>]*> 46820807 cmp.ule.s \$f0,\$f1,\$f2
+0+004c <[^>]*> 46a20807 cmp.ule.d \$f0,\$f1,\$f2
+0+0050 <[^>]*> 46820808 cmp.saf.s \$f0,\$f1,\$f2
+0+0054 <[^>]*> 46a20808 cmp.saf.d \$f0,\$f1,\$f2
+0+0058 <[^>]*> 46820809 cmp.sun.s \$f0,\$f1,\$f2
+0+005c <[^>]*> 46a20809 cmp.sun.d \$f0,\$f1,\$f2
+0+0060 <[^>]*> 4682080a cmp.seq.s \$f0,\$f1,\$f2
+0+0064 <[^>]*> 46a2080a cmp.seq.d \$f0,\$f1,\$f2
+0+0068 <[^>]*> 4682080b cmp.sueq.s \$f0,\$f1,\$f2
+0+006c <[^>]*> 46a2080b cmp.sueq.d \$f0,\$f1,\$f2
+0+0070 <[^>]*> 4682080c cmp.slt.s \$f0,\$f1,\$f2
+0+0074 <[^>]*> 46a2080c cmp.slt.d \$f0,\$f1,\$f2
+0+0078 <[^>]*> 4682080d cmp.sult.s \$f0,\$f1,\$f2
+0+007c <[^>]*> 46a2080d cmp.sult.d \$f0,\$f1,\$f2
+0+0080 <[^>]*> 4682080e cmp.sle.s \$f0,\$f1,\$f2
+0+0084 <[^>]*> 46a2080e cmp.sle.d \$f0,\$f1,\$f2
+0+0088 <[^>]*> 4682080f cmp.sule.s \$f0,\$f1,\$f2
+0+008c <[^>]*> 46a2080f cmp.sule.d \$f0,\$f1,\$f2
+0+0090 <[^>]*> 46820811 cmp.or.s \$f0,\$f1,\$f2
+0+0094 <[^>]*> 46a20811 cmp.or.d \$f0,\$f1,\$f2
+0+0098 <[^>]*> 46820812 cmp.une.s \$f0,\$f1,\$f2
+0+009c <[^>]*> 46a20812 cmp.une.d \$f0,\$f1,\$f2
+0+00a0 <[^>]*> 46820813 cmp.ne.s \$f0,\$f1,\$f2
+0+00a4 <[^>]*> 46a20813 cmp.ne.d \$f0,\$f1,\$f2
+0+00a8 <[^>]*> 46820819 cmp.sor.s \$f0,\$f1,\$f2
+0+00ac <[^>]*> 46a20819 cmp.sor.d \$f0,\$f1,\$f2
+0+00b0 <[^>]*> 4682081a cmp.sune.s \$f0,\$f1,\$f2
+0+00b4 <[^>]*> 46a2081a cmp.sune.d \$f0,\$f1,\$f2
+0+00b8 <[^>]*> 4682081b cmp.sne.s \$f0,\$f1,\$f2
+0+00bc <[^>]*> 46a2081b cmp.sne.d \$f0,\$f1,\$f2
+0+00c0 <[^>]*> 45200000 bc1eqz \$f0,0+00c4 <[^>]*>
+[ ]*c0: R_MIPS_PC16 .L1.1-0x4
+[ ]*c0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*c0: R_MIPS_NONE \*ABS\*-0x4
+0+00c4 <[^>]*> 00000000 nop
+0+00c8 <[^>]*> 453f0000 bc1eqz \$f31,0+00cc <[^>]*>
+[ ]*c8: R_MIPS_PC16 .L1.1-0x4
+[ ]*c8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*c8: R_MIPS_NONE \*ABS\*-0x4
+0+00cc <[^>]*> 00000000 nop
+0+00d0 <[^>]*> 453f0000 bc1eqz \$f31,0+00d4 <[^>]*>
+[ ]*d0: R_MIPS_PC16 new-0x4
+[ ]*d0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*d0: R_MIPS_NONE \*ABS\*-0x4
+0+00d4 <[^>]*> 00000000 nop
+0+00d8 <[^>]*> 453f0000 bc1eqz \$f31,0+00dc <[^>]*>
+[ ]*d8: R_MIPS_PC16 external_label-0x4
+[ ]*d8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*d8: R_MIPS_NONE \*ABS\*-0x4
+0+00dc <[^>]*> 00000000 nop
+0+00e0 <[^>]*> 45a00000 bc1nez \$f0,0+00e4 <[^>]*>
+[ ]*e0: R_MIPS_PC16 .L1.1-0x4
+[ ]*e0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*e0: R_MIPS_NONE \*ABS\*-0x4
+0+00e4 <[^>]*> 00000000 nop
+0+00e8 <[^>]*> 45bf0000 bc1nez \$f31,0+00ec <[^>]*>
+[ ]*e8: R_MIPS_PC16 .L1.1-0x4
+[ ]*e8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*e8: R_MIPS_NONE \*ABS\*-0x4
+0+00ec <[^>]*> 00000000 nop
+0+00f0 <[^>]*> 45bf0000 bc1nez \$f31,0+00f4 <[^>]*>
+[ ]*f0: R_MIPS_PC16 new-0x4
+[ ]*f0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*f0: R_MIPS_NONE \*ABS\*-0x4
+0+00f4 <[^>]*> 00000000 nop
+0+00f8 <[^>]*> 45bf0000 bc1nez \$f31,0+00fc <[^>]*>
+[ ]*f8: R_MIPS_PC16 external_label-0x4
+[ ]*f8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*f8: R_MIPS_NONE \*ABS\*-0x4
+0+00fc <[^>]*> 00000000 nop
+0+0100 <[^>]*> 49200000 bc2eqz \$0,0+0104 <[^>]*>
+[ ]*100: R_MIPS_PC16 .L1.1-0x4
+[ ]*100: R_MIPS_NONE \*ABS\*-0x4
+[ ]*100: R_MIPS_NONE \*ABS\*-0x4
+0+0104 <[^>]*> 00000000 nop
+0+0108 <[^>]*> 493f0000 bc2eqz \$31,0+010c <[^>]*>
+[ ]*108: R_MIPS_PC16 .L1.1-0x4
+[ ]*108: R_MIPS_NONE \*ABS\*-0x4
+[ ]*108: R_MIPS_NONE \*ABS\*-0x4
+0+010c <[^>]*> 00000000 nop
+0+0110 <[^>]*> 493f0000 bc2eqz \$31,0+0114 <[^>]*>
+[ ]*110: R_MIPS_PC16 new-0x4
+[ ]*110: R_MIPS_NONE \*ABS\*-0x4
+[ ]*110: R_MIPS_NONE \*ABS\*-0x4
+0+0114 <[^>]*> 00000000 nop
+0+0118 <[^>]*> 493f0000 bc2eqz \$31,0+011c <[^>]*>
+[ ]*118: R_MIPS_PC16 external_label-0x4
+[ ]*118: R_MIPS_NONE \*ABS\*-0x4
+[ ]*118: R_MIPS_NONE \*ABS\*-0x4
+0+011c <[^>]*> 00000000 nop
+0+0120 <[^>]*> 49a00000 bc2nez \$0,0+0124 <[^>]*>
+[ ]*120: R_MIPS_PC16 .L1.1-0x4
+[ ]*120: R_MIPS_NONE \*ABS\*-0x4
+[ ]*120: R_MIPS_NONE \*ABS\*-0x4
+0+0124 <[^>]*> 00000000 nop
+0+0128 <[^>]*> 49bf0000 bc2nez \$31,0+012c <[^>]*>
+[ ]*128: R_MIPS_PC16 .L1.1-0x4
+[ ]*128: R_MIPS_NONE \*ABS\*-0x4
+[ ]*128: R_MIPS_NONE \*ABS\*-0x4
+0+012c <[^>]*> 00000000 nop
+0+0130 <[^>]*> 49bf0000 bc2nez \$31,0+0134 <[^>]*>
+[ ]*130: R_MIPS_PC16 new-0x4
+[ ]*130: R_MIPS_NONE \*ABS\*-0x4
+[ ]*130: R_MIPS_NONE \*ABS\*-0x4
+0+0134 <[^>]*> 00000000 nop
+0+0138 <[^>]*> 49bf0000 bc2nez \$31,0+013c <[^>]*>
+[ ]*138: R_MIPS_PC16 external_label-0x4
+[ ]*138: R_MIPS_NONE \*ABS\*-0x4
+[ ]*138: R_MIPS_NONE \*ABS\*-0x4
+0+013c <[^>]*> 00000000 nop
+0+0140 <[^>]*> 46020810 sel.s \$f0,\$f1,\$f2
+0+0144 <[^>]*> 46220810 sel.d \$f0,\$f1,\$f2
+0+0148 <[^>]*> 46020814 seleqz.s \$f0,\$f1,\$f2
+0+014c <[^>]*> 46220814 seleqz.d \$f0,\$f1,\$f2
+0+0150 <[^>]*> 46020817 selnez.s \$f0,\$f1,\$f2
+0+0154 <[^>]*> 46220817 selnez.d \$f0,\$f1,\$f2
+0+0158 <[^>]*> 00641035 seleqz v0,v1,a0
+0+015c <[^>]*> 00641037 selnez v0,v1,a0
+0+0160 <[^>]*> 00641098 mul v0,v1,a0
+0+0164 <[^>]*> 006410d8 muh v0,v1,a0
+0+0168 <[^>]*> 00641099 mulu v0,v1,a0
+0+016c <[^>]*> 006410d9 muhu v0,v1,a0
+0+0170 <[^>]*> 0064109a div v0,v1,a0
+0+0174 <[^>]*> 006410da mod v0,v1,a0
+0+0178 <[^>]*> 0064109b divu v0,v1,a0
+0+017c <[^>]*> 006410db modu v0,v1,a0
+0+0180 <[^>]*> 49422000 lwc2 \$2,0\(a0\)
+0+0184 <[^>]*> 49422400 lwc2 \$2,-1024\(a0\)
+0+0188 <[^>]*> 494223ff lwc2 \$2,1023\(a0\)
+0+018c <[^>]*> 49622000 swc2 \$2,0\(a0\)
+0+0190 <[^>]*> 49622400 swc2 \$2,-1024\(a0\)
+0+0194 <[^>]*> 496223ff swc2 \$2,1023\(a0\)
+0+0198 <[^>]*> 49c22000 ldc2 \$2,0\(a0\)
+0+019c <[^>]*> 49c22400 ldc2 \$2,-1024\(a0\)
+0+01a0 <[^>]*> 49c223ff ldc2 \$2,1023\(a0\)
+0+01a4 <[^>]*> 49e22000 sdc2 \$2,0\(a0\)
+0+01a8 <[^>]*> 49e22400 sdc2 \$2,-1024\(a0\)
+0+01ac <[^>]*> 49e223ff sdc2 \$2,1023\(a0\)
+0+01b0 <[^>]*> 00641005 lsa v0,v1,a0,0x1
+0+01b4 <[^>]*> 006410c5 lsa v0,v1,a0,0x4
+0+01b8 <[^>]*> 00601050 clz v0,v1
+0+01bc <[^>]*> 00601051 clo v0,v1
+0+01c0 <[^>]*> 0000000e sdbbp
+0+01c4 <[^>]*> 0000000e sdbbp
+0+01c8 <[^>]*> 0000004e sdbbp 0x1
+0+01cc <[^>]*> 03ffffce sdbbp 0xfffff
+0+01d0 <[^>]*> 3c02ffff lui v0,0xffff
+0+01d4 <[^>]*> 7c008035 pref 0x0,-256\(zero\)
+0+01d8 <[^>]*> 7fff7fb5 pref 0x1f,255\(ra\)
+0+01dc <[^>]*> 7c628036 ll v0,-256\(v1\)
+0+01e0 <[^>]*> 7c627fb6 ll v0,255\(v1\)
+0+01e4 <[^>]*> 7c628026 sc v0,-256\(v1\)
+0+01e8 <[^>]*> 7c627fa6 sc v0,255\(v1\)
+0+01ec <[^>]*> 7c608025 cache 0x0,-256\(v1\)
+0+01f0 <[^>]*> 7c7f7fa5 cache 0x1f,255\(v1\)
+0+01f4 <[^>]*> 7c432220 align a0,v0,v1,0
+0+01f8 <[^>]*> 7c432260 align a0,v0,v1,1
+0+01fc <[^>]*> 7c4322a0 align a0,v0,v1,2
+0+0200 <[^>]*> 7c4322e0 align a0,v0,v1,3
+0+0204 <[^>]*> 7c022020 bitswap a0,v0
+0+0208 <[^>]*> 20000000 bovc zero,zero,0+020c <[^>]*>
+[ ]*208: R_MIPS_PC16 ext-0x4
+[ ]*208: R_MIPS_NONE \*ABS\*-0x4
+[ ]*208: R_MIPS_NONE \*ABS\*-0x4
+0+020c <[^>]*> 00000000 nop
+0+0210 <[^>]*> 20400000 bovc v0,zero,0+0214 <[^>]*>
+[ ]*210: R_MIPS_PC16 ext-0x4
+[ ]*210: R_MIPS_NONE \*ABS\*-0x4
+[ ]*210: R_MIPS_NONE \*ABS\*-0x4
+0+0214 <[^>]*> 00000000 nop
+0+0218 <[^>]*> 20400000 bovc v0,zero,0+021c <[^>]*>
+[ ]*218: R_MIPS_PC16 ext-0x4
+[ ]*218: R_MIPS_NONE \*ABS\*-0x4
+[ ]*218: R_MIPS_NONE \*ABS\*-0x4
+0+021c <[^>]*> 00000000 nop
+0+0220 <[^>]*> 20820000 bovc a0,v0,0+0224 <[^>]*>
+[ ]*220: R_MIPS_PC16 ext-0x4
+[ ]*220: R_MIPS_NONE \*ABS\*-0x4
+[ ]*220: R_MIPS_NONE \*ABS\*-0x4
+0+0224 <[^>]*> 00000000 nop
+0+0228 <[^>]*> 20820000 bovc a0,v0,0+022c <[^>]*>
+[ ]*228: R_MIPS_PC16 ext-0x4
+[ ]*228: R_MIPS_NONE \*ABS\*-0x4
+[ ]*228: R_MIPS_NONE \*ABS\*-0x4
+0+022c <[^>]*> 00000000 nop
+0+0230 <[^>]*> 20820000 bovc a0,v0,0+0234 <[^>]*>
+[ ]*230: R_MIPS_PC16 L0.-0x20000
+[ ]*230: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*230: R_MIPS_NONE \*ABS\*-0x20000
+0+0234 <[^>]*> 00000000 nop
+0+0238 <[^>]*> 20820000 bovc a0,v0,0+023c <[^>]*>
+[ ]*238: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*238: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*238: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+023c <[^>]*> 00000000 nop
+0+0240 <[^>]*> 20820000 bovc a0,v0,0+0244 <[^>]*>
+[ ]*240: R_MIPS_PC16 .L1.2-0x4
+[ ]*240: R_MIPS_NONE \*ABS\*-0x4
+[ ]*240: R_MIPS_NONE \*ABS\*-0x4
+0+0244 <[^>]*> 00000000 nop
+0+0248 <[^>]*> 20420000 bovc v0,v0,0+024c <[^>]*>
+[ ]*248: R_MIPS_PC16 ext-0x4
+[ ]*248: R_MIPS_NONE \*ABS\*-0x4
+[ ]*248: R_MIPS_NONE \*ABS\*-0x4
+0+024c <[^>]*> 00000000 nop
+0+0250 <[^>]*> 20420000 bovc v0,v0,0+0254 <[^>]*>
+[ ]*250: R_MIPS_PC16 L0.-0x20000
+[ ]*250: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*250: R_MIPS_NONE \*ABS\*-0x20000
+0+0254 <[^>]*> 00000000 nop
+0+0258 <[^>]*> 20020000 beqzalc v0,0+025c <[^>]*>
+[ ]*258: R_MIPS_PC16 ext-0x4
+[ ]*258: R_MIPS_NONE \*ABS\*-0x4
+[ ]*258: R_MIPS_NONE \*ABS\*-0x4
+0+025c <[^>]*> 00000000 nop
+0+0260 <[^>]*> 20020000 beqzalc v0,0+0264 <[^>]*>
+[ ]*260: R_MIPS_PC16 L0.-0x20000
+[ ]*260: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*260: R_MIPS_NONE \*ABS\*-0x20000
+0+0264 <[^>]*> 00000000 nop
+0+0268 <[^>]*> 20020000 beqzalc v0,0+026c <[^>]*>
+[ ]*268: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*268: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*268: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+026c <[^>]*> 00000000 nop
+0+0270 <[^>]*> 20020000 beqzalc v0,0+0274 <[^>]*>
+[ ]*270: R_MIPS_PC16 .L1.2-0x4
+[ ]*270: R_MIPS_NONE \*ABS\*-0x4
+[ ]*270: R_MIPS_NONE \*ABS\*-0x4
+0+0274 <[^>]*> 00000000 nop
+0+0278 <[^>]*> 20430000 beqc v0,v1,0+027c <[^>]*>
+[ ]*278: R_MIPS_PC16 ext-0x4
+[ ]*278: R_MIPS_NONE \*ABS\*-0x4
+[ ]*278: R_MIPS_NONE \*ABS\*-0x4
+0+027c <[^>]*> 00000000 nop
+0+0280 <[^>]*> 20430000 beqc v0,v1,0+0284 <[^>]*>
+[ ]*280: R_MIPS_PC16 ext-0x4
+[ ]*280: R_MIPS_NONE \*ABS\*-0x4
+[ ]*280: R_MIPS_NONE \*ABS\*-0x4
+0+0284 <[^>]*> 00000000 nop
+0+0288 <[^>]*> 20430000 beqc v0,v1,0+028c <[^>]*>
+[ ]*288: R_MIPS_PC16 L0.-0x20000
+[ ]*288: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*288: R_MIPS_NONE \*ABS\*-0x20000
+0+028c <[^>]*> 00000000 nop
+0+0290 <[^>]*> 20430000 beqc v0,v1,0+0294 <[^>]*>
+[ ]*290: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*290: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*290: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+0294 <[^>]*> 00000000 nop
+0+0298 <[^>]*> 20430000 beqc v0,v1,0+029c <[^>]*>
+[ ]*298: R_MIPS_PC16 .L1.2-0x4
+[ ]*298: R_MIPS_NONE \*ABS\*-0x4
+[ ]*298: R_MIPS_NONE \*ABS\*-0x4
+0+029c <[^>]*> 00000000 nop
+0+02a0 <[^>]*> 60000000 bnvc zero,zero,0+02a4 <[^>]*>
+[ ]*2a0: R_MIPS_PC16 ext-0x4
+[ ]*2a0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2a0: R_MIPS_NONE \*ABS\*-0x4
+0+02a4 <[^>]*> 00000000 nop
+0+02a8 <[^>]*> 60400000 bnvc v0,zero,0+02ac <[^>]*>
+[ ]*2a8: R_MIPS_PC16 ext-0x4
+[ ]*2a8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2a8: R_MIPS_NONE \*ABS\*-0x4
+0+02ac <[^>]*> 00000000 nop
+0+02b0 <[^>]*> 60400000 bnvc v0,zero,0+02b4 <[^>]*>
+[ ]*2b0: R_MIPS_PC16 ext-0x4
+[ ]*2b0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2b0: R_MIPS_NONE \*ABS\*-0x4
+0+02b4 <[^>]*> 00000000 nop
+0+02b8 <[^>]*> 60820000 bnvc a0,v0,0+02bc <[^>]*>
+[ ]*2b8: R_MIPS_PC16 ext-0x4
+[ ]*2b8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2b8: R_MIPS_NONE \*ABS\*-0x4
+0+02bc <[^>]*> 00000000 nop
+0+02c0 <[^>]*> 60820000 bnvc a0,v0,0+02c4 <[^>]*>
+[ ]*2c0: R_MIPS_PC16 ext-0x4
+[ ]*2c0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2c0: R_MIPS_NONE \*ABS\*-0x4
+0+02c4 <[^>]*> 00000000 nop
+0+02c8 <[^>]*> 60820000 bnvc a0,v0,0+02cc <[^>]*>
+[ ]*2c8: R_MIPS_PC16 L0.-0x20000
+[ ]*2c8: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*2c8: R_MIPS_NONE \*ABS\*-0x20000
+0+02cc <[^>]*> 00000000 nop
+0+02d0 <[^>]*> 60820000 bnvc a0,v0,0+02d4 <[^>]*>
+[ ]*2d0: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*2d0: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*2d0: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+02d4 <[^>]*> 00000000 nop
+0+02d8 <[^>]*> 60820000 bnvc a0,v0,0+02dc <[^>]*>
+[ ]*2d8: R_MIPS_PC16 .L1.2-0x4
+[ ]*2d8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2d8: R_MIPS_NONE \*ABS\*-0x4
+0+02dc <[^>]*> 00000000 nop
+0+02e0 <[^>]*> 60420000 bnvc v0,v0,0+02e4 <[^>]*>
+[ ]*2e0: R_MIPS_PC16 ext-0x4
+[ ]*2e0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2e0: R_MIPS_NONE \*ABS\*-0x4
+0+02e4 <[^>]*> 00000000 nop
+0+02e8 <[^>]*> 60420000 bnvc v0,v0,0+02ec <[^>]*>
+[ ]*2e8: R_MIPS_PC16 L0.-0x20000
+[ ]*2e8: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*2e8: R_MIPS_NONE \*ABS\*-0x20000
+0+02ec <[^>]*> 00000000 nop
+0+02f0 <[^>]*> 60020000 bnezalc v0,0+02f4 <[^>]*>
+[ ]*2f0: R_MIPS_PC16 ext-0x4
+[ ]*2f0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*2f0: R_MIPS_NONE \*ABS\*-0x4
+0+02f4 <[^>]*> 00000000 nop
+0+02f8 <[^>]*> 60020000 bnezalc v0,0+02fc <[^>]*>
+[ ]*2f8: R_MIPS_PC16 L0.-0x20000
+[ ]*2f8: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*2f8: R_MIPS_NONE \*ABS\*-0x20000
+0+02fc <[^>]*> 00000000 nop
+0+0300 <[^>]*> 60020000 bnezalc v0,0+0304 <[^>]*>
+[ ]*300: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*300: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*300: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+0304 <[^>]*> 00000000 nop
+0+0308 <[^>]*> 60020000 bnezalc v0,0+030c <[^>]*>
+[ ]*308: R_MIPS_PC16 .L1.2-0x4
+[ ]*308: R_MIPS_NONE \*ABS\*-0x4
+[ ]*308: R_MIPS_NONE \*ABS\*-0x4
+0+030c <[^>]*> 00000000 nop
+0+0310 <[^>]*> 60430000 bnec v0,v1,0+0314 <[^>]*>
+[ ]*310: R_MIPS_PC16 ext-0x4
+[ ]*310: R_MIPS_NONE \*ABS\*-0x4
+[ ]*310: R_MIPS_NONE \*ABS\*-0x4
+0+0314 <[^>]*> 00000000 nop
+0+0318 <[^>]*> 60430000 bnec v0,v1,0+031c <[^>]*>
+[ ]*318: R_MIPS_PC16 ext-0x4
+[ ]*318: R_MIPS_NONE \*ABS\*-0x4
+[ ]*318: R_MIPS_NONE \*ABS\*-0x4
+0+031c <[^>]*> 00000000 nop
+0+0320 <[^>]*> 60430000 bnec v0,v1,0+0324 <[^>]*>
+[ ]*320: R_MIPS_PC16 L0.-0x20000
+[ ]*320: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*320: R_MIPS_NONE \*ABS\*-0x20000
+0+0324 <[^>]*> 00000000 nop
+0+0328 <[^>]*> 60430000 bnec v0,v1,0+032c <[^>]*>
+[ ]*328: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*328: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*328: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+032c <[^>]*> 00000000 nop
+0+0330 <[^>]*> 60430000 bnec v0,v1,0+0334 <[^>]*>
+[ ]*330: R_MIPS_PC16 .L1.2-0x4
+[ ]*330: R_MIPS_NONE \*ABS\*-0x4
+[ ]*330: R_MIPS_NONE \*ABS\*-0x4
+0+0334 <[^>]*> 00000000 nop
+0+0338 <[^>]*> 58020000 blezc v0,0+033c <[^>]*>
+[ ]*338: R_MIPS_PC16 ext-0x4
+[ ]*338: R_MIPS_NONE \*ABS\*-0x4
+[ ]*338: R_MIPS_NONE \*ABS\*-0x4
+0+033c <[^>]*> 00000000 nop
+0+0340 <[^>]*> 58020000 blezc v0,0+0344 <[^>]*>
+[ ]*340: R_MIPS_PC16 L0.-0x20000
+[ ]*340: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*340: R_MIPS_NONE \*ABS\*-0x20000
+0+0344 <[^>]*> 00000000 nop
+0+0348 <[^>]*> 58020000 blezc v0,0+034c <[^>]*>
+[ ]*348: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*348: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*348: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+034c <[^>]*> 00000000 nop
+0+0350 <[^>]*> 58020000 blezc v0,0+0354 <[^>]*>
+[ ]*350: R_MIPS_PC16 .L1.2-0x4
+[ ]*350: R_MIPS_NONE \*ABS\*-0x4
+[ ]*350: R_MIPS_NONE \*ABS\*-0x4
+0+0354 <[^>]*> 00000000 nop
+0+0358 <[^>]*> 58420000 bgezc v0,0+035c <[^>]*>
+[ ]*358: R_MIPS_PC16 ext-0x4
+[ ]*358: R_MIPS_NONE \*ABS\*-0x4
+[ ]*358: R_MIPS_NONE \*ABS\*-0x4
+0+035c <[^>]*> 00000000 nop
+0+0360 <[^>]*> 58420000 bgezc v0,0+0364 <[^>]*>
+[ ]*360: R_MIPS_PC16 L0.-0x20000
+[ ]*360: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*360: R_MIPS_NONE \*ABS\*-0x20000
+0+0364 <[^>]*> 00000000 nop
+0+0368 <[^>]*> 58420000 bgezc v0,0+036c <[^>]*>
+[ ]*368: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*368: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*368: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+036c <[^>]*> 00000000 nop
+0+0370 <[^>]*> 58420000 bgezc v0,0+0374 <[^>]*>
+[ ]*370: R_MIPS_PC16 .L1.2-0x4
+[ ]*370: R_MIPS_NONE \*ABS\*-0x4
+[ ]*370: R_MIPS_NONE \*ABS\*-0x4
+0+0374 <[^>]*> 00000000 nop
+0+0378 <[^>]*> 58430000 bgec v0,v1,0+037c <[^>]*>
+[ ]*378: R_MIPS_PC16 ext-0x4
+[ ]*378: R_MIPS_NONE \*ABS\*-0x4
+[ ]*378: R_MIPS_NONE \*ABS\*-0x4
+0+037c <[^>]*> 00000000 nop
+0+0380 <[^>]*> 58430000 bgec v0,v1,0+0384 <[^>]*>
+[ ]*380: R_MIPS_PC16 L0.-0x20000
+[ ]*380: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*380: R_MIPS_NONE \*ABS\*-0x20000
+0+0384 <[^>]*> 00000000 nop
+0+0388 <[^>]*> 58430000 bgec v0,v1,0+038c <[^>]*>
+[ ]*388: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*388: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*388: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+038c <[^>]*> 00000000 nop
+0+0390 <[^>]*> 58430000 bgec v0,v1,0+0394 <[^>]*>
+[ ]*390: R_MIPS_PC16 .L1.2-0x4
+[ ]*390: R_MIPS_NONE \*ABS\*-0x4
+[ ]*390: R_MIPS_NONE \*ABS\*-0x4
+0+0394 <[^>]*> 00000000 nop
+0+0398 <[^>]*> 58620000 bgec v1,v0,0+039c <[^>]*>
+[ ]*398: R_MIPS_PC16 .L1.2-0x4
+[ ]*398: R_MIPS_NONE \*ABS\*-0x4
+[ ]*398: R_MIPS_NONE \*ABS\*-0x4
+0+039c <[^>]*> 00000000 nop
+0+03a0 <[^>]*> 5c020000 bgtzc v0,0+03a4 <[^>]*>
+[ ]*3a0: R_MIPS_PC16 ext-0x4
+[ ]*3a0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3a0: R_MIPS_NONE \*ABS\*-0x4
+0+03a4 <[^>]*> 00000000 nop
+0+03a8 <[^>]*> 5c020000 bgtzc v0,0+03ac <[^>]*>
+[ ]*3a8: R_MIPS_PC16 L0.-0x20000
+[ ]*3a8: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*3a8: R_MIPS_NONE \*ABS\*-0x20000
+0+03ac <[^>]*> 00000000 nop
+0+03b0 <[^>]*> 5c020000 bgtzc v0,0+03b4 <[^>]*>
+[ ]*3b0: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*3b0: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*3b0: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+03b4 <[^>]*> 00000000 nop
+0+03b8 <[^>]*> 5c020000 bgtzc v0,0+03bc <[^>]*>
+[ ]*3b8: R_MIPS_PC16 .L1.2-0x4
+[ ]*3b8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3b8: R_MIPS_NONE \*ABS\*-0x4
+0+03bc <[^>]*> 00000000 nop
+0+03c0 <[^>]*> 5c420000 bltzc v0,0+03c4 <[^>]*>
+[ ]*3c0: R_MIPS_PC16 ext-0x4
+[ ]*3c0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3c0: R_MIPS_NONE \*ABS\*-0x4
+0+03c4 <[^>]*> 00000000 nop
+0+03c8 <[^>]*> 5c420000 bltzc v0,0+03cc <[^>]*>
+[ ]*3c8: R_MIPS_PC16 L0.-0x20000
+[ ]*3c8: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*3c8: R_MIPS_NONE \*ABS\*-0x20000
+0+03cc <[^>]*> 00000000 nop
+0+03d0 <[^>]*> 5c420000 bltzc v0,0+03d4 <[^>]*>
+[ ]*3d0: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*3d0: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*3d0: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+03d4 <[^>]*> 00000000 nop
+0+03d8 <[^>]*> 5c420000 bltzc v0,0+03dc <[^>]*>
+[ ]*3d8: R_MIPS_PC16 .L1.2-0x4
+[ ]*3d8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3d8: R_MIPS_NONE \*ABS\*-0x4
+0+03dc <[^>]*> 00000000 nop
+0+03e0 <[^>]*> 5c430000 bltc v0,v1,0+03e4 <[^>]*>
+[ ]*3e0: R_MIPS_PC16 ext-0x4
+[ ]*3e0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3e0: R_MIPS_NONE \*ABS\*-0x4
+0+03e4 <[^>]*> 00000000 nop
+0+03e8 <[^>]*> 5c430000 bltc v0,v1,0+03ec <[^>]*>
+[ ]*3e8: R_MIPS_PC16 L0.-0x20000
+[ ]*3e8: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*3e8: R_MIPS_NONE \*ABS\*-0x20000
+0+03ec <[^>]*> 00000000 nop
+0+03f0 <[^>]*> 5c430000 bltc v0,v1,0+03f4 <[^>]*>
+[ ]*3f0: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*3f0: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*3f0: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+03f4 <[^>]*> 00000000 nop
+0+03f8 <[^>]*> 5c430000 bltc v0,v1,0+03fc <[^>]*>
+[ ]*3f8: R_MIPS_PC16 .L1.2-0x4
+[ ]*3f8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*3f8: R_MIPS_NONE \*ABS\*-0x4
+0+03fc <[^>]*> 00000000 nop
+0+0400 <[^>]*> 5c620000 bltc v1,v0,0+0404 <[^>]*>
+[ ]*400: R_MIPS_PC16 .L1.2-0x4
+[ ]*400: R_MIPS_NONE \*ABS\*-0x4
+[ ]*400: R_MIPS_NONE \*ABS\*-0x4
+0+0404 <[^>]*> 00000000 nop
+0+0408 <[^>]*> 18020000 blezalc v0,0+040c <[^>]*>
+[ ]*408: R_MIPS_PC16 ext-0x4
+[ ]*408: R_MIPS_NONE \*ABS\*-0x4
+[ ]*408: R_MIPS_NONE \*ABS\*-0x4
+0+040c <[^>]*> 00000000 nop
+0+0410 <[^>]*> 18020000 blezalc v0,0+0414 <[^>]*>
+[ ]*410: R_MIPS_PC16 L0.-0x20000
+[ ]*410: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*410: R_MIPS_NONE \*ABS\*-0x20000
+0+0414 <[^>]*> 00000000 nop
+0+0418 <[^>]*> 18020000 blezalc v0,0+041c <[^>]*>
+[ ]*418: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*418: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*418: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+041c <[^>]*> 00000000 nop
+0+0420 <[^>]*> 18020000 blezalc v0,0+0424 <[^>]*>
+[ ]*420: R_MIPS_PC16 .L1.2-0x4
+[ ]*420: R_MIPS_NONE \*ABS\*-0x4
+[ ]*420: R_MIPS_NONE \*ABS\*-0x4
+0+0424 <[^>]*> 00000000 nop
+0+0428 <[^>]*> 18420000 bgezalc v0,0+042c <[^>]*>
+[ ]*428: R_MIPS_PC16 ext-0x4
+[ ]*428: R_MIPS_NONE \*ABS\*-0x4
+[ ]*428: R_MIPS_NONE \*ABS\*-0x4
+0+042c <[^>]*> 00000000 nop
+0+0430 <[^>]*> 18420000 bgezalc v0,0+0434 <[^>]*>
+[ ]*430: R_MIPS_PC16 L0.-0x20000
+[ ]*430: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*430: R_MIPS_NONE \*ABS\*-0x20000
+0+0434 <[^>]*> 00000000 nop
+0+0438 <[^>]*> 18420000 bgezalc v0,0+043c <[^>]*>
+[ ]*438: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*438: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*438: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+043c <[^>]*> 00000000 nop
+0+0440 <[^>]*> 18420000 bgezalc v0,0+0444 <[^>]*>
+[ ]*440: R_MIPS_PC16 .L1.2-0x4
+[ ]*440: R_MIPS_NONE \*ABS\*-0x4
+[ ]*440: R_MIPS_NONE \*ABS\*-0x4
+0+0444 <[^>]*> 00000000 nop
+0+0448 <[^>]*> 18430000 bgeuc v0,v1,0+044c <[^>]*>
+[ ]*448: R_MIPS_PC16 ext-0x4
+[ ]*448: R_MIPS_NONE \*ABS\*-0x4
+[ ]*448: R_MIPS_NONE \*ABS\*-0x4
+0+044c <[^>]*> 00000000 nop
+0+0450 <[^>]*> 18430000 bgeuc v0,v1,0+0454 <[^>]*>
+[ ]*450: R_MIPS_PC16 L0.-0x20000
+[ ]*450: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*450: R_MIPS_NONE \*ABS\*-0x20000
+0+0454 <[^>]*> 00000000 nop
+0+0458 <[^>]*> 18430000 bgeuc v0,v1,0+045c <[^>]*>
+[ ]*458: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*458: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*458: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+045c <[^>]*> 00000000 nop
+0+0460 <[^>]*> 18430000 bgeuc v0,v1,0+0464 <[^>]*>
+[ ]*460: R_MIPS_PC16 .L1.2-0x4
+[ ]*460: R_MIPS_NONE \*ABS\*-0x4
+[ ]*460: R_MIPS_NONE \*ABS\*-0x4
+0+0464 <[^>]*> 00000000 nop
+0+0468 <[^>]*> 18620000 bgeuc v1,v0,0+046c <[^>]*>
+[ ]*468: R_MIPS_PC16 .L1.2-0x4
+[ ]*468: R_MIPS_NONE \*ABS\*-0x4
+[ ]*468: R_MIPS_NONE \*ABS\*-0x4
+0+046c <[^>]*> 00000000 nop
+0+0470 <[^>]*> 1c020000 bgtzalc v0,0+0474 <[^>]*>
+[ ]*470: R_MIPS_PC16 ext-0x4
+[ ]*470: R_MIPS_NONE \*ABS\*-0x4
+[ ]*470: R_MIPS_NONE \*ABS\*-0x4
+0+0474 <[^>]*> 00000000 nop
+0+0478 <[^>]*> 1c020000 bgtzalc v0,0+047c <[^>]*>
+[ ]*478: R_MIPS_PC16 L0.-0x20000
+[ ]*478: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*478: R_MIPS_NONE \*ABS\*-0x20000
+0+047c <[^>]*> 00000000 nop
+0+0480 <[^>]*> 1c020000 bgtzalc v0,0+0484 <[^>]*>
+[ ]*480: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*480: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*480: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+0484 <[^>]*> 00000000 nop
+0+0488 <[^>]*> 1c020000 bgtzalc v0,0+048c <[^>]*>
+[ ]*488: R_MIPS_PC16 .L1.2-0x4
+[ ]*488: R_MIPS_NONE \*ABS\*-0x4
+[ ]*488: R_MIPS_NONE \*ABS\*-0x4
+0+048c <[^>]*> 00000000 nop
+0+0490 <[^>]*> 1c420000 bltzalc v0,0+0494 <[^>]*>
+[ ]*490: R_MIPS_PC16 ext-0x4
+[ ]*490: R_MIPS_NONE \*ABS\*-0x4
+[ ]*490: R_MIPS_NONE \*ABS\*-0x4
+0+0494 <[^>]*> 00000000 nop
+0+0498 <[^>]*> 1c420000 bltzalc v0,0+049c <[^>]*>
+[ ]*498: R_MIPS_PC16 L0.-0x20000
+[ ]*498: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*498: R_MIPS_NONE \*ABS\*-0x20000
+0+049c <[^>]*> 00000000 nop
+0+04a0 <[^>]*> 1c420000 bltzalc v0,0+04a4 <[^>]*>
+[ ]*4a0: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*4a0: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*4a0: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+04a4 <[^>]*> 00000000 nop
+0+04a8 <[^>]*> 1c420000 bltzalc v0,0+04ac <[^>]*>
+[ ]*4a8: R_MIPS_PC16 .L1.2-0x4
+[ ]*4a8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4a8: R_MIPS_NONE \*ABS\*-0x4
+0+04ac <[^>]*> 00000000 nop
+0+04b0 <[^>]*> 1c430000 bltuc v0,v1,0+04b4 <[^>]*>
+[ ]*4b0: R_MIPS_PC16 ext-0x4
+[ ]*4b0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4b0: R_MIPS_NONE \*ABS\*-0x4
+0+04b4 <[^>]*> 00000000 nop
+0+04b8 <[^>]*> 1c430000 bltuc v0,v1,0+04bc <[^>]*>
+[ ]*4b8: R_MIPS_PC16 L0.-0x20000
+[ ]*4b8: R_MIPS_NONE \*ABS\*-0x20000
+[ ]*4b8: R_MIPS_NONE \*ABS\*-0x20000
+0+04bc <[^>]*> 00000000 nop
+0+04c0 <[^>]*> 1c430000 bltuc v0,v1,0+04c4 <[^>]*>
+[ ]*4c0: R_MIPS_PC16 L0.\+0x1fffc
+[ ]*4c0: R_MIPS_NONE \*ABS\*\+0x1fffc
+[ ]*4c0: R_MIPS_NONE \*ABS\*\+0x1fffc
+0+04c4 <[^>]*> 00000000 nop
+0+04c8 <[^>]*> 1c430000 bltuc v0,v1,0+04cc <[^>]*>
+[ ]*4c8: R_MIPS_PC16 .L1.2-0x4
+[ ]*4c8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4c8: R_MIPS_NONE \*ABS\*-0x4
+0+04cc <[^>]*> 00000000 nop
+0+04d0 <[^>]*> 1c620000 bltuc v1,v0,0+04d4 <[^>]*>
+[ ]*4d0: R_MIPS_PC16 .L1.2-0x4
+[ ]*4d0: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4d0: R_MIPS_NONE \*ABS\*-0x4
+0+04d4 <[^>]*> 00000000 nop
+0+04d8 <[^>]*> c8000000 bc 0+04dc <[^>]*>
+[ ]*4d8: R_MIPS_PC26_S2 ext-0x4
+[ ]*4d8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4d8: R_MIPS_NONE \*ABS\*-0x4
+0+04dc <[^>]*> c8000000 bc 0+04e0 <[^>]*>
+[ ]*4dc: R_MIPS_PC26_S2 L0.-0x8000000
+[ ]*4dc: R_MIPS_NONE \*ABS\*-0x8000000
+[ ]*4dc: R_MIPS_NONE \*ABS\*-0x8000000
+0+04e0 <[^>]*> c8000000 bc 0+04e4 <[^>]*>
+[ ]*4e0: R_MIPS_PC26_S2 L0.\+0x7fffffc
+[ ]*4e0: R_MIPS_NONE \*ABS\*\+0x7fffffc
+[ ]*4e0: R_MIPS_NONE \*ABS\*\+0x7fffffc
+0+04e4 <[^>]*> c8000000 bc 0+04e8 <[^>]*>
+[ ]*4e4: R_MIPS_PC26_S2 .L1.2-0x4
+[ ]*4e4: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4e4: R_MIPS_NONE \*ABS\*-0x4
+0+04e8 <[^>]*> e8000000 balc 0+04ec <[^>]*>
+[ ]*4e8: R_MIPS_PC26_S2 ext-0x4
+[ ]*4e8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4e8: R_MIPS_NONE \*ABS\*-0x4
+0+04ec <[^>]*> e8000000 balc 0+04f0 <[^>]*>
+[ ]*4ec: R_MIPS_PC26_S2 L0.-0x8000000
+[ ]*4ec: R_MIPS_NONE \*ABS\*-0x8000000
+[ ]*4ec: R_MIPS_NONE \*ABS\*-0x8000000
+0+04f0 <[^>]*> e8000000 balc 0+04f4 <[^>]*>
+[ ]*4f0: R_MIPS_PC26_S2 L0.\+0x7fffffc
+[ ]*4f0: R_MIPS_NONE \*ABS\*\+0x7fffffc
+[ ]*4f0: R_MIPS_NONE \*ABS\*\+0x7fffffc
+0+04f4 <[^>]*> e8000000 balc 0+04f8 <[^>]*>
+[ ]*4f4: R_MIPS_PC26_S2 .L1.2-0x4
+[ ]*4f4: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4f4: R_MIPS_NONE \*ABS\*-0x4
+0+04f8 <[^>]*> d8400000 beqzc v0,0+04fc <[^>]*>
+[ ]*4f8: R_MIPS_PC21_S2 ext-0x4
+[ ]*4f8: R_MIPS_NONE \*ABS\*-0x4
+[ ]*4f8: R_MIPS_NONE \*ABS\*-0x4
+0+04fc <[^>]*> 00000000 nop
+0+0500 <[^>]*> d8400000 beqzc v0,0+0504 <[^>]*>
+[ ]*500: R_MIPS_PC21_S2 L0.-0x400000
+[ ]*500: R_MIPS_NONE \*ABS\*-0x400000
+[ ]*500: R_MIPS_NONE \*ABS\*-0x400000
+0+0504 <[^>]*> 00000000 nop
+0+0508 <[^>]*> d8400000 beqzc v0,0+050c <[^>]*>
+[ ]*508: R_MIPS_PC21_S2 L0.\+0x3ffffc
+[ ]*508: R_MIPS_NONE \*ABS\*\+0x3ffffc
+[ ]*508: R_MIPS_NONE \*ABS\*\+0x3ffffc
+0+050c <[^>]*> 00000000 nop
+0+0510 <[^>]*> d8400000 beqzc v0,0+0514 <[^>]*>
+[ ]*510: R_MIPS_PC21_S2 .L1.2-0x4
+[ ]*510: R_MIPS_NONE \*ABS\*-0x4
+[ ]*510: R_MIPS_NONE \*ABS\*-0x4
+0+0514 <[^>]*> 00000000 nop
+0+0518 <[^>]*> d8038000 jic v1,-32768
+0+051c <[^>]*> d8037fff jic v1,32767
+0+0520 <[^>]*> d81f0000 jrc ra
+0+0524 <[^>]*> f8400000 bnezc v0,0+0528 <[^>]*>
+[ ]*524: R_MIPS_PC21_S2 ext-0x4
+[ ]*524: R_MIPS_NONE \*ABS\*-0x4
+[ ]*524: R_MIPS_NONE \*ABS\*-0x4
+0+0528 <[^>]*> 00000000 nop
+0+052c <[^>]*> f8400000 bnezc v0,0+0530 <[^>]*>
+[ ]*52c: R_MIPS_PC21_S2 L0.-0x400000
+[ ]*52c: R_MIPS_NONE \*ABS\*-0x400000
+[ ]*52c: R_MIPS_NONE \*ABS\*-0x400000
+0+0530 <[^>]*> 00000000 nop
+0+0534 <[^>]*> f8400000 bnezc v0,0+0538 <[^>]*>
+[ ]*534: R_MIPS_PC21_S2 L0.\+0x3ffffc
+[ ]*534: R_MIPS_NONE \*ABS\*\+0x3ffffc
+[ ]*534: R_MIPS_NONE \*ABS\*\+0x3ffffc
+0+0538 <[^>]*> 00000000 nop
+0+053c <[^>]*> f8400000 bnezc v0,0+0540 <[^>]*>
+[ ]*53c: R_MIPS_PC21_S2 .L1.2-0x4
+[ ]*53c: R_MIPS_NONE \*ABS\*-0x4
+[ ]*53c: R_MIPS_NONE \*ABS\*-0x4
+0+0540 <[^>]*> 00000000 nop
+0+0544 <[^>]*> f8038000 jialc v1,-32768
+0+0548 <[^>]*> f8037fff jialc v1,32767
+0+054c <[^>]*> 3c43ffff aui v1,v0,0xffff
+0+0550 <[^>]*> ec600000 lapc v1,0+0550 <[^>]*>
+[ ]*550: R_MIPS_PC19_S2 .L1.2
+[ ]*550: R_MIPS_NONE \*ABS\*
+[ ]*550: R_MIPS_NONE \*ABS\*
+0+0554 <[^>]*> ec800000 lapc a0,0+0554 <[^>]*>
+[ ]*554: R_MIPS_PC19_S2 L0.-0x100000
+[ ]*554: R_MIPS_NONE \*ABS\*-0x100000
+[ ]*554: R_MIPS_NONE \*ABS\*-0x100000
+0+0558 <[^>]*> ec800000 lapc a0,0+0558 <[^>]*>
+[ ]*558: R_MIPS_PC19_S2 L0.\+0xffffc
+[ ]*558: R_MIPS_NONE \*ABS\*\+0xffffc
+[ ]*558: R_MIPS_NONE \*ABS\*\+0xffffc
+0+055c <[^>]*> ec840000 lapc a0,f+ffff0055c <[^>]*>
+0+0560 <[^>]*> ec83ffff lapc a0,000000000010055c <[^>]*>
+0+0564 <[^>]*> ec7effff auipc v1,0xffff
+0+0568 <[^>]*> ec7fffff aluipc v1,0xffff
+0+056c <[^>]*> ec880000 lwpc a0,0+056c <[^>]*>
+[ ]*56c: R_MIPS_PC19_S2 .L1.2
+[ ]*56c: R_MIPS_NONE \*ABS\*
+[ ]*56c: R_MIPS_NONE \*ABS\*
+0+0570 <[^>]*> ec880000 lwpc a0,0+0570 <[^>]*>
+[ ]*570: R_MIPS_PC19_S2 L0.-0x100000
+[ ]*570: R_MIPS_NONE \*ABS\*-0x100000
+[ ]*570: R_MIPS_NONE \*ABS\*-0x100000
+0+0574 <[^>]*> ec880000 lwpc a0,0+0574 <[^>]*>
+[ ]*574: R_MIPS_PC19_S2 L0.\+0xffffc
+[ ]*574: R_MIPS_NONE \*ABS\*\+0xffffc
+[ ]*574: R_MIPS_NONE \*ABS\*\+0xffffc
+0+0578 <[^>]*> ec8c0000 lwpc a0,f+ffff00578 <[^>]*>
+0+057c <[^>]*> ec8bffff lwpc a0,0000000000100578 <[^>]*>
+0+0580 <[^>]*> 00000000 nop
+0+0584 <[^>]*> ec83ffff lapc a0,0000000000100580 <[^>]*>
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r6-removed.l b/gas/testsuite/gas/mips/r6-removed.l
new file mode 100644
index 0000000..fc998c4
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-removed.l
@@ -0,0 +1,196 @@
+.*: Assembler messages:
+.*:3: Error: opcode not supported on this processor: .* \(.*\) `abs.ps \$f0,\$f2'
+.*:4: Error: opcode not supported on this processor: .* \(.*\) `add.ps \$f0,\$f2,\$f2'
+.*:5: Error: opcode not supported on this processor: .* \(.*\) `addi \$15,\$16,256'
+.*:6: Error: opcode not supported on this processor: .* \(.*\) `alnv.ps \$f0,\$f2,\$f2,\$3'
+.*:7: Error: opcode not supported on this processor: .* \(.*\) `bc0f 1f'
+.*:8: Error: opcode not supported on this processor: .* \(.*\) `bc0fl 1f'
+.*:9: Error: opcode not supported on this processor: .* \(.*\) `bc0t 1f'
+.*:10: Error: opcode not supported on this processor: .* \(.*\) `bc0tl 1f'
+.*:11: Error: opcode not supported on this processor: .* \(.*\) `bc1f 1f'
+.*:12: Error: opcode not supported on this processor: .* \(.*\) `bc1fl 1f'
+.*:13: Error: opcode not supported on this processor: .* \(.*\) `bc1t 1f'
+.*:14: Error: opcode not supported on this processor: .* \(.*\) `bc1tl 1f'
+.*:15: Error: opcode not supported on this processor: .* \(.*\) `bc2f 1f'
+.*:16: Error: opcode not supported on this processor: .* \(.*\) `bc2fl 1f'
+.*:17: Error: opcode not supported on this processor: .* \(.*\) `bc2t 1f'
+.*:18: Error: opcode not supported on this processor: .* \(.*\) `bc2tl 1f'
+.*:19: Error: opcode not supported on this processor: .* \(.*\) `bc3f 1f'
+.*:20: Error: opcode not supported on this processor: .* \(.*\) `bc3fl 1f'
+.*:21: Error: opcode not supported on this processor: .* \(.*\) `bc3t 1f'
+.*:22: Error: opcode not supported on this processor: .* \(.*\) `bc3tl 1f'
+.*:23: Error: opcode not supported on this processor: .* \(.*\) `beql \$28,\$29,1f'
+.*:24: Error: opcode not supported on this processor: .* \(.*\) `bgezal \$4,1f'
+.*:25: Error: opcode not supported on this processor: .* \(.*\) `bgezall \$28,1f'
+.*:26: Error: opcode not supported on this processor: .* \(.*\) `bgezl \$28,1f'
+.*:27: Error: opcode not supported on this processor: .* \(.*\) `bgtzl \$28,1f'
+.*:28: Error: opcode not supported on this processor: .* \(.*\) `blezl \$28,1f'
+.*:29: Error: opcode not supported on this processor: .* \(.*\) `bltzal \$4,1f'
+.*:30: Error: opcode not supported on this processor: .* \(.*\) `bltzall \$28,1f'
+.*:31: Error: opcode not supported on this processor: .* \(.*\) `bltzl \$28,1f'
+.*:32: Error: opcode not supported on this processor: .* \(.*\) `bnel \$28,\$29,1f'
+.*:33: Error: opcode not supported on this processor: .* \(.*\) `c.f.s \$f0,\$f2'
+.*:34: Error: opcode not supported on this processor: .* \(.*\) `c.un.s \$f0,\$f2'
+.*:35: Error: opcode not supported on this processor: .* \(.*\) `c.eq.s \$f0,\$f2'
+.*:36: Error: opcode not supported on this processor: .* \(.*\) `c.ueq.s \$f0,\$f2'
+.*:37: Error: opcode not supported on this processor: .* \(.*\) `c.olt.s \$f0,\$f2'
+.*:38: Error: opcode not supported on this processor: .* \(.*\) `c.ult.s \$f0,\$f2'
+.*:39: Error: opcode not supported on this processor: .* \(.*\) `c.ole.s \$f0,\$f2'
+.*:40: Error: opcode not supported on this processor: .* \(.*\) `c.ule.s \$f0,\$f2'
+.*:41: Error: opcode not supported on this processor: .* \(.*\) `c.sf.s \$f0,\$f2'
+.*:42: Error: opcode not supported on this processor: .* \(.*\) `c.ngle.s \$f0,\$f2'
+.*:43: Error: opcode not supported on this processor: .* \(.*\) `c.seq.s \$f0,\$f2'
+.*:44: Error: opcode not supported on this processor: .* \(.*\) `c.ngl.s \$f0,\$f2'
+.*:45: Error: opcode not supported on this processor: .* \(.*\) `c.lt.s \$f0,\$f2'
+.*:46: Error: opcode not supported on this processor: .* \(.*\) `c.nge.s \$f0,\$f2'
+.*:47: Error: opcode not supported on this processor: .* \(.*\) `c.le.s \$f0,\$f2'
+.*:48: Error: opcode not supported on this processor: .* \(.*\) `c.ngt.s \$f0,\$f2'
+.*:49: Error: opcode not supported on this processor: .* \(.*\) `c.f.ps \$f0,\$f2'
+.*:50: Error: opcode not supported on this processor: .* \(.*\) `c.un.ps \$f0,\$f2'
+.*:51: Error: opcode not supported on this processor: .* \(.*\) `c.eq.ps \$f0,\$f2'
+.*:52: Error: opcode not supported on this processor: .* \(.*\) `c.ueq.ps \$f0,\$f2'
+.*:53: Error: opcode not supported on this processor: .* \(.*\) `c.olt.ps \$f0,\$f2'
+.*:54: Error: opcode not supported on this processor: .* \(.*\) `c.ult.ps \$f0,\$f2'
+.*:55: Error: opcode not supported on this processor: .* \(.*\) `c.ole.ps \$f0,\$f2'
+.*:56: Error: opcode not supported on this processor: .* \(.*\) `c.ule.ps \$f0,\$f2'
+.*:57: Error: opcode not supported on this processor: .* \(.*\) `c.sf.ps \$f0,\$f2'
+.*:58: Error: opcode not supported on this processor: .* \(.*\) `c.ngle.ps \$f0,\$f2'
+.*:59: Error: opcode not supported on this processor: .* \(.*\) `c.seq.ps \$f0,\$f2'
+.*:60: Error: opcode not supported on this processor: .* \(.*\) `c.ngl.ps \$f0,\$f2'
+.*:61: Error: opcode not supported on this processor: .* \(.*\) `c.lt.ps \$f0,\$f2'
+.*:62: Error: opcode not supported on this processor: .* \(.*\) `c.nge.ps \$f0,\$f2'
+.*:63: Error: opcode not supported on this processor: .* \(.*\) `c.le.ps \$f0,\$f2'
+.*:64: Error: opcode not supported on this processor: .* \(.*\) `c.ngt.ps \$f0,\$f2'
+.*:65: Error: opcode not supported on this processor: .* \(.*\) `c.f.d \$f0,\$f2'
+.*:66: Error: opcode not supported on this processor: .* \(.*\) `c.un.d \$f0,\$f2'
+.*:67: Error: opcode not supported on this processor: .* \(.*\) `c.eq.d \$f0,\$f2'
+.*:68: Error: opcode not supported on this processor: .* \(.*\) `c.ueq.d \$f0,\$f2'
+.*:69: Error: opcode not supported on this processor: .* \(.*\) `c.olt.d \$f0,\$f2'
+.*:70: Error: opcode not supported on this processor: .* \(.*\) `c.ult.d \$f0,\$f2'
+.*:71: Error: opcode not supported on this processor: .* \(.*\) `c.ole.d \$f0,\$f2'
+.*:72: Error: opcode not supported on this processor: .* \(.*\) `c.ule.d \$f0,\$f2'
+.*:73: Error: opcode not supported on this processor: .* \(.*\) `c.sf.d \$f0,\$f2'
+.*:74: Error: opcode not supported on this processor: .* \(.*\) `c.ngle.d \$f0,\$f2'
+.*:75: Error: opcode not supported on this processor: .* \(.*\) `c.seq.d \$f0,\$f2'
+.*:76: Error: opcode not supported on this processor: .* \(.*\) `c.ngl.d \$f0,\$f2'
+.*:77: Error: opcode not supported on this processor: .* \(.*\) `c.lt.d \$f0,\$f2'
+.*:78: Error: opcode not supported on this processor: .* \(.*\) `c.nge.d \$f0,\$f2'
+.*:79: Error: opcode not supported on this processor: .* \(.*\) `c.le.d \$f0,\$f2'
+.*:80: Error: opcode not supported on this processor: .* \(.*\) `c.ngt.d \$f0,\$f2'
+.*:81: Error: opcode not supported on this processor: .* \(.*\) `c.f.s \$fcc2,\$f0,\$f2'
+.*:82: Error: opcode not supported on this processor: .* \(.*\) `c.un.s \$fcc2,\$f0,\$f2'
+.*:83: Error: opcode not supported on this processor: .* \(.*\) `c.eq.s \$fcc2,\$f0,\$f2'
+.*:84: Error: opcode not supported on this processor: .* \(.*\) `c.ueq.s \$fcc2,\$f0,\$f2'
+.*:85: Error: opcode not supported on this processor: .* \(.*\) `c.olt.s \$fcc2,\$f0,\$f2'
+.*:86: Error: opcode not supported on this processor: .* \(.*\) `c.ult.s \$fcc2,\$f0,\$f2'
+.*:87: Error: opcode not supported on this processor: .* \(.*\) `c.ole.s \$fcc2,\$f0,\$f2'
+.*:88: Error: opcode not supported on this processor: .* \(.*\) `c.ule.s \$fcc2,\$f0,\$f2'
+.*:89: Error: opcode not supported on this processor: .* \(.*\) `c.sf.s \$fcc2,\$f0,\$f2'
+.*:90: Error: opcode not supported on this processor: .* \(.*\) `c.ngle.s \$fcc2,\$f0,\$f2'
+.*:91: Error: opcode not supported on this processor: .* \(.*\) `c.seq.s \$fcc2,\$f0,\$f2'
+.*:92: Error: opcode not supported on this processor: .* \(.*\) `c.ngl.s \$fcc2,\$f0,\$f2'
+.*:93: Error: opcode not supported on this processor: .* \(.*\) `c.lt.s \$fcc2,\$f0,\$f2'
+.*:94: Error: opcode not supported on this processor: .* \(.*\) `c.nge.s \$fcc2,\$f0,\$f2'
+.*:95: Error: opcode not supported on this processor: .* \(.*\) `c.le.s \$fcc2,\$f0,\$f2'
+.*:96: Error: opcode not supported on this processor: .* \(.*\) `c.ngt.s \$fcc2,\$f0,\$f2'
+.*:97: Error: opcode not supported on this processor: .* \(.*\) `c.f.ps \$fcc2,\$f0,\$f2'
+.*:98: Error: opcode not supported on this processor: .* \(.*\) `c.un.ps \$fcc2,\$f0,\$f2'
+.*:99: Error: opcode not supported on this processor: .* \(.*\) `c.eq.ps \$fcc2,\$f0,\$f2'
+.*:100: Error: opcode not supported on this processor: .* \(.*\) `c.ueq.ps \$fcc2,\$f0,\$f2'
+.*:101: Error: opcode not supported on this processor: .* \(.*\) `c.olt.ps \$fcc2,\$f0,\$f2'
+.*:102: Error: opcode not supported on this processor: .* \(.*\) `c.ult.ps \$fcc2,\$f0,\$f2'
+.*:103: Error: opcode not supported on this processor: .* \(.*\) `c.ole.ps \$fcc2,\$f0,\$f2'
+.*:104: Error: opcode not supported on this processor: .* \(.*\) `c.ule.ps \$fcc2,\$f0,\$f2'
+.*:105: Error: opcode not supported on this processor: .* \(.*\) `c.sf.ps \$fcc2,\$f0,\$f2'
+.*:106: Error: opcode not supported on this processor: .* \(.*\) `c.ngle.ps \$fcc2,\$f0,\$f2'
+.*:107: Error: opcode not supported on this processor: .* \(.*\) `c.seq.ps \$fcc2,\$f0,\$f2'
+.*:108: Error: opcode not supported on this processor: .* \(.*\) `c.ngl.ps \$fcc2,\$f0,\$f2'
+.*:109: Error: opcode not supported on this processor: .* \(.*\) `c.lt.ps \$fcc2,\$f0,\$f2'
+.*:110: Error: opcode not supported on this processor: .* \(.*\) `c.nge.ps \$fcc2,\$f0,\$f2'
+.*:111: Error: opcode not supported on this processor: .* \(.*\) `c.le.ps \$fcc2,\$f0,\$f2'
+.*:112: Error: opcode not supported on this processor: .* \(.*\) `c.ngt.ps \$fcc2,\$f0,\$f2'
+.*:113: Error: opcode not supported on this processor: .* \(.*\) `c.f.d \$fcc2,\$f0,\$f2'
+.*:114: Error: opcode not supported on this processor: .* \(.*\) `c.un.d \$fcc2,\$f0,\$f2'
+.*:115: Error: opcode not supported on this processor: .* \(.*\) `c.eq.d \$fcc2,\$f0,\$f2'
+.*:116: Error: opcode not supported on this processor: .* \(.*\) `c.ueq.d \$fcc2,\$f0,\$f2'
+.*:117: Error: opcode not supported on this processor: .* \(.*\) `c.olt.d \$fcc2,\$f0,\$f2'
+.*:118: Error: opcode not supported on this processor: .* \(.*\) `c.ult.d \$fcc2,\$f0,\$f2'
+.*:119: Error: opcode not supported on this processor: .* \(.*\) `c.ole.d \$fcc2,\$f0,\$f2'
+.*:120: Error: opcode not supported on this processor: .* \(.*\) `c.ule.d \$fcc2,\$f0,\$f2'
+.*:121: Error: opcode not supported on this processor: .* \(.*\) `c.sf.d \$fcc2,\$f0,\$f2'
+.*:122: Error: opcode not supported on this processor: .* \(.*\) `c.ngle.d \$fcc2,\$f0,\$f2'
+.*:123: Error: opcode not supported on this processor: .* \(.*\) `c.seq.d \$fcc2,\$f0,\$f2'
+.*:124: Error: opcode not supported on this processor: .* \(.*\) `c.ngl.d \$fcc2,\$f0,\$f2'
+.*:125: Error: opcode not supported on this processor: .* \(.*\) `c.lt.d \$fcc2,\$f0,\$f2'
+.*:126: Error: opcode not supported on this processor: .* \(.*\) `c.nge.d \$fcc2,\$f0,\$f2'
+.*:127: Error: opcode not supported on this processor: .* \(.*\) `c.le.d \$fcc2,\$f0,\$f2'
+.*:128: Error: opcode not supported on this processor: .* \(.*\) `c.ngt.d \$fcc2,\$f0,\$f2'
+.*:129: Error: opcode not supported on this processor: .* \(.*\) `cvt.ps.s \$f2,\$f3,\$f4'
+.*:130: Error: opcode not supported on this processor: .* \(.*\) `jalx 1f'
+.*:131: Error: opcode not supported on this processor: .* \(.*\) `ldxc1 \$f0,\$0\(\$2\)'
+.*:132: Error: opcode not supported on this processor: .* \(.*\) `luxc1 \$f0,\$0\(\$2\)'
+.*:133: Error: opcode not supported on this processor: .* \(.*\) `lwl \$2,1\(\$3\)'
+.*:134: Error: opcode not supported on this processor: .* \(.*\) `lwle \$4,0\(\$6\)'
+.*:135: Error: opcode not supported on this processor: .* \(.*\) `lwr \$2,1\(\$3\)'
+.*:136: Error: opcode not supported on this processor: .* \(.*\) `lwre \$4,0\(\$6\)'
+.*:137: Error: opcode not supported on this processor: .* \(.*\) `lwxc1 \$f0,\$0\(\$2\)'
+.*:138: Error: opcode not supported on this processor: .* \(.*\) `madd \$2,\$3'
+.*:139: Error: opcode not supported on this processor: .* \(.*\) `maddu \$2,\$3'
+.*:140: Error: opcode not supported on this processor: .* \(.*\) `madd.s \$f5,\$f6,\$f7,\$f8'
+.*:141: Error: opcode not supported on this processor: .* \(.*\) `madd.d \$f6,\$f8,\$f10,\$f12'
+.*:142: Error: opcode not supported on this processor: .* \(.*\) `madd.ps \$f6,\$f8,\$f10,\$f12'
+.*:143: Error: opcode not supported on this processor: .* \(.*\) `mfhi \$2'
+.*:144: Error: opcode not supported on this processor: .* \(.*\) `mflo \$2'
+.*:145: Error: opcode not supported on this processor: .* \(.*\) `mov.ps \$f10,\$f20'
+.*:146: Error: opcode not supported on this processor: .* \(.*\) `movf \$8,\$9,\$fcc0'
+.*:147: Error: opcode not supported on this processor: .* \(.*\) `movf.s \$f8,\$f9,\$fcc0'
+.*:148: Error: opcode not supported on this processor: .* \(.*\) `movf.d \$f8,\$f10,\$fcc0'
+.*:149: Error: opcode not supported on this processor: .* \(.*\) `movf.ps \$f8,\$f10,\$fcc0'
+.*:150: Error: opcode not supported on this processor: .* \(.*\) `movn \$2,\$3,\$4'
+.*:151: Error: opcode not supported on this processor: .* \(.*\) `movn.s \$f0,\$f2,\$10'
+.*:152: Error: opcode not supported on this processor: .* \(.*\) `movn.d \$f0,\$f2,\$10'
+.*:153: Error: opcode not supported on this processor: .* \(.*\) `movn.ps \$f0,\$f2,\$10'
+.*:154: Error: opcode not supported on this processor: .* \(.*\) `movt \$10,\$11,\$fcc2'
+.*:155: Error: opcode not supported on this processor: .* \(.*\) `movt.s \$f20,\$f21,\$fcc2'
+.*:156: Error: opcode not supported on this processor: .* \(.*\) `movt.d \$f20,\$f22,\$fcc2'
+.*:157: Error: opcode not supported on this processor: .* \(.*\) `movt.ps \$f20,\$f22,\$fcc2'
+.*:158: Error: opcode not supported on this processor: .* \(.*\) `movz \$5,\$6,\$7'
+.*:159: Error: opcode not supported on this processor: .* \(.*\) `movz.s \$f0,\$f2,\$10'
+.*:160: Error: opcode not supported on this processor: .* \(.*\) `movz.d \$f0,\$f2,\$10'
+.*:161: Error: opcode not supported on this processor: .* \(.*\) `movz.ps \$f0,\$f2,\$10'
+.*:162: Error: opcode not supported on this processor: .* \(.*\) `msub \$2,\$3'
+.*:163: Error: opcode not supported on this processor: .* \(.*\) `msubu \$2,\$3'
+.*:164: Error: opcode not supported on this processor: .* \(.*\) `msub.s \$f5,\$f6,\$f7,\$f8'
+.*:165: Error: opcode not supported on this processor: .* \(.*\) `msub.d \$f6,\$f8,\$f10,\$f12'
+.*:166: Error: opcode not supported on this processor: .* \(.*\) `msub.ps \$f6,\$f8,\$f10,\$f12'
+.*:167: Error: opcode not supported on this processor: .* \(.*\) `mthi \$2'
+.*:168: Error: opcode not supported on this processor: .* \(.*\) `mtlo \$2'
+.*:169: Error: opcode not supported on this processor: .* \(.*\) `mul.ps \$f10,\$f20,\$f22'
+.*:170: Error: opcode not supported on this processor: .* \(.*\) `mult \$2,\$3'
+.*:171: Error: opcode not supported on this processor: .* \(.*\) `multu \$2,\$3'
+.*:172: Error: opcode not supported on this processor: .* \(.*\) `neg.ps \$f22,\$f24'
+.*:173: Error: opcode not supported on this processor: .* \(.*\) `nmadd.s \$f5,\$f6,\$f7,\$f8'
+.*:174: Error: opcode not supported on this processor: .* \(.*\) `nmadd.d \$f6,\$f8,\$f10,\$f12'
+.*:175: Error: opcode not supported on this processor: .* \(.*\) `nmadd.ps \$f6,\$f8,\$f10,\$f12'
+.*:176: Error: opcode not supported on this processor: .* \(.*\) `nmsub.s \$f5,\$f6,\$f7,\$f8'
+.*:177: Error: opcode not supported on this processor: .* \(.*\) `nmsub.d \$f6,\$f8,\$f10,\$f12'
+.*:178: Error: opcode not supported on this processor: .* \(.*\) `nmsub.ps \$f6,\$f8,\$f10,\$f12'
+.*:179: Error: opcode not supported on this processor: .* \(.*\) `pll.ps \$f24,\$f20,\$f26'
+.*:180: Error: opcode not supported on this processor: .* \(.*\) `plu.ps \$f24,\$f20,\$f26'
+.*:181: Error: opcode not supported on this processor: .* \(.*\) `pul.ps \$f24,\$f20,\$f26'
+.*:182: Error: opcode not supported on this processor: .* \(.*\) `puu.ps \$f24,\$f20,\$f26'
+.*:183: Error: opcode not supported on this processor: .* \(.*\) `prefx 5,\$3\(\$5\)'
+.*:184: Error: opcode not supported on this processor: .* \(.*\) `sdxc1 \$f0,\$0\(\$2\)'
+.*:185: Error: opcode not supported on this processor: .* \(.*\) `sub.ps \$f20,\$f28,\$f26'
+.*:186: Error: opcode not supported on this processor: .* \(.*\) `suxc1 \$f0,\$0\(\$2\)'
+.*:187: Error: opcode not supported on this processor: .* \(.*\) `swl \$2,1\(\$3\)'
+.*:188: Error: opcode not supported on this processor: .* \(.*\) `swle \$4,0\(\$6\)'
+.*:189: Error: opcode not supported on this processor: .* \(.*\) `swr \$2,1\(\$3\)'
+.*:190: Error: opcode not supported on this processor: .* \(.*\) `swre \$4,0\(\$6\)'
+.*:191: Error: opcode not supported on this processor: .* \(.*\) `swxc1 \$f0,\$0\(\$2\)'
+.*:192: Error: opcode not supported on this processor: .* \(.*\) `teqi \$11,1024'
+.*:193: Error: opcode not supported on this processor: .* \(.*\) `tgei \$11,1024'
+.*:194: Error: opcode not supported on this processor: .* \(.*\) `tgeiu \$11,1024'
+.*:195: Error: opcode not supported on this processor: .* \(.*\) `tlti \$11,1024'
+.*:196: Error: opcode not supported on this processor: .* \(.*\) `tltiu \$11,1024'
+.*:197: Error: opcode not supported on this processor: .* \(.*\) `tnei \$11,1024'
diff --git a/gas/testsuite/gas/mips/r6-removed.s b/gas/testsuite/gas/mips/r6-removed.s
new file mode 100644
index 0000000..00b044c
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6-removed.s
@@ -0,0 +1,198 @@
+ .set reorder
+ .set eva
+ abs.ps $f0,$f2
+ add.ps $f0,$f2,$f2
+ addi $15,$16,256
+ alnv.ps $f0,$f2,$f2,$3
+ bc0f 1f
+ bc0fl 1f
+ bc0t 1f
+ bc0tl 1f
+ bc1f 1f
+ bc1fl 1f
+ bc1t 1f
+ bc1tl 1f
+ bc2f 1f
+ bc2fl 1f
+ bc2t 1f
+ bc2tl 1f
+ bc3f 1f
+ bc3fl 1f
+ bc3t 1f
+ bc3tl 1f
+ beql $28,$29,1f
+ bgezal $4,1f
+ bgezall $28,1f
+ bgezl $28,1f
+ bgtzl $28,1f
+ blezl $28,1f
+ bltzal $4,1f
+ bltzall $28,1f
+ bltzl $28,1f
+ bnel $28,$29,1f
+ c.f.s $f0,$f2
+ c.un.s $f0,$f2
+ c.eq.s $f0,$f2
+ c.ueq.s $f0,$f2
+ c.olt.s $f0,$f2
+ c.ult.s $f0,$f2
+ c.ole.s $f0,$f2
+ c.ule.s $f0,$f2
+ c.sf.s $f0,$f2
+ c.ngle.s $f0,$f2
+ c.seq.s $f0,$f2
+ c.ngl.s $f0,$f2
+ c.lt.s $f0,$f2
+ c.nge.s $f0,$f2
+ c.le.s $f0,$f2
+ c.ngt.s $f0,$f2
+ c.f.ps $f0,$f2
+ c.un.ps $f0,$f2
+ c.eq.ps $f0,$f2
+ c.ueq.ps $f0,$f2
+ c.olt.ps $f0,$f2
+ c.ult.ps $f0,$f2
+ c.ole.ps $f0,$f2
+ c.ule.ps $f0,$f2
+ c.sf.ps $f0,$f2
+ c.ngle.ps $f0,$f2
+ c.seq.ps $f0,$f2
+ c.ngl.ps $f0,$f2
+ c.lt.ps $f0,$f2
+ c.nge.ps $f0,$f2
+ c.le.ps $f0,$f2
+ c.ngt.ps $f0,$f2
+ c.f.d $f0,$f2
+ c.un.d $f0,$f2
+ c.eq.d $f0,$f2
+ c.ueq.d $f0,$f2
+ c.olt.d $f0,$f2
+ c.ult.d $f0,$f2
+ c.ole.d $f0,$f2
+ c.ule.d $f0,$f2
+ c.sf.d $f0,$f2
+ c.ngle.d $f0,$f2
+ c.seq.d $f0,$f2
+ c.ngl.d $f0,$f2
+ c.lt.d $f0,$f2
+ c.nge.d $f0,$f2
+ c.le.d $f0,$f2
+ c.ngt.d $f0,$f2
+ c.f.s $fcc2, $f0,$f2
+ c.un.s $fcc2, $f0,$f2
+ c.eq.s $fcc2, $f0,$f2
+ c.ueq.s $fcc2, $f0,$f2
+ c.olt.s $fcc2, $f0,$f2
+ c.ult.s $fcc2, $f0,$f2
+ c.ole.s $fcc2, $f0,$f2
+ c.ule.s $fcc2, $f0,$f2
+ c.sf.s $fcc2, $f0,$f2
+ c.ngle.s $fcc2, $f0,$f2
+ c.seq.s $fcc2, $f0,$f2
+ c.ngl.s $fcc2, $f0,$f2
+ c.lt.s $fcc2, $f0,$f2
+ c.nge.s $fcc2, $f0,$f2
+ c.le.s $fcc2, $f0,$f2
+ c.ngt.s $fcc2, $f0,$f2
+ c.f.ps $fcc2, $f0,$f2
+ c.un.ps $fcc2, $f0,$f2
+ c.eq.ps $fcc2, $f0,$f2
+ c.ueq.ps $fcc2, $f0,$f2
+ c.olt.ps $fcc2, $f0,$f2
+ c.ult.ps $fcc2, $f0,$f2
+ c.ole.ps $fcc2, $f0,$f2
+ c.ule.ps $fcc2, $f0,$f2
+ c.sf.ps $fcc2, $f0,$f2
+ c.ngle.ps $fcc2, $f0,$f2
+ c.seq.ps $fcc2, $f0,$f2
+ c.ngl.ps $fcc2, $f0,$f2
+ c.lt.ps $fcc2, $f0,$f2
+ c.nge.ps $fcc2, $f0,$f2
+ c.le.ps $fcc2, $f0,$f2
+ c.ngt.ps $fcc2, $f0,$f2
+ c.f.d $fcc2, $f0,$f2
+ c.un.d $fcc2, $f0,$f2
+ c.eq.d $fcc2, $f0,$f2
+ c.ueq.d $fcc2, $f0,$f2
+ c.olt.d $fcc2, $f0,$f2
+ c.ult.d $fcc2, $f0,$f2
+ c.ole.d $fcc2, $f0,$f2
+ c.ule.d $fcc2, $f0,$f2
+ c.sf.d $fcc2, $f0,$f2
+ c.ngle.d $fcc2, $f0,$f2
+ c.seq.d $fcc2, $f0,$f2
+ c.ngl.d $fcc2, $f0,$f2
+ c.lt.d $fcc2, $f0,$f2
+ c.nge.d $fcc2, $f0,$f2
+ c.le.d $fcc2, $f0,$f2
+ c.ngt.d $fcc2, $f0,$f2
+ cvt.ps.s $f2,$f3,$f4
+ jalx 1f
+ ldxc1 $f0,$0($2)
+ luxc1 $f0,$0($2)
+ lwl $2, 1($3)
+ lwle $4,0($6)
+ lwr $2, 1($3)
+ lwre $4,0($6)
+ lwxc1 $f0,$0($2)
+ madd $2,$3
+ maddu $2,$3
+ madd.s $f5,$f6,$f7,$f8
+ madd.d $f6,$f8,$f10,$f12
+ madd.ps $f6,$f8,$f10,$f12
+ mfhi $2
+ mflo $2
+ mov.ps $f10,$f20
+ movf $8,$9,$fcc0
+ movf.s $f8,$f9,$fcc0
+ movf.d $f8,$f10,$fcc0
+ movf.ps $f8,$f10,$fcc0
+ movn $2,$3,$4
+ movn.s $f0,$f2,$10
+ movn.d $f0,$f2,$10
+ movn.ps $f0,$f2,$10
+ movt $10,$11,$fcc2
+ movt.s $f20,$f21,$fcc2
+ movt.d $f20,$f22,$fcc2
+ movt.ps $f20,$f22,$fcc2
+ movz $5,$6,$7
+ movz.s $f0,$f2,$10
+ movz.d $f0,$f2,$10
+ movz.ps $f0,$f2,$10
+ msub $2,$3
+ msubu $2,$3
+ msub.s $f5,$f6,$f7,$f8
+ msub.d $f6,$f8,$f10,$f12
+ msub.ps $f6,$f8,$f10,$f12
+ mthi $2
+ mtlo $2
+ mul.ps $f10,$f20,$f22
+ mult $2,$3
+ multu $2,$3
+ neg.ps $f22,$f24
+ nmadd.s $f5,$f6,$f7,$f8
+ nmadd.d $f6,$f8,$f10,$f12
+ nmadd.ps $f6,$f8,$f10,$f12
+ nmsub.s $f5,$f6,$f7,$f8
+ nmsub.d $f6,$f8,$f10,$f12
+ nmsub.ps $f6,$f8,$f10,$f12
+ pll.ps $f24,$f20,$f26
+ plu.ps $f24,$f20,$f26
+ pul.ps $f24,$f20,$f26
+ puu.ps $f24,$f20,$f26
+ prefx 5, $3($5)
+ sdxc1 $f0,$0($2)
+ sub.ps $f20,$f28,$f26
+ suxc1 $f0,$0($2)
+ swl $2, 1($3)
+ swle $4,0($6)
+ swr $2, 1($3)
+ swre $4,0($6)
+ swxc1 $f0,$0($2)
+ teqi $11,1024
+ tgei $11,1024
+ tgeiu $11,1024
+ tlti $11,1024
+ tltiu $11,1024
+ tnei $11,1024
+1:
diff --git a/gas/testsuite/gas/mips/r6.d b/gas/testsuite/gas/mips/r6.d
new file mode 100644
index 0000000..0cfccb8
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6.d
@@ -0,0 +1,492 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS MIPSR6 instructions
+#as: -32
+
+# Check MIPSR6 instructions
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 46020818 maddf.s \$f0,\$f1,\$f2
+0+0004 <[^>]*> 462520d8 maddf.d \$f3,\$f4,\$f5
+0+0008 <[^>]*> 46083999 msubf.s \$f6,\$f7,\$f8
+0+000c <[^>]*> 462b5259 msubf.d \$f9,\$f10,\$f11
+0+0010 <[^>]*> 46820800 cmp.af.s \$f0,\$f1,\$f2
+0+0014 <[^>]*> 46a20800 cmp.af.d \$f0,\$f1,\$f2
+0+0018 <[^>]*> 46820801 cmp.un.s \$f0,\$f1,\$f2
+0+001c <[^>]*> 46a20801 cmp.un.d \$f0,\$f1,\$f2
+0+0020 <[^>]*> 46820802 cmp.eq.s \$f0,\$f1,\$f2
+0+0024 <[^>]*> 46a20802 cmp.eq.d \$f0,\$f1,\$f2
+0+0028 <[^>]*> 46820803 cmp.ueq.s \$f0,\$f1,\$f2
+0+002c <[^>]*> 46a20803 cmp.ueq.d \$f0,\$f1,\$f2
+0+0030 <[^>]*> 46820804 cmp.lt.s \$f0,\$f1,\$f2
+0+0034 <[^>]*> 46a20804 cmp.lt.d \$f0,\$f1,\$f2
+0+0038 <[^>]*> 46820805 cmp.ult.s \$f0,\$f1,\$f2
+0+003c <[^>]*> 46a20805 cmp.ult.d \$f0,\$f1,\$f2
+0+0040 <[^>]*> 46820806 cmp.le.s \$f0,\$f1,\$f2
+0+0044 <[^>]*> 46a20806 cmp.le.d \$f0,\$f1,\$f2
+0+0048 <[^>]*> 46820807 cmp.ule.s \$f0,\$f1,\$f2
+0+004c <[^>]*> 46a20807 cmp.ule.d \$f0,\$f1,\$f2
+0+0050 <[^>]*> 46820808 cmp.saf.s \$f0,\$f1,\$f2
+0+0054 <[^>]*> 46a20808 cmp.saf.d \$f0,\$f1,\$f2
+0+0058 <[^>]*> 46820809 cmp.sun.s \$f0,\$f1,\$f2
+0+005c <[^>]*> 46a20809 cmp.sun.d \$f0,\$f1,\$f2
+0+0060 <[^>]*> 4682080a cmp.seq.s \$f0,\$f1,\$f2
+0+0064 <[^>]*> 46a2080a cmp.seq.d \$f0,\$f1,\$f2
+0+0068 <[^>]*> 4682080b cmp.sueq.s \$f0,\$f1,\$f2
+0+006c <[^>]*> 46a2080b cmp.sueq.d \$f0,\$f1,\$f2
+0+0070 <[^>]*> 4682080c cmp.slt.s \$f0,\$f1,\$f2
+0+0074 <[^>]*> 46a2080c cmp.slt.d \$f0,\$f1,\$f2
+0+0078 <[^>]*> 4682080d cmp.sult.s \$f0,\$f1,\$f2
+0+007c <[^>]*> 46a2080d cmp.sult.d \$f0,\$f1,\$f2
+0+0080 <[^>]*> 4682080e cmp.sle.s \$f0,\$f1,\$f2
+0+0084 <[^>]*> 46a2080e cmp.sle.d \$f0,\$f1,\$f2
+0+0088 <[^>]*> 4682080f cmp.sule.s \$f0,\$f1,\$f2
+0+008c <[^>]*> 46a2080f cmp.sule.d \$f0,\$f1,\$f2
+0+0090 <[^>]*> 46820811 cmp.or.s \$f0,\$f1,\$f2
+0+0094 <[^>]*> 46a20811 cmp.or.d \$f0,\$f1,\$f2
+0+0098 <[^>]*> 46820812 cmp.une.s \$f0,\$f1,\$f2
+0+009c <[^>]*> 46a20812 cmp.une.d \$f0,\$f1,\$f2
+0+00a0 <[^>]*> 46820813 cmp.ne.s \$f0,\$f1,\$f2
+0+00a4 <[^>]*> 46a20813 cmp.ne.d \$f0,\$f1,\$f2
+0+00a8 <[^>]*> 46820819 cmp.sor.s \$f0,\$f1,\$f2
+0+00ac <[^>]*> 46a20819 cmp.sor.d \$f0,\$f1,\$f2
+0+00b0 <[^>]*> 4682081a cmp.sune.s \$f0,\$f1,\$f2
+0+00b4 <[^>]*> 46a2081a cmp.sune.d \$f0,\$f1,\$f2
+0+00b8 <[^>]*> 4682081b cmp.sne.s \$f0,\$f1,\$f2
+0+00bc <[^>]*> 46a2081b cmp.sne.d \$f0,\$f1,\$f2
+0+00c0 <[^>]*> 4520ffff bc1eqz \$f0,000000c0 <[^>]*>
+[ ]*c0: R_MIPS_PC16 .L1.1
+0+00c4 <[^>]*> 00000000 nop
+0+00c8 <[^>]*> 453fffff bc1eqz \$f31,000000c8 <[^>]*>
+[ ]*c8: R_MIPS_PC16 .L1.1
+0+00cc <[^>]*> 00000000 nop
+0+00d0 <[^>]*> 453fffff bc1eqz \$f31,000000d0 <[^>]*>
+[ ]*d0: R_MIPS_PC16 new
+0+00d4 <[^>]*> 00000000 nop
+0+00d8 <[^>]*> 453fffff bc1eqz \$f31,000000d8 <[^>]*>
+[ ]*d8: R_MIPS_PC16 external_label
+0+00dc <[^>]*> 00000000 nop
+0+00e0 <[^>]*> 45a0ffff bc1nez \$f0,000000e0 <[^>]*>
+[ ]*e0: R_MIPS_PC16 .L1.1
+0+00e4 <[^>]*> 00000000 nop
+0+00e8 <[^>]*> 45bfffff bc1nez \$f31,000000e8 <[^>]*>
+[ ]*e8: R_MIPS_PC16 .L1.1
+0+00ec <[^>]*> 00000000 nop
+0+00f0 <[^>]*> 45bfffff bc1nez \$f31,000000f0 <[^>]*>
+[ ]*f0: R_MIPS_PC16 new
+0+00f4 <[^>]*> 00000000 nop
+0+00f8 <[^>]*> 45bfffff bc1nez \$f31,000000f8 <[^>]*>
+[ ]*f8: R_MIPS_PC16 external_label
+0+00fc <[^>]*> 00000000 nop
+0+0100 <[^>]*> 4920ffff bc2eqz \$0,00000100 <[^>]*>
+[ ]*100: R_MIPS_PC16 .L1.1
+0+0104 <[^>]*> 00000000 nop
+0+0108 <[^>]*> 493fffff bc2eqz \$31,00000108 <[^>]*>
+[ ]*108: R_MIPS_PC16 .L1.1
+0+010c <[^>]*> 00000000 nop
+0+0110 <[^>]*> 493fffff bc2eqz \$31,00000110 <[^>]*>
+[ ]*110: R_MIPS_PC16 new
+0+0114 <[^>]*> 00000000 nop
+0+0118 <[^>]*> 493fffff bc2eqz \$31,00000118 <[^>]*>
+[ ]*118: R_MIPS_PC16 external_label
+0+011c <[^>]*> 00000000 nop
+0+0120 <[^>]*> 49a0ffff bc2nez \$0,00000120 <[^>]*>
+[ ]*120: R_MIPS_PC16 .L1.1
+0+0124 <[^>]*> 00000000 nop
+0+0128 <[^>]*> 49bfffff bc2nez \$31,00000128 <[^>]*>
+[ ]*128: R_MIPS_PC16 .L1.1
+0+012c <[^>]*> 00000000 nop
+0+0130 <[^>]*> 49bfffff bc2nez \$31,00000130 <[^>]*>
+[ ]*130: R_MIPS_PC16 new
+0+0134 <[^>]*> 00000000 nop
+0+0138 <[^>]*> 49bfffff bc2nez \$31,00000138 <[^>]*>
+[ ]*138: R_MIPS_PC16 external_label
+0+013c <[^>]*> 00000000 nop
+0+0140 <[^>]*> 46020810 sel.s \$f0,\$f1,\$f2
+0+0144 <[^>]*> 46220810 sel.d \$f0,\$f1,\$f2
+0+0148 <[^>]*> 46020814 seleqz.s \$f0,\$f1,\$f2
+0+014c <[^>]*> 46220814 seleqz.d \$f0,\$f1,\$f2
+0+0150 <[^>]*> 46020817 selnez.s \$f0,\$f1,\$f2
+0+0154 <[^>]*> 46220817 selnez.d \$f0,\$f1,\$f2
+0+0158 <[^>]*> 00641035 seleqz v0,v1,a0
+0+015c <[^>]*> 00641037 selnez v0,v1,a0
+0+0160 <[^>]*> 00641098 mul v0,v1,a0
+0+0164 <[^>]*> 006410d8 muh v0,v1,a0
+0+0168 <[^>]*> 00641099 mulu v0,v1,a0
+0+016c <[^>]*> 006410d9 muhu v0,v1,a0
+0+0170 <[^>]*> 0064109a div v0,v1,a0
+0+0174 <[^>]*> 006410da mod v0,v1,a0
+0+0178 <[^>]*> 0064109b divu v0,v1,a0
+0+017c <[^>]*> 006410db modu v0,v1,a0
+0+0180 <[^>]*> 49422000 lwc2 \$2,0\(a0\)
+0+0184 <[^>]*> 49422400 lwc2 \$2,-1024\(a0\)
+0+0188 <[^>]*> 494223ff lwc2 \$2,1023\(a0\)
+0+018c <[^>]*> 49622000 swc2 \$2,0\(a0\)
+0+0190 <[^>]*> 49622400 swc2 \$2,-1024\(a0\)
+0+0194 <[^>]*> 496223ff swc2 \$2,1023\(a0\)
+0+0198 <[^>]*> 49c22000 ldc2 \$2,0\(a0\)
+0+019c <[^>]*> 49c22400 ldc2 \$2,-1024\(a0\)
+0+01a0 <[^>]*> 49c223ff ldc2 \$2,1023\(a0\)
+0+01a4 <[^>]*> 49e22000 sdc2 \$2,0\(a0\)
+0+01a8 <[^>]*> 49e22400 sdc2 \$2,-1024\(a0\)
+0+01ac <[^>]*> 49e223ff sdc2 \$2,1023\(a0\)
+0+01b0 <[^>]*> 00641005 lsa v0,v1,a0,0x1
+0+01b4 <[^>]*> 006410c5 lsa v0,v1,a0,0x4
+0+01b8 <[^>]*> 00601050 clz v0,v1
+0+01bc <[^>]*> 00601051 clo v0,v1
+0+01c0 <[^>]*> 0000000e sdbbp
+0+01c4 <[^>]*> 0000000e sdbbp
+0+01c8 <[^>]*> 0000004e sdbbp 0x1
+0+01cc <[^>]*> 03ffffce sdbbp 0xfffff
+0+01d0 <[^>]*> 3c02ffff lui v0,0xffff
+0+01d4 <[^>]*> 7c008035 pref 0x0,-256\(zero\)
+0+01d8 <[^>]*> 7fff7fb5 pref 0x1f,255\(ra\)
+0+01dc <[^>]*> 7c628036 ll v0,-256\(v1\)
+0+01e0 <[^>]*> 7c627fb6 ll v0,255\(v1\)
+0+01e4 <[^>]*> 7c628026 sc v0,-256\(v1\)
+0+01e8 <[^>]*> 7c627fa6 sc v0,255\(v1\)
+0+01ec <[^>]*> 7c608025 cache 0x0,-256\(v1\)
+0+01f0 <[^>]*> 7c7f7fa5 cache 0x1f,255\(v1\)
+0+01f4 <[^>]*> 7c432220 align a0,v0,v1,0
+0+01f8 <[^>]*> 7c432260 align a0,v0,v1,1
+0+01fc <[^>]*> 7c4322a0 align a0,v0,v1,2
+0+0200 <[^>]*> 7c4322e0 align a0,v0,v1,3
+0+0204 <[^>]*> 7c022020 bitswap a0,v0
+0+0208 <[^>]*> 2000ffff bovc zero,zero,00000208 <[^>]*>
+[ ]*208: R_MIPS_PC16 ext
+0+020c <[^>]*> 00000000 nop
+0+0210 <[^>]*> 2040ffff bovc v0,zero,00000210 <[^>]*>
+[ ]*210: R_MIPS_PC16 ext
+0+0214 <[^>]*> 00000000 nop
+0+0218 <[^>]*> 2040ffff bovc v0,zero,00000218 <[^>]*>
+[ ]*218: R_MIPS_PC16 ext
+0+021c <[^>]*> 00000000 nop
+0+0220 <[^>]*> 2082ffff bovc a0,v0,00000220 <[^>]*>
+[ ]*220: R_MIPS_PC16 ext
+0+0224 <[^>]*> 00000000 nop
+0+0228 <[^>]*> 2082ffff bovc a0,v0,00000228 <[^>]*>
+[ ]*228: R_MIPS_PC16 ext
+0+022c <[^>]*> 00000000 nop
+0+0230 <[^>]*> 20828000 bovc a0,v0,fffe0234 <[^>]*>
+[ ]*230: R_MIPS_PC16 L0.
+0+0234 <[^>]*> 00000000 nop
+0+0238 <[^>]*> 20827fff bovc a0,v0,00020238 <[^>]*>
+[ ]*238: R_MIPS_PC16 L0.
+0+023c <[^>]*> 00000000 nop
+0+0240 <[^>]*> 2082ffff bovc a0,v0,00000240 <[^>]*>
+[ ]*240: R_MIPS_PC16 .L1.2
+0+0244 <[^>]*> 00000000 nop
+0+0248 <[^>]*> 2042ffff bovc v0,v0,00000248 <[^>]*>
+[ ]*248: R_MIPS_PC16 ext
+0+024c <[^>]*> 00000000 nop
+0+0250 <[^>]*> 20428000 bovc v0,v0,fffe0254 <[^>]*>
+[ ]*250: R_MIPS_PC16 L0.
+0+0254 <[^>]*> 00000000 nop
+0+0258 <[^>]*> 2002ffff beqzalc v0,00000258 <[^>]*>
+[ ]*258: R_MIPS_PC16 ext
+0+025c <[^>]*> 00000000 nop
+0+0260 <[^>]*> 20028000 beqzalc v0,fffe0264 <[^>]*>
+[ ]*260: R_MIPS_PC16 L0.
+0+0264 <[^>]*> 00000000 nop
+0+0268 <[^>]*> 20027fff beqzalc v0,00020268 <[^>]*>
+[ ]*268: R_MIPS_PC16 L0.
+0+026c <[^>]*> 00000000 nop
+0+0270 <[^>]*> 2002ffff beqzalc v0,00000270 <[^>]*>
+[ ]*270: R_MIPS_PC16 .L1.2
+0+0274 <[^>]*> 00000000 nop
+0+0278 <[^>]*> 2043ffff beqc v0,v1,00000278 <[^>]*>
+[ ]*278: R_MIPS_PC16 ext
+0+027c <[^>]*> 00000000 nop
+0+0280 <[^>]*> 2043ffff beqc v0,v1,00000280 <[^>]*>
+[ ]*280: R_MIPS_PC16 ext
+0+0284 <[^>]*> 00000000 nop
+0+0288 <[^>]*> 20438000 beqc v0,v1,fffe028c <[^>]*>
+[ ]*288: R_MIPS_PC16 L0.
+0+028c <[^>]*> 00000000 nop
+0+0290 <[^>]*> 20437fff beqc v0,v1,00020290 <[^>]*>
+[ ]*290: R_MIPS_PC16 L0.
+0+0294 <[^>]*> 00000000 nop
+0+0298 <[^>]*> 2043ffff beqc v0,v1,00000298 <[^>]*>
+[ ]*298: R_MIPS_PC16 .L1.2
+0+029c <[^>]*> 00000000 nop
+0+02a0 <[^>]*> 6000ffff bnvc zero,zero,000002a0 <[^>]*>
+[ ]*2a0: R_MIPS_PC16 ext
+0+02a4 <[^>]*> 00000000 nop
+0+02a8 <[^>]*> 6040ffff bnvc v0,zero,000002a8 <[^>]*>
+[ ]*2a8: R_MIPS_PC16 ext
+0+02ac <[^>]*> 00000000 nop
+0+02b0 <[^>]*> 6040ffff bnvc v0,zero,000002b0 <[^>]*>
+[ ]*2b0: R_MIPS_PC16 ext
+0+02b4 <[^>]*> 00000000 nop
+0+02b8 <[^>]*> 6082ffff bnvc a0,v0,000002b8 <[^>]*>
+[ ]*2b8: R_MIPS_PC16 ext
+0+02bc <[^>]*> 00000000 nop
+0+02c0 <[^>]*> 6082ffff bnvc a0,v0,000002c0 <[^>]*>
+[ ]*2c0: R_MIPS_PC16 ext
+0+02c4 <[^>]*> 00000000 nop
+0+02c8 <[^>]*> 60828000 bnvc a0,v0,fffe02cc <[^>]*>
+[ ]*2c8: R_MIPS_PC16 L0.
+0+02cc <[^>]*> 00000000 nop
+0+02d0 <[^>]*> 60827fff bnvc a0,v0,000202d0 <[^>]*>
+[ ]*2d0: R_MIPS_PC16 L0.
+0+02d4 <[^>]*> 00000000 nop
+0+02d8 <[^>]*> 6082ffff bnvc a0,v0,000002d8 <[^>]*>
+[ ]*2d8: R_MIPS_PC16 .L1.2
+0+02dc <[^>]*> 00000000 nop
+0+02e0 <[^>]*> 6042ffff bnvc v0,v0,000002e0 <[^>]*>
+[ ]*2e0: R_MIPS_PC16 ext
+0+02e4 <[^>]*> 00000000 nop
+0+02e8 <[^>]*> 60428000 bnvc v0,v0,fffe02ec <[^>]*>
+[ ]*2e8: R_MIPS_PC16 L0.
+0+02ec <[^>]*> 00000000 nop
+0+02f0 <[^>]*> 6002ffff bnezalc v0,000002f0 <[^>]*>
+[ ]*2f0: R_MIPS_PC16 ext
+0+02f4 <[^>]*> 00000000 nop
+0+02f8 <[^>]*> 60028000 bnezalc v0,fffe02fc <[^>]*>
+[ ]*2f8: R_MIPS_PC16 L0.
+0+02fc <[^>]*> 00000000 nop
+0+0300 <[^>]*> 60027fff bnezalc v0,00020300 <[^>]*>
+[ ]*300: R_MIPS_PC16 L0.
+0+0304 <[^>]*> 00000000 nop
+0+0308 <[^>]*> 6002ffff bnezalc v0,00000308 <[^>]*>
+[ ]*308: R_MIPS_PC16 .L1.2
+0+030c <[^>]*> 00000000 nop
+0+0310 <[^>]*> 6043ffff bnec v0,v1,00000310 <[^>]*>
+[ ]*310: R_MIPS_PC16 ext
+0+0314 <[^>]*> 00000000 nop
+0+0318 <[^>]*> 6043ffff bnec v0,v1,00000318 <[^>]*>
+[ ]*318: R_MIPS_PC16 ext
+0+031c <[^>]*> 00000000 nop
+0+0320 <[^>]*> 60438000 bnec v0,v1,fffe0324 <[^>]*>
+[ ]*320: R_MIPS_PC16 L0.
+0+0324 <[^>]*> 00000000 nop
+0+0328 <[^>]*> 60437fff bnec v0,v1,00020328 <[^>]*>
+[ ]*328: R_MIPS_PC16 L0.
+0+032c <[^>]*> 00000000 nop
+0+0330 <[^>]*> 6043ffff bnec v0,v1,00000330 <[^>]*>
+[ ]*330: R_MIPS_PC16 .L1.2
+0+0334 <[^>]*> 00000000 nop
+0+0338 <[^>]*> 5802ffff blezc v0,00000338 <[^>]*>
+[ ]*338: R_MIPS_PC16 ext
+0+033c <[^>]*> 00000000 nop
+0+0340 <[^>]*> 58028000 blezc v0,fffe0344 <[^>]*>
+[ ]*340: R_MIPS_PC16 L0.
+0+0344 <[^>]*> 00000000 nop
+0+0348 <[^>]*> 58027fff blezc v0,00020348 <[^>]*>
+[ ]*348: R_MIPS_PC16 L0.
+0+034c <[^>]*> 00000000 nop
+0+0350 <[^>]*> 5802ffff blezc v0,00000350 <[^>]*>
+[ ]*350: R_MIPS_PC16 .L1.2
+0+0354 <[^>]*> 00000000 nop
+0+0358 <[^>]*> 5842ffff bgezc v0,00000358 <[^>]*>
+[ ]*358: R_MIPS_PC16 ext
+0+035c <[^>]*> 00000000 nop
+0+0360 <[^>]*> 58428000 bgezc v0,fffe0364 <[^>]*>
+[ ]*360: R_MIPS_PC16 L0.
+0+0364 <[^>]*> 00000000 nop
+0+0368 <[^>]*> 58427fff bgezc v0,00020368 <[^>]*>
+[ ]*368: R_MIPS_PC16 L0.
+0+036c <[^>]*> 00000000 nop
+0+0370 <[^>]*> 5842ffff bgezc v0,00000370 <[^>]*>
+[ ]*370: R_MIPS_PC16 .L1.2
+0+0374 <[^>]*> 00000000 nop
+0+0378 <[^>]*> 5843ffff bgec v0,v1,00000378 <[^>]*>
+[ ]*378: R_MIPS_PC16 ext
+0+037c <[^>]*> 00000000 nop
+0+0380 <[^>]*> 58438000 bgec v0,v1,fffe0384 <[^>]*>
+[ ]*380: R_MIPS_PC16 L0.
+0+0384 <[^>]*> 00000000 nop
+0+0388 <[^>]*> 58437fff bgec v0,v1,00020388 <[^>]*>
+[ ]*388: R_MIPS_PC16 L0.
+0+038c <[^>]*> 00000000 nop
+0+0390 <[^>]*> 5843ffff bgec v0,v1,00000390 <[^>]*>
+[ ]*390: R_MIPS_PC16 .L1.2
+0+0394 <[^>]*> 00000000 nop
+0+0398 <[^>]*> 5862ffff bgec v1,v0,00000398 <[^>]*>
+[ ]*398: R_MIPS_PC16 .L1.2
+0+039c <[^>]*> 00000000 nop
+0+03a0 <[^>]*> 5c02ffff bgtzc v0,000003a0 <[^>]*>
+[ ]*3a0: R_MIPS_PC16 ext
+0+03a4 <[^>]*> 00000000 nop
+0+03a8 <[^>]*> 5c028000 bgtzc v0,fffe03ac <[^>]*>
+[ ]*3a8: R_MIPS_PC16 L0.
+0+03ac <[^>]*> 00000000 nop
+0+03b0 <[^>]*> 5c027fff bgtzc v0,000203b0 <[^>]*>
+[ ]*3b0: R_MIPS_PC16 L0.
+0+03b4 <[^>]*> 00000000 nop
+0+03b8 <[^>]*> 5c02ffff bgtzc v0,000003b8 <[^>]*>
+[ ]*3b8: R_MIPS_PC16 .L1.2
+0+03bc <[^>]*> 00000000 nop
+0+03c0 <[^>]*> 5c42ffff bltzc v0,000003c0 <[^>]*>
+[ ]*3c0: R_MIPS_PC16 ext
+0+03c4 <[^>]*> 00000000 nop
+0+03c8 <[^>]*> 5c428000 bltzc v0,fffe03cc <[^>]*>
+[ ]*3c8: R_MIPS_PC16 L0.
+0+03cc <[^>]*> 00000000 nop
+0+03d0 <[^>]*> 5c427fff bltzc v0,000203d0 <[^>]*>
+[ ]*3d0: R_MIPS_PC16 L0.
+0+03d4 <[^>]*> 00000000 nop
+0+03d8 <[^>]*> 5c42ffff bltzc v0,000003d8 <[^>]*>
+[ ]*3d8: R_MIPS_PC16 .L1.2
+0+03dc <[^>]*> 00000000 nop
+0+03e0 <[^>]*> 5c43ffff bltc v0,v1,000003e0 <[^>]*>
+[ ]*3e0: R_MIPS_PC16 ext
+0+03e4 <[^>]*> 00000000 nop
+0+03e8 <[^>]*> 5c438000 bltc v0,v1,fffe03ec <[^>]*>
+[ ]*3e8: R_MIPS_PC16 L0.
+0+03ec <[^>]*> 00000000 nop
+0+03f0 <[^>]*> 5c437fff bltc v0,v1,000203f0 <[^>]*>
+[ ]*3f0: R_MIPS_PC16 L0.
+0+03f4 <[^>]*> 00000000 nop
+0+03f8 <[^>]*> 5c43ffff bltc v0,v1,000003f8 <[^>]*>
+[ ]*3f8: R_MIPS_PC16 .L1.2
+0+03fc <[^>]*> 00000000 nop
+0+0400 <[^>]*> 5c62ffff bltc v1,v0,00000400 <[^>]*>
+[ ]*400: R_MIPS_PC16 .L1.2
+0+0404 <[^>]*> 00000000 nop
+0+0408 <[^>]*> 1802ffff blezalc v0,00000408 <[^>]*>
+[ ]*408: R_MIPS_PC16 ext
+0+040c <[^>]*> 00000000 nop
+0+0410 <[^>]*> 18028000 blezalc v0,fffe0414 <[^>]*>
+[ ]*410: R_MIPS_PC16 L0.
+0+0414 <[^>]*> 00000000 nop
+0+0418 <[^>]*> 18027fff blezalc v0,00020418 <[^>]*>
+[ ]*418: R_MIPS_PC16 L0.
+0+041c <[^>]*> 00000000 nop
+0+0420 <[^>]*> 1802ffff blezalc v0,00000420 <[^>]*>
+[ ]*420: R_MIPS_PC16 .L1.2
+0+0424 <[^>]*> 00000000 nop
+0+0428 <[^>]*> 1842ffff bgezalc v0,00000428 <[^>]*>
+[ ]*428: R_MIPS_PC16 ext
+0+042c <[^>]*> 00000000 nop
+0+0430 <[^>]*> 18428000 bgezalc v0,fffe0434 <[^>]*>
+[ ]*430: R_MIPS_PC16 L0.
+0+0434 <[^>]*> 00000000 nop
+0+0438 <[^>]*> 18427fff bgezalc v0,00020438 <[^>]*>
+[ ]*438: R_MIPS_PC16 L0.
+0+043c <[^>]*> 00000000 nop
+0+0440 <[^>]*> 1842ffff bgezalc v0,00000440 <[^>]*>
+[ ]*440: R_MIPS_PC16 .L1.2
+0+0444 <[^>]*> 00000000 nop
+0+0448 <[^>]*> 1843ffff bgeuc v0,v1,00000448 <[^>]*>
+[ ]*448: R_MIPS_PC16 ext
+0+044c <[^>]*> 00000000 nop
+0+0450 <[^>]*> 18438000 bgeuc v0,v1,fffe0454 <[^>]*>
+[ ]*450: R_MIPS_PC16 L0.
+0+0454 <[^>]*> 00000000 nop
+0+0458 <[^>]*> 18437fff bgeuc v0,v1,00020458 <[^>]*>
+[ ]*458: R_MIPS_PC16 L0.
+0+045c <[^>]*> 00000000 nop
+0+0460 <[^>]*> 1843ffff bgeuc v0,v1,00000460 <[^>]*>
+[ ]*460: R_MIPS_PC16 .L1.2
+0+0464 <[^>]*> 00000000 nop
+0+0468 <[^>]*> 1862ffff bgeuc v1,v0,00000468 <[^>]*>
+[ ]*468: R_MIPS_PC16 .L1.2
+0+046c <[^>]*> 00000000 nop
+0+0470 <[^>]*> 1c02ffff bgtzalc v0,00000470 <[^>]*>
+[ ]*470: R_MIPS_PC16 ext
+0+0474 <[^>]*> 00000000 nop
+0+0478 <[^>]*> 1c028000 bgtzalc v0,fffe047c <[^>]*>
+[ ]*478: R_MIPS_PC16 L0.
+0+047c <[^>]*> 00000000 nop
+0+0480 <[^>]*> 1c027fff bgtzalc v0,00020480 <[^>]*>
+[ ]*480: R_MIPS_PC16 L0.
+0+0484 <[^>]*> 00000000 nop
+0+0488 <[^>]*> 1c02ffff bgtzalc v0,00000488 <[^>]*>
+[ ]*488: R_MIPS_PC16 .L1.2
+0+048c <[^>]*> 00000000 nop
+0+0490 <[^>]*> 1c42ffff bltzalc v0,00000490 <[^>]*>
+[ ]*490: R_MIPS_PC16 ext
+0+0494 <[^>]*> 00000000 nop
+0+0498 <[^>]*> 1c428000 bltzalc v0,fffe049c <[^>]*>
+[ ]*498: R_MIPS_PC16 L0.
+0+049c <[^>]*> 00000000 nop
+0+04a0 <[^>]*> 1c427fff bltzalc v0,000204a0 <[^>]*>
+[ ]*4a0: R_MIPS_PC16 L0.
+0+04a4 <[^>]*> 00000000 nop
+0+04a8 <[^>]*> 1c42ffff bltzalc v0,000004a8 <[^>]*>
+[ ]*4a8: R_MIPS_PC16 .L1.2
+0+04ac <[^>]*> 00000000 nop
+0+04b0 <[^>]*> 1c43ffff bltuc v0,v1,000004b0 <[^>]*>
+[ ]*4b0: R_MIPS_PC16 ext
+0+04b4 <[^>]*> 00000000 nop
+0+04b8 <[^>]*> 1c438000 bltuc v0,v1,fffe04bc <[^>]*>
+[ ]*4b8: R_MIPS_PC16 L0.
+0+04bc <[^>]*> 00000000 nop
+0+04c0 <[^>]*> 1c437fff bltuc v0,v1,000204c0 <[^>]*>
+[ ]*4c0: R_MIPS_PC16 L0.
+0+04c4 <[^>]*> 00000000 nop
+0+04c8 <[^>]*> 1c43ffff bltuc v0,v1,000004c8 <[^>]*>
+[ ]*4c8: R_MIPS_PC16 .L1.2
+0+04cc <[^>]*> 00000000 nop
+0+04d0 <[^>]*> 1c62ffff bltuc v1,v0,000004d0 <[^>]*>
+[ ]*4d0: R_MIPS_PC16 .L1.2
+0+04d4 <[^>]*> 00000000 nop
+0+04d8 <[^>]*> cbffffff bc 000004d8 <[^>]*>
+[ ]*4d8: R_MIPS_PC26_S2 ext
+0+04dc <[^>]*> ca000000 bc f80004e0 <[^>]*>
+[ ]*4dc: R_MIPS_PC26_S2 L0.
+0+04e0 <[^>]*> c9ffffff bc 080004e0 <[^>]*>
+[ ]*4e0: R_MIPS_PC26_S2 L0.
+0+04e4 <[^>]*> cbffffff bc 000004e4 <[^>]*>
+[ ]*4e4: R_MIPS_PC26_S2 .L1.2
+0+04e8 <[^>]*> ebffffff balc 000004e8 <[^>]*>
+[ ]*4e8: R_MIPS_PC26_S2 ext
+0+04ec <[^>]*> ea000000 balc f80004f0 <[^>]*>
+[ ]*4ec: R_MIPS_PC26_S2 L0.
+0+04f0 <[^>]*> e9ffffff balc 080004f0 <[^>]*>
+[ ]*4f0: R_MIPS_PC26_S2 L0.
+0+04f4 <[^>]*> ebffffff balc 000004f4 <[^>]*>
+[ ]*4f4: R_MIPS_PC26_S2 .L1.2
+0+04f8 <[^>]*> d85fffff beqzc v0,000004f8 <[^>]*>
+[ ]*4f8: R_MIPS_PC21_S2 ext
+0+04fc <[^>]*> 00000000 nop
+0+0500 <[^>]*> d8500000 beqzc v0,ffc00504 <[^>]*>
+[ ]*500: R_MIPS_PC21_S2 L0.
+0+0504 <[^>]*> 00000000 nop
+0+0508 <[^>]*> d84fffff beqzc v0,00400508 <[^>]*>
+[ ]*508: R_MIPS_PC21_S2 L0.
+0+050c <[^>]*> 00000000 nop
+0+0510 <[^>]*> d85fffff beqzc v0,00000510 <[^>]*>
+[ ]*510: R_MIPS_PC21_S2 .L1.2
+0+0514 <[^>]*> 00000000 nop
+0+0518 <[^>]*> d8038000 jic v1,-32768
+0+051c <[^>]*> d8037fff jic v1,32767
+0+0520 <[^>]*> d81f0000 jrc ra
+0+0524 <[^>]*> f85fffff bnezc v0,00000524 <[^>]*>
+[ ]*524: R_MIPS_PC21_S2 ext
+0+0528 <[^>]*> 00000000 nop
+0+052c <[^>]*> f8500000 bnezc v0,ffc00530 <[^>]*>
+[ ]*52c: R_MIPS_PC21_S2 L0.
+0+0530 <[^>]*> 00000000 nop
+0+0534 <[^>]*> f84fffff bnezc v0,00400534 <[^>]*>
+[ ]*534: R_MIPS_PC21_S2 L0.
+0+0538 <[^>]*> 00000000 nop
+0+053c <[^>]*> f85fffff bnezc v0,0000053c <[^>]*>
+[ ]*53c: R_MIPS_PC21_S2 .L1.2
+0+0540 <[^>]*> 00000000 nop
+0+0544 <[^>]*> f8038000 jialc v1,-32768
+0+0548 <[^>]*> f8037fff jialc v1,32767
+0+054c <[^>]*> 3c43ffff aui v1,v0,0xffff
+0+0550 <[^>]*> ec600000 lapc v1,00000550 <[^>]*>
+[ ]*550: R_MIPS_PC19_S2 .L1.2
+0+0554 <[^>]*> ec840000 lapc a0,fff00554 <[^>]*>
+[ ]*554: R_MIPS_PC19_S2 L0.
+0+0558 <[^>]*> ec83ffff lapc a0,00100554 <[^>]*>
+[ ]*558: R_MIPS_PC19_S2 L0.
+0+055c <[^>]*> ec840000 lapc a0,fff0055c <[^>]*>
+0+0560 <[^>]*> ec83ffff lapc a0,0010055c <[^>]*>
+0+0564 <[^>]*> ec7effff auipc v1,0xffff
+0+0568 <[^>]*> ec7fffff aluipc v1,0xffff
+0+056c <[^>]*> ec880000 lwpc a0,0000056c <[^>]*>
+[ ]*56c: R_MIPS_PC19_S2 .L1.2
+0+0570 <[^>]*> ec8c0000 lwpc a0,fff00570 <[^>]*>
+[ ]*570: R_MIPS_PC19_S2 L0.
+0+0574 <[^>]*> ec8bffff lwpc a0,00100570 <[^>]*>
+[ ]*574: R_MIPS_PC19_S2 L0.
+0+0578 <[^>]*> ec8c0000 lwpc a0,fff00578 <[^>]*>
+0+057c <[^>]*> ec8bffff lwpc a0,00100578 <[^>]*>
+0+0580 <[^>]*> 00000000 nop
+0+0584 <[^>]*> ec83ffff lapc a0,00100580 <[^>]*>
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r6.s b/gas/testsuite/gas/mips/r6.s
new file mode 100644
index 0000000..73308ad
--- /dev/null
+++ b/gas/testsuite/gas/mips/r6.s
@@ -0,0 +1,263 @@
+ .text
+ .set reorder
+new: maddf.s $f0,$f1,$f2
+ maddf.d $f3,$f4,$f5
+ msubf.s $f6,$f7,$f8
+ msubf.d $f9,$f10,$f11
+ cmp.af.s $f0,$f1,$f2
+ cmp.af.d $f0,$f1,$f2
+ cmp.un.s $f0,$f1,$f2
+ cmp.un.d $f0,$f1,$f2
+ cmp.eq.s $f0,$f1,$f2
+ cmp.eq.d $f0,$f1,$f2
+ cmp.ueq.s $f0,$f1,$f2
+ cmp.ueq.d $f0,$f1,$f2
+ cmp.lt.s $f0,$f1,$f2
+ cmp.lt.d $f0,$f1,$f2
+ cmp.ult.s $f0,$f1,$f2
+ cmp.ult.d $f0,$f1,$f2
+ cmp.le.s $f0,$f1,$f2
+ cmp.le.d $f0,$f1,$f2
+ cmp.ule.s $f0,$f1,$f2
+ cmp.ule.d $f0,$f1,$f2
+ cmp.saf.s $f0,$f1,$f2
+ cmp.saf.d $f0,$f1,$f2
+ cmp.sun.s $f0,$f1,$f2
+ cmp.sun.d $f0,$f1,$f2
+ cmp.seq.s $f0,$f1,$f2
+ cmp.seq.d $f0,$f1,$f2
+ cmp.sueq.s $f0,$f1,$f2
+ cmp.sueq.d $f0,$f1,$f2
+ cmp.slt.s $f0,$f1,$f2
+ cmp.slt.d $f0,$f1,$f2
+ cmp.sult.s $f0,$f1,$f2
+ cmp.sult.d $f0,$f1,$f2
+ cmp.sle.s $f0,$f1,$f2
+ cmp.sle.d $f0,$f1,$f2
+ cmp.sule.s $f0,$f1,$f2
+ cmp.sule.d $f0,$f1,$f2
+ cmp.or.s $f0,$f1,$f2
+ cmp.or.d $f0,$f1,$f2
+ cmp.une.s $f0,$f1,$f2
+ cmp.une.d $f0,$f1,$f2
+ cmp.ne.s $f0,$f1,$f2
+ cmp.ne.d $f0,$f1,$f2
+ cmp.sor.s $f0,$f1,$f2
+ cmp.sor.d $f0,$f1,$f2
+ cmp.sune.s $f0,$f1,$f2
+ cmp.sune.d $f0,$f1,$f2
+ cmp.sne.s $f0,$f1,$f2
+ cmp.sne.d $f0,$f1,$f2
+ bc1eqz $f0,1f
+ bc1eqz $f31,1f
+ bc1eqz $f31,new
+ bc1eqz $f31,external_label
+ bc1nez $f0,1f
+ bc1nez $f31,1f
+ bc1nez $f31,new
+ bc1nez $f31,external_label
+ bc2eqz $0,1f
+ bc2eqz $31,1f
+ bc2eqz $31,new
+ bc2eqz $31,external_label
+ bc2nez $0,1f
+ bc2nez $31,1f
+ bc2nez $31,new
+ bc2nez $31,external_label
+1: sel.s $f0,$f1,$f2
+ sel.d $f0,$f1,$f2
+ seleqz.s $f0,$f1,$f2
+ seleqz.d $f0,$f1,$f2
+ selnez.s $f0,$f1,$f2
+ selnez.d $f0,$f1,$f2
+ seleqz $2,$3,$4
+ selnez $2,$3,$4
+ mul $2,$3,$4
+ muh $2,$3,$4
+ mulu $2,$3,$4
+ muhu $2,$3,$4
+ div $2,$3,$4
+ mod $2,$3,$4
+ divu $2,$3,$4
+ modu $2,$3,$4
+ lwc2 $2,0($4)
+ lwc2 $2,-1024($4)
+ lwc2 $2,1023($4)
+ swc2 $2,0($4)
+ swc2 $2,-1024($4)
+ swc2 $2,1023($4)
+ ldc2 $2,0($4)
+ ldc2 $2,-1024($4)
+ ldc2 $2,1023($4)
+ sdc2 $2,0($4)
+ sdc2 $2,-1024($4)
+ sdc2 $2,1023($4)
+ lsa $2,$3,$4,1
+ lsa $2,$3,$4,4
+ clz $2,$3
+ clo $2,$3
+ sdbbp
+ sdbbp 0
+ sdbbp 1
+ sdbbp 1048575
+ lui $2,0xffff
+ pref 0, -256($0)
+ pref 31, 255($31)
+ ll $2,-256($3)
+ ll $2,255($3)
+ sc $2,-256($3)
+ sc $2,255($3)
+ cache 0,-256($3)
+ cache 31,255($3)
+
+
+ align $4, $2, $3, 0
+ align $4, $2, $3, 1
+ align $4, $2, $3, 2
+ align $4, $2, $3, 3
+
+
+ bitswap $4, $2
+
+ bovc $0, $0, ext
+ bovc $2, $0, ext
+ bovc $0, $2, ext
+ bovc $2, $4, ext
+ bovc $4, $2, ext
+ bovc $2, $4, . + 4 + (-32768 << 2)
+ bovc $2, $4, . + 4 + (32767 << 2)
+ bovc $2, $4, 1f
+ bovc $2, $2, ext
+ bovc $2, $2, . + 4 + (-32768 << 2)
+ beqzalc $2, ext
+ beqzalc $2, . + 4 + (-32768 << 2)
+ beqzalc $2, . + 4 + (32767 << 2)
+ beqzalc $2, 1f
+ beqc $3, $2, ext
+ beqc $2, $3, ext
+ beqc $3, $2, . + 4 + (-32768 << 2)
+ beqc $3, $2, . + 4 + (32767 << 2)
+ beqc $3, $2, 1f
+
+ bnvc $0, $0, ext
+ bnvc $2, $0, ext
+ bnvc $0, $2, ext
+ bnvc $2, $4, ext
+ bnvc $4, $2, ext
+ bnvc $2, $4, . + 4 + (-32768 << 2)
+ bnvc $2, $4, . + 4 + (32767 << 2)
+ bnvc $2, $4, 1f
+ bnvc $2, $2, ext
+ bnvc $2, $2, . + 4 + (-32768 << 2)
+ bnezalc $2, ext
+ bnezalc $2, . + 4 + (-32768 << 2)
+ bnezalc $2, . + 4 + (32767 << 2)
+ bnezalc $2, 1f
+ bnec $3, $2, ext
+ bnec $2, $3, ext
+ bnec $3, $2, . + 4 + (-32768 << 2)
+ bnec $3, $2, . + 4 + (32767 << 2)
+ bnec $3, $2, 1f
+
+ blezc $2, ext
+ blezc $2, . + 4 + (-32768 << 2)
+ blezc $2, . + 4 + (32767 << 2)
+ blezc $2, 1f
+ bgezc $2, ext
+ bgezc $2, . + 4 + (-32768 << 2)
+ bgezc $2, . + 4 + (32767 << 2)
+ bgezc $2, 1f
+ bgec $2, $3, ext
+ bgec $2, $3, . + 4 + (-32768 << 2)
+ bgec $2, $3, . + 4 + (32767 << 2)
+ bgec $2, $3, 1f
+ bgec $3, $2, 1f
+
+ bgtzc $2, ext
+ bgtzc $2, . + 4 + (-32768 << 2)
+ bgtzc $2, . + 4 + (32767 << 2)
+ bgtzc $2, 1f
+ bltzc $2, ext
+ bltzc $2, . + 4 + (-32768 << 2)
+ bltzc $2, . + 4 + (32767 << 2)
+ bltzc $2, 1f
+ bltc $2, $3, ext
+ bltc $2, $3, . + 4 + (-32768 << 2)
+ bltc $2, $3, . + 4 + (32767 << 2)
+ bltc $2, $3, 1f
+ bltc $3, $2, 1f
+
+ blezalc $2, ext
+ blezalc $2, . + 4 + (-32768 << 2)
+ blezalc $2, . + 4 + (32767 << 2)
+ blezalc $2, 1f
+ bgezalc $2, ext
+ bgezalc $2, . + 4 + (-32768 << 2)
+ bgezalc $2, . + 4 + (32767 << 2)
+ bgezalc $2, 1f
+ bgeuc $2, $3, ext
+ bgeuc $2, $3, . + 4 + (-32768 << 2)
+ bgeuc $2, $3, . + 4 + (32767 << 2)
+ bgeuc $2, $3, 1f
+ bgeuc $3, $2, 1f
+
+ bgtzalc $2, ext
+ bgtzalc $2, . + 4 + (-32768 << 2)
+ bgtzalc $2, . + 4 + (32767 << 2)
+ bgtzalc $2, 1f
+ bltzalc $2, ext
+ bltzalc $2, . + 4 + (-32768 << 2)
+ bltzalc $2, . + 4 + (32767 << 2)
+ bltzalc $2, 1f
+ bltuc $2, $3, ext
+ bltuc $2, $3, . + 4 + (-32768 << 2)
+ bltuc $2, $3, . + 4 + (32767 << 2)
+ bltuc $2, $3, 1f
+ bltuc $3, $2, 1f
+
+ bc ext
+ bc . + 4 + (-33554432 << 2)
+ bc . + 4 + (33554431 << 2)
+ bc 1f
+ balc ext
+ balc . + 4 + (-33554432 << 2)
+ balc . + 4 + (33554431 << 2)
+ balc 1f
+
+ beqzc $2, ext
+ beqzc $2, . + 4 + (-1048576 << 2)
+ beqzc $2, . + 4 + (1048575 << 2)
+ beqzc $2, 1f
+ jic $3,-32768
+ jic $3,32767
+ jrc $31
+
+ bnezc $2, ext
+ bnezc $2, . + 4 + (-1048576 << 2)
+ bnezc $2, . + 4 + (1048575 << 2)
+ bnezc $2, 1f
+ jialc $3,-32768
+ jialc $3,32767
+
+
+ aui $3, $2, 0xffff
+
+ lapc $3, 1f
+ lapc $4, .+(-262144 << 2)
+ lapc $4, .+(262143 << 2)
+ addiupc $4, (-262144 << 2)
+ addiupc $4, (262143 << 2)
+ auipc $3, 0xffff
+ aluipc $3, 0xffff
+ lwpc $4, 1f
+ lwpc $4, .+(-262144 << 2)
+ lwpc $4, .+(262143 << 2)
+ lw $4, (-262144 << 2)($pc)
+ lw $4, (262143 << 2)($pc)
+1:
+ nop
+ addiu $4, $pc, (262143 << 2)
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 2
+ .space 8