2011-02-25  Chao-ying Fu  <fu@mips.com>
            Ilie Garbacea  <ilie@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>
            Catherine Moore  <clm@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* archures.c (bfd_mach_mips_micromips): New macro.
	* cpu-mips.c (I_micromips): New enum value.
	(arch_info_struct): Add bfd_mach_mips_micromips.
	* elfxx-mips.h (_bfd_mips_elf_is_target_special_symbol): New
	prototype.
	(_bfd_mips_elf_relax_section): Likewise.
	(_bfd_mips16_elf_reloc_unshuffle): Rename to...
	(_bfd_mips_elf_reloc_unshuffle): ... this.  Handle microMIPS
	ASE.
	(_bfd_mips16_elf_reloc_shuffle): Rename to...
	(_bfd_mips_elf_reloc_shuffle): ... this.  Handle microMIPS ASE.
	(gprel16_reloc_p): Handle microMIPS ASE.
	(literal_reloc_p): New function.
	* elf32-mips.c (elf_micromips_howto_table_rel): New variable.
	(_bfd_mips_elf32_gprel16_reloc): Handle microMIPS ASE.
	(mips16_gprel_reloc): Update for _bfd_mips_elf_reloc_unshuffle
	and _bfd_mips_elf_reloc_shuffle changes.
	(mips_elf_gprel32_reloc): Update comment.
	(micromips_reloc_map): New variable.
	(bfd_elf32_bfd_reloc_type_lookup): Handle microMIPS ASE.
	(mips_elf32_rtype_to_howto): Likewise.
	(mips_info_to_howto_rel): Likewise.
	(bfd_elf32_bfd_is_target_special_symbol): Define.
	(bfd_elf32_bfd_relax_section): Likewise.
	* elf64-mips.c (micromips_elf64_howto_table_rel): New variable.
	(micromips_elf64_howto_table_rela): Likewise.
	(mips16_gprel_reloc): Update for _bfd_mips_elf_reloc_unshuffle
	and _bfd_mips_elf_reloc_shuffle changes.
	(micromips_reloc_map): Likewise.
	(bfd_elf64_bfd_reloc_type_lookup): Handle microMIPS ASE.
	(bfd_elf64_bfd_reloc_name_lookup): Likewise.
	(mips_elf64_rtype_to_howto): Likewise.
	(bfd_elf64_bfd_is_target_special_symbol): Define.
	* elfn32-mips.c (elf_micromips_howto_table_rel): New variable.
	(elf_micromips_howto_table_rela): Likewise.
	(mips16_gprel_reloc): Update for _bfd_mips_elf_reloc_unshuffle
	and _bfd_mips_elf_reloc_shuffle changes.
	(micromips_reloc_map): Likewise.
	(bfd_elf32_bfd_reloc_type_lookup): Handle microMIPS ASE.
	(bfd_elf32_bfd_reloc_name_lookup): Likewise.
	(mips_elf_n32_rtype_to_howto): Likewise.
	(bfd_elf32_bfd_is_target_special_symbol): Define.
	* elfxx-mips.c (LA25_LUI_MICROMIPS_1): New macro.
	(LA25_LUI_MICROMIPS_2): Likewise.
	(LA25_J_MICROMIPS_1, LA25_J_MICROMIPS_2): Likewise.
	(LA25_ADDIU_MICROMIPS_1, LA25_ADDIU_MICROMIPS_2): Likewise.
	(TLS_RELOC_P): Handle microMIPS ASE.
	(mips_elf_create_stub_symbol): Adjust value of stub symbol if
	target is a microMIPS function.
	(micromips_reloc_p): New function.
	(micromips_reloc_shuffle_p): Likewise.
	(got16_reloc_p, call16_reloc_p): Handle microMIPS ASE.
	(got_disp_reloc_p, got_page_reloc_p): New functions.
	(got_ofst_reloc_p): Likewise.
	(got_hi16_reloc_p, got_lo16_reloc_p): Likewise.
	(call_hi16_reloc_p, call_lo16_reloc_p): Likewise.
	(hi16_reloc_p, lo16_reloc_p, jal_reloc_p): Handle microMIPS ASE.
	(micromips_branch_reloc_p): New function.
	(tls_gd_reloc_p, tls_ldm_reloc_p): Likewise.
	(tls_gottprel_reloc_p): Likewise.
	(_bfd_mips16_elf_reloc_unshuffle): Rename to...
	(_bfd_mips_elf_reloc_unshuffle): ... this.  Handle microMIPS
	ASE.
	(_bfd_mips16_elf_reloc_shuffle): Rename to...
	(_bfd_mips_elf_reloc_shuffle): ... this.  Handle microMIPS ASE.
	(_bfd_mips_elf_lo16_reloc): Handle microMIPS ASE.
	(mips_tls_got_index, mips_elf_got_page): Likewise.
	(mips_elf_create_local_got_entry): Likewise.
	(mips_elf_relocation_needs_la25_stub): Likewise.
	(mips_elf_calculate_relocation): Likewise.
	(mips_elf_perform_relocation): Likewise.
	(_bfd_mips_elf_symbol_processing): Likewise.
	(_bfd_mips_elf_add_symbol_hook): Likewise.
	(_bfd_mips_elf_link_output_symbol_hook): Likewise.
	(mips_elf_add_lo16_rel_addend): Likewise.
	(_bfd_mips_elf_check_relocs): Likewise.
	(mips_elf_adjust_addend): Likewise.
	(_bfd_mips_elf_relocate_section): Likewise.
	(mips_elf_create_la25_stub): Likewise.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_gc_sweep_hook): Likewise.
	(_bfd_mips_elf_is_target_special_symbol): New function.
	(mips_elf_relax_delete_bytes): Likewise.
	(opcode_descriptor): New structure.
	(RA): New macro.
	(OP32_SREG, OP32_TREG, OP16_VALID_REG): Likewise.
	(b_insns_32, bc_insn_32, bz_insn_32, bzal_insn_32): New variables.
	(beq_insn_32): Likewise.
	(b_insn_16, bz_insn_16): New variables.
	(BZC32_REG_FIELD): New macro.
	(bz_rs_insns_32, bz_rt_insns_32): New variables.
	(bzc_insns_32, bz_insns_16):Likewise.
	(BZ16_REG, BZ16_REG_FIELD): New macros.
	(jal_insn_32_bd16, jal_insn_32_bd32): New variables.
	(jal_x_insn_32_bd32): Likewise.
	(j_insn_32, jalr_insn_32): Likewise.
	(ds_insns_32_bd16, ds_insns_32_bd32): Likewise.
	(jalr_insn_16_bd16, jalr_insn_16_bd32, jr_insn_16): Likewise.
	(JR16_REG): New macro.
	(ds_insns_16_bd16): New variable.
	(lui_insn): Likewise.
	(addiu_insn, addiupc_insn): Likewise.
	(ADDIUPC_REG_FIELD): New macro.
	(MOVE32_RD, MOVE32_RS): Likewise.
	(MOVE16_RD_FIELD, MOVE16_RS_FIELD): Likewise.
	(move_insns_32, move_insns_16): New variables.
	(nop_insn_32, nop_insn_16): Likewise.
	(MATCH): New macro.
	(find_match): New function.
	(check_br16_dslot, check_br32_dslot): Likewise.
	(check_br16, check_br32): Likewise.
	(IS_BITSIZE): New macro.
	(check_4byte_branch): New function.
	(_bfd_mips_elf_relax_section): Likewise.
	(_bfd_mips_elf_merge_private_bfd_data): Disallow linking MIPS16
	and microMIPS modules together.
	(_bfd_mips_elf_print_private_bfd_data):	Handle microMIPS ASE.
	* reloc.c (BFD_RELOC_MICROMIPS_7_PCREL_S1): New relocation.
	(BFD_RELOC_MICROMIPS_10_PCREL_S1): Likewise.
	(BFD_RELOC_MICROMIPS_16_PCREL_S1): Likewise.
	(BFD_RELOC_MICROMIPS_GPREL16): Likewise.
	(BFD_RELOC_MICROMIPS_JMP, BFD_RELOC_MICROMIPS_HI16): Likewise.
	(BFD_RELOC_MICROMIPS_HI16_S): Likewise.
	(BFD_RELOC_MICROMIPS_LO16): Likewise.
	(BFD_RELOC_MICROMIPS_LITERAL): Likewise.
	(BFD_RELOC_MICROMIPS_GOT16): Likewise.
	(BFD_RELOC_MICROMIPS_CALL16): Likewise.
	(BFD_RELOC_MICROMIPS_GOT_HI16): Likewise.
	(BFD_RELOC_MICROMIPS_GOT_LO16): Likewise.
	(BFD_RELOC_MICROMIPS_CALL_HI16): Likewise.
	(BFD_RELOC_MICROMIPS_CALL_LO16): Likewise.
	(BFD_RELOC_MICROMIPS_SUB): Likewise.
	(BFD_RELOC_MICROMIPS_GOT_PAGE): Likewise.
	(BFD_RELOC_MICROMIPS_GOT_OFST): Likewise.
	(BFD_RELOC_MICROMIPS_GOT_DISP): Likewise.
	(BFD_RELOC_MICROMIPS_HIGHEST): Likewise.
	(BFD_RELOC_MICROMIPS_HIGHER): Likewise.
	(BFD_RELOC_MICROMIPS_SCN_DISP): Likewise.
	(BFD_RELOC_MICROMIPS_JALR): Likewise.
	(BFD_RELOC_MICROMIPS_TLS_GD): Likewise.
	(BFD_RELOC_MICROMIPS_TLS_LDM): Likewise.
	(BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16): Likewise.
	(BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16): Likewise.
	(BFD_RELOC_MICROMIPS_TLS_GOTTPREL): Likewise.
	(BFD_RELOC_MICROMIPS_TLS_TPREL_HI16): Likewise.
	(BFD_RELOC_MICROMIPS_TLS_TPREL_LO16): Likewise.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

binutils/
2011-02-25  Chao-ying Fu  <fu@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* readelf.c (get_machine_flags): Handle microMIPS ASE.
	(get_mips_symbol_other): Likewise.

gas/
2011-02-25  Maciej W. Rozycki  <macro@codesourcery.com>
            Chao-ying Fu  <fu@mips.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/tc-mips.h (mips_segment_info): Add one bit for
	microMIPS.
	(TC_LABEL_IS_LOCAL): New macro.
	(mips_label_is_local): New prototype.
	* config/tc-mips.c (S0, S7): New macros.
	(emit_branch_likely_macro): New variable.
	(mips_set_options): Add micromips.
	(mips_opts): Initialise micromips to -1.
	(file_ase_micromips): New variable.
	(CPU_HAS_MICROMIPS): New macro.
	(hilo_interlocks): Set for microMIPS too.
	(gpr_interlocks): Likewise.
	(cop_interlocks): Likewise.
	(cop_mem_interlocks): Likewise.
	(HAVE_CODE_COMPRESSION): New macro.
	(micromips_op_hash): New variable.
	(micromips_nop16_insn, micromips_nop32_insn): New variables.
	(NOP_INSN): Handle microMIPS ASE.
	(mips32_to_micromips_reg_b_map): New macro.
	(mips32_to_micromips_reg_c_map): Likewise.
	(mips32_to_micromips_reg_d_map): Likewise.
	(mips32_to_micromips_reg_e_map): Likewise.
	(mips32_to_micromips_reg_f_map): Likewise.
	(mips32_to_micromips_reg_g_map): Likewise.
	(mips32_to_micromips_reg_l_map): Likewise.
	(mips32_to_micromips_reg_n_map): Likewise.
	(mips32_to_micromips_reg_h_map): New variable.
	(mips32_to_micromips_reg_m_map): Likewise.
	(mips32_to_micromips_reg_q_map): Likewise.
	(micromips_to_32_reg_h_map): New variable.
	(micromips_to_32_reg_i_map): Likewise.
	(micromips_to_32_reg_m_map): Likewise.
	(micromips_to_32_reg_q_map): Likewise.
	(micromips_to_32_reg_b_map): New macro.
	(micromips_to_32_reg_c_map): Likewise.
	(micromips_to_32_reg_d_map): Likewise.
	(micromips_to_32_reg_e_map): Likewise.
	(micromips_to_32_reg_f_map): Likewise.
	(micromips_to_32_reg_g_map): Likewise.
	(micromips_to_32_reg_l_map): Likewise.
	(micromips_to_32_reg_n_map): Likewise.
	(micromips_imm_b_map, micromips_imm_c_map): New macros.
	(RELAX_DELAY_SLOT_16BIT): New macro.
	(RELAX_DELAY_SLOT_SIZE_FIRST): Likewise.
	(RELAX_DELAY_SLOT_SIZE_SECOND): Likewise.
	(RELAX_MICROMIPS_ENCODE, RELAX_MICROMIPS_P): New macros.
	(RELAX_MICROMIPS_TYPE, RELAX_MICROMIPS_AT): Likewise.
	(RELAX_MICROMIPS_U16BIT, RELAX_MICROMIPS_UNCOND): Likewise.
	(RELAX_MICROMIPS_COMPACT, RELAX_MICROMIPS_LINK): Likewise.
	(RELAX_MICROMIPS_RELAX32, RELAX_MICROMIPS_TOOFAR16): Likewise.
	(RELAX_MICROMIPS_MARK_TOOFAR16): Likewise.
	(RELAX_MICROMIPS_CLEAR_TOOFAR16): Likewise.
	(RELAX_MICROMIPS_TOOFAR32): Likewise.
	(RELAX_MICROMIPS_MARK_TOOFAR32): Likewise.
	(RELAX_MICROMIPS_CLEAR_TOOFAR32): Likewise.
	(INSERT_OPERAND, EXTRACT_OPERAND): Handle microMIPS ASE.
	(mips_macro_warning): Add delay_slot_16bit_p, delay_slot_32bit_p,
	fsize and insns.
	(mips_mark_labels): New function.
	(mips16_small, mips16_ext): Remove variables, replacing with...
	(forced_insn_size): ... this.
	(append_insn, mips16_ip): Update accordingly.
	(micromips_insn_length): New function.
	(insn_length): Return the length of microMIPS instructions.
	(mips_record_mips16_mode): Rename to...
	(mips_record_compressed_mode): ... this.  Handle microMIPS ASE.
	(install_insn): Handle microMIPS ASE.
	(reglist_lookup): New function.
	(is_size_valid, is_delay_slot_valid): Likewise.
	(md_begin): Handle microMIPS ASE.
	(md_assemble): Likewise.  Update for append_insn interface change.
	(micromips_reloc_p): New function.
	(got16_reloc_p): Handle microMIPS ASE.
	(hi16_reloc_p): Likewise.
	(lo16_reloc_p): Likewise.
	(jmp_reloc_p): New function.
	(jalr_reloc_p): Likewise.
	(matching_lo_reloc): Handle microMIPS ASE.
	(insn_uses_reg, reg_needs_delay): Likewise.
	(mips_move_labels): Likewise.
	(mips16_mark_labels): Rename to...
	(mips_compressed_mark_labels): ... this.  Handle microMIPS ASE.
	(gpr_mod_mask): New function.
	(gpr_read_mask, gpr_write_mask): Handle microMIPS ASE.
	(fpr_read_mask, fpr_write_mask): Likewise.
	(insns_between, nops_for_vr4130, nops_for_insn): Likewise.
	(fix_loongson2f_nop, fix_loongson2f_jump): Likewise.
	(MICROMIPS_LABEL_CHAR): New macro.
	(micromips_target_label, micromips_target_name): New variables.
	(micromips_label_name, micromips_label_expr): New functions.
	(micromips_label_inc, micromips_add_label): Likewise.
	(mips_label_is_local): Likewise.
	(micromips_map_reloc): Likewise.
	(can_swap_branch_p): Handle microMIPS ASE.
	(append_insn): Add expansionp argument.  Handle microMIPS ASE.
	(start_noreorder, end_noreorder): Handle microMIPS ASE.
	(macro_start, macro_warning, macro_end): Likewise.
	(brk_fmt, cop12_fmt, jalr_fmt, lui_fmt): New variables.
	(mem12_fmt, mfhl_fmt, shft_fmt, trap_fmt): Likewise.
	(BRK_FMT, COP12_FMT, JALR_FMT, LUI_FMT): New macros.
	(MEM12_FMT, MFHL_FMT, SHFT_FMT, TRAP_FMT): Likewise.
	(macro_build): Handle microMIPS ASE.  Update for append_insn
	interface change.
	(mips16_macro_build): Update for append_insn interface change.
	(macro_build_jalr): Handle microMIPS ASE.
	(macro_build_lui): Likewise.  Simplify.
	(load_register): Handle microMIPS ASE.
	(load_address): Likewise.
	(move_register): Likewise.
	(macro_build_branch_likely): New function.
	(macro_build_branch_ccl): Likewise.
	(macro_build_branch_rs): Likewise.
	(macro_build_branch_rsrt): Likewise.
	(macro): Handle microMIPS ASE.
	(validate_micromips_insn): New function.
	(expr_const_in_range): Likewise.
	(mips_ip): Handle microMIPS ASE.
	(options): Add OPTION_MICROMIPS and OPTION_NO_MICROMIPS.
	(md_longopts): Add mmicromips and mno-micromips.
	(md_parse_option): Handle OPTION_MICROMIPS and
	OPTION_NO_MICROMIPS.
	(mips_after_parse_args): Handle microMIPS ASE.
	(md_pcrel_from): Handle microMIPS relocations.
	(mips_force_relocation): Likewise.
	(md_apply_fix): Likewise.
	(mips_align): Handle microMIPS ASE.
	(s_mipsset): Likewise.
	(s_cpload, s_cpsetup, s_cpreturn): Use relocation wrappers.
	(s_dtprel_internal): Likewise.
	(s_gpword, s_gpdword): Likewise.
	(s_insn): Handle microMIPS ASE.
	(s_mips_stab): Likewise.
	(relaxed_micromips_32bit_branch_length): New function.
	(relaxed_micromips_16bit_branch_length): New function.
	(md_estimate_size_before_relax): Handle microMIPS ASE.
	(mips_fix_adjustable): Likewise.
	(tc_gen_reloc): Handle microMIPS relocations.
	(mips_relax_frag): Handle microMIPS ASE.
	(md_convert_frag): Likewise.
	(mips_frob_file_after_relocs): Likewise.
	(mips_elf_final_processing): Likewise.
	(mips_nop_opcode): Likewise.
	(mips_handle_align): Likewise.
	(md_show_usage): Handle microMIPS options.
	* symbols.c (TC_LABEL_IS_LOCAL): New macro.
	(S_IS_LOCAL): Add a TC_LABEL_IS_LOCAL check.

	* doc/as.texinfo (Target MIPS options): Add -mmicromips and
	-mno-micromips.
	(-mmicromips, -mno-micromips): New options.
	* doc/c-mips.texi (-mmicromips, -mno-micromips): New options.
	(MIPS ISA): Document .set micromips and .set nomicromips.
	(MIPS insn): Update for microMIPS support.

gas/testsuite/
2011-02-25  Maciej W. Rozycki  <macro@codesourcery.com>
            Chao-ying Fu  <fu@mips.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* gas/mips/micromips.d: New test.
	* gas/mips/micromips-branch-delay.d: Likewise.
	* gas/mips/micromips-branch-relax.d: Likewise.
	* gas/mips/micromips-branch-relax-pic.d: Likewise.
	* gas/mips/micromips-size-1.d: Likewise.
	* gas/mips/micromips-trap.d: Likewise.
	* gas/mips/micromips.l: New stderr output.
	* gas/mips/micromips-branch-delay.l: Likewise.
	* gas/mips/micromips-branch-relax.l: Likewise.
	* gas/mips/micromips-branch-relax-pic.l: Likewise.
	* gas/mips/micromips-size-0.l: New list test.
	* gas/mips/micromips-size-1.l: New stderr output.
	* gas/mips/micromips.s: New test source.
	* gas/mips/micromips-branch-delay.s: Likewise.
	* gas/mips/micromips-branch-relax.s: Likewise.
	* gas/mips/micromips-size-0.s: Likewise.
	* gas/mips/micromips-size-1.s: Likewise.
	* gas/mips/mips.exp: Run the new tests.

	* gas/mips/dli.s: Use .p2align.
	* gas/mips/elf_ase_micromips.d: New test.
	* gas/mips/elf_ase_micromips-2.d: Likewise.
	* gas/mips/micromips@abs.d: Likewise.
	* gas/mips/micromips@add.d: Likewise.
	* gas/mips/micromips@alnv_ps-swap.d: Likewise.
	* gas/mips/micromips@and.d: Likewise.
	* gas/mips/micromips@beq.d: Likewise.
	* gas/mips/micromips@bge.d: Likewise.
	* gas/mips/micromips@bgeu.d: Likewise.
	* gas/mips/micromips@blt.d: Likewise.
	* gas/mips/micromips@bltu.d: Likewise.
	* gas/mips/micromips@branch-likely.d: Likewise.
	* gas/mips/micromips@branch-misc-1.d: Likewise.
	* gas/mips/micromips@branch-misc-2-64.d: Likewise.
	* gas/mips/micromips@branch-misc-2.d: Likewise.
	* gas/mips/micromips@branch-misc-2pic-64.d: Likewise.
	* gas/mips/micromips@branch-misc-2pic.d: Likewise.
	* gas/mips/micromips@branch-misc-4-64.d: Likewise.
	* gas/mips/micromips@branch-misc-4.d: Likewise.
	* gas/mips/micromips@branch-self.d: Likewise.
	* gas/mips/micromips@cache.d: Likewise.
	* gas/mips/micromips@daddi.d: Likewise.
	* gas/mips/micromips@dli.d: Likewise.
	* gas/mips/micromips@elf-jal.d: Likewise.
	* gas/mips/micromips@elf-rel2.d: Likewise.
	* gas/mips/micromips@elfel-rel2.d: Likewise.
	* gas/mips/micromips@elf-rel4.d: Likewise.
	* gas/mips/micromips@jal-svr4pic.d: Likewise.
	* gas/mips/micromips@jal-svr4pic-noreorder.d: Likewise.
	* gas/mips/micromips@lb-svr4pic-ilocks.d: Likewise.
	* gas/mips/micromips@li.d: Likewise.
	* gas/mips/micromips@loc-swap-dis.d: Likewise.
	* gas/mips/micromips@loc-swap.d: Likewise.
	* gas/mips/micromips@mips1-fp.d: Likewise.
	* gas/mips/micromips@mips32-cp2.d: Likewise.
	* gas/mips/micromips@mips32-imm.d: Likewise.
	* gas/mips/micromips@mips32-sf32.d: Likewise.
	* gas/mips/micromips@mips32.d: Likewise.
	* gas/mips/micromips@mips32r2-cp2.d: Likewise.
	* gas/mips/micromips@mips32r2-fp32.d: Likewise.
	* gas/mips/micromips@mips32r2-sync.d: Likewise.
	* gas/mips/micromips@mips32r2.d: Likewise.
	* gas/mips/micromips@mips4-branch-likely.d: Likewise.
	* gas/mips/micromips@mips4-fp.d: Likewise.
	* gas/mips/micromips@mips4.d: Likewise.
	* gas/mips/micromips@mips5.d: Likewise.
	* gas/mips/micromips@mips64-cp2.d: Likewise.
	* gas/mips/micromips@mips64.d: Likewise.
	* gas/mips/micromips@mips64r2.d: Likewise.
	* gas/mips/micromips@pref.d: Likewise.
	* gas/mips/micromips@relax-at.d: Likewise.
	* gas/mips/micromips@relax.d: Likewise.
	* gas/mips/micromips@rol-hw.d: Likewise.
	* gas/mips/micromips@uld2-eb.d: Likewise.
	* gas/mips/micromips@uld2-el.d: Likewise.
	* gas/mips/micromips@ulh2-eb.d: Likewise.
	* gas/mips/micromips@ulh2-el.d: Likewise.
	* gas/mips/micromips@ulw2-eb-ilocks.d: Likewise.
	* gas/mips/micromips@ulw2-el-ilocks.d: Likewise.
	* gas/mips/cache.d: Likewise.
	* gas/mips/daddi.d: Likewise.
	* gas/mips/mips32-imm.d: Likewise.
	* gas/mips/pref.d: Likewise.
	* gas/mips/elf-rel27.d: Handle microMIPS ASE.
	* gas/mips/l_d.d: Likewise.
	* gas/mips/l_d-n32.d: Likewise.
	* gas/mips/l_d-n64.d: Likewise.
	* gas/mips/ld.d: Likewise.
	* gas/mips/ld-n32.d: Likewise.
	* gas/mips/ld-n64.d: Likewise.
	* gas/mips/s_d.d: Likewise.
	* gas/mips/s_d-n32.d: Likewise.
	* gas/mips/s_d-n64.d: Likewise.
	* gas/mips/sd.d: Likewise.
	* gas/mips/sd-n32.d: Likewise.
	* gas/mips/sd-n64.d: Likewise.
	* gas/mips/mips32.d: Update immediates.
	* gas/mips/micromips@mips32-cp2.s: New test source.
	* gas/mips/micromips@mips32-imm.s: Likewise.
	* gas/mips/micromips@mips32r2-cp2.s: Likewise.
	* gas/mips/micromips@mips64-cp2.s: Likewise.
	* gas/mips/cache.s: Likewise.
	* gas/mips/daddi.s: Likewise.
	* gas/mips/mips32-imm.s: Likewise.
	* gas/mips/elf-rel4.s: Handle microMIPS ASE.
	* gas/mips/lb-pic.s: Likewise.
	* gas/mips/ld.s: Likewise.
	* gas/mips/mips32.s: Likewise.
	* gas/mips/mips.exp: Add the micromips arch.  Exclude mips16e
	from micromips.  Run mips32-imm.

	* gas/mips/jal-mask-11.d: New test.
	* gas/mips/jal-mask-12.d: Likewise.
	* gas/mips/micromips@jal-mask-11.d: Likewise.
	* gas/mips/jal-mask-1.s: Source for the new tests.
	* gas/mips/jal-mask-21.d: New test.
	* gas/mips/jal-mask-22.d: Likewise.
	* gas/mips/micromips@jal-mask-12.d: Likewise.
	* gas/mips/jal-mask-2.s: Source for the new tests.
	* gas/mips/mips.exp: Run the new tests.

	* gas/mips/mips16-e.d: Add --special-syms to `objdump'.
	* gas/mips/tmips16-e.d: Likewise.
	* gas/mips/mipsel16-e.d: Likewise.
	* gas/mips/tmipsel16-e.d: Likewise.

	* gas/mips/and.s: Adjust padding.
	* gas/mips/beq.s: Likewise.
	* gas/mips/bge.s: Likewise.
	* gas/mips/bgeu.s: Likewise.
	* gas/mips/blt.s: Likewise.
	* gas/mips/bltu.s: Likewise.
	* gas/mips/branch-misc-2.s: Likewise.
	* gas/mips/jal.s: Likewise.
	* gas/mips/li.s: Likewise.
	* gas/mips/mips4.s: Likewise.
	* gas/mips/mips4-fp.s: Likewise.
	* gas/mips/relax.s: Likewise.
	* gas/mips/and.d: Update accordingly.
	* gas/mips/elf-jal.d: Likewise.
	* gas/mips/jal.d: Likewise.
	* gas/mips/li.d: Likewise.
	* gas/mips/relax-at.d: Likewise.
	* gas/mips/relax.d: Likewise.

include/elf/
2011-02-25  Chao-ying Fu  <fu@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* mips.h (R_MICROMIPS_min): New relocations.
	(R_MICROMIPS_26_S1): Likewise.
	(R_MICROMIPS_HI16, R_MICROMIPS_LO16): Likewise.
	(R_MICROMIPS_GPREL16, R_MICROMIPS_LITERAL): Likewise.
	(R_MICROMIPS_GOT16, R_MICROMIPS_PC7_S1): Likewise.
	(R_MICROMIPS_PC10_S1, R_MICROMIPS_PC16_S1): Likewise.
	(R_MICROMIPS_CALL16, R_MICROMIPS_GOT_DISP): Likewise.
	(R_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_OFST): Likewise.
	(R_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_LO16): Likewise.
	(R_MICROMIPS_SUB, R_MICROMIPS_HIGHER): Likewise.
	(R_MICROMIPS_HIGHEST, R_MICROMIPS_CALL_HI16): Likewise.
	(R_MICROMIPS_CALL_LO16, R_MICROMIPS_SCN_DISP): Likewise.
	(R_MICROMIPS_JALR, R_MICROMIPS_HI0_LO16): Likewise.
	(R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM): Likewise.
	(R_MICROMIPS_TLS_DTPREL_HI, R_MICROMIPS_TLS_DTPREL_LO): Likewise.
	(R_MICROMIPS_TLS_GOTTPREL): Likewise.
	(R_MICROMIPS_TLS_TPREL_HI16): Likewise.
	(R_MICROMIPS_TLS_TPREL_LO16): Likewise.
	(R_MICROMIPS_GPREL7_S2, R_MICROMIPS_PC23_S2): Likewise.
	(R_MICROMIPS_max): Likewise.
	(EF_MIPS_ARCH_ASE_MICROMIPS): New macro.
	(STO_MIPS_ISA, STO_MIPS_FLAGS): Likewise.
	(ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT): Likewise.
	(STO_MICROMIPS): Likewise.
	(ELF_ST_IS_MICROMIPS, ELF_ST_SET_MICROMIPS): Likewise.
	(ELF_ST_IS_COMPRESSED): Likewise.
	(STO_MIPS_PLT, STO_MIPS_PIC): Rework.
	(ELF_ST_IS_MIPS_PIC, ELF_ST_SET_MIPS_PIC): Likewise.
	(STO_MIPS16, ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): Likewise.

include/opcode/
2011-02-25  Chao-ying Fu  <fu@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* mips.h (OP_MASK_EXTLSB, OP_SH_EXTLSB): New macros.
	(OP_MASK_STYPE, OP_SH_STYPE): Likewise.
	(OP_MASK_CODE10, OP_SH_CODE10): Likewise.
	(OP_MASK_TRAP, OP_SH_TRAP): Likewise.
	(OP_MASK_OFFSET12, OP_SH_OFFSET12): Likewise.
	(OP_MASK_OFFSET10, OP_SH_OFFSET10): Likewise.
	(OP_MASK_RS3, OP_SH_RS3): Likewise.
	(OP_MASK_MB, OP_SH_MB, OP_MASK_MC, OP_SH_MC): Likewise.
	(OP_MASK_MD, OP_SH_MD, OP_MASK_ME, OP_SH_ME): Likewise.
	(OP_MASK_MF, OP_SH_MF, OP_MASK_MG, OP_SH_MG): Likewise.
	(OP_MASK_MJ, OP_SH_MJ, OP_MASK_ML, OP_SH_ML): Likewise.
	(OP_MASK_MP, OP_SH_MP, OP_MASK_MQ, OP_SH_MQ): Likewise.
	(OP_MASK_IMMA, OP_SH_IMMA, OP_MASK_IMMB, OP_SH_IMMB): Likewise.
	(OP_MASK_IMMC, OP_SH_IMMC, OP_MASK_IMMF, OP_SH_IMMF): Likewise.
	(OP_MASK_IMMG, OP_SH_IMMG, OP_MASK_IMMH, OP_SH_IMMH): Likewise.
	(OP_MASK_IMMI, OP_SH_IMMI, OP_MASK_IMMJ, OP_SH_IMMJ): Likewise.
	(OP_MASK_IMML, OP_SH_IMML, OP_MASK_IMMM, OP_SH_IMMM): Likewise.
	(OP_MASK_IMMN, OP_SH_IMMN, OP_MASK_IMMO, OP_SH_IMMO): Likewise.
	(OP_MASK_IMMP, OP_SH_IMMP, OP_MASK_IMMQ, OP_SH_IMMQ): Likewise.
	(OP_MASK_IMMU, OP_SH_IMMU, OP_MASK_IMMW, OP_SH_IMMW): Likewise.
	(OP_MASK_IMMX, OP_SH_IMMX, OP_MASK_IMMY, OP_SH_IMMY): Likewise.
	(INSN_WRITE_GPR_S): New macro.
	(INSN2_BRANCH_DELAY_16BIT, INSN2_BRANCH_DELAY_32BIT): Likewise.
	(INSN2_READ_FPR_D): Likewise.
	(INSN2_MOD_GPR_MB, INSN2_MOD_GPR_MC): Likewise.
	(INSN2_MOD_GPR_MD, INSN2_MOD_GPR_ME): Likewise.
	(INSN2_MOD_GPR_MF, INSN2_MOD_GPR_MG): Likewise.
	(INSN2_MOD_GPR_MJ, INSN2_MOD_GPR_MP): Likewise.
	(INSN2_MOD_GPR_MQ, INSN2_MOD_SP): Likewise.
	(INSN2_READ_GPR_31, INSN2_READ_GP, INSN2_READ_PC): Likewise.
	(INSN2_UNCOND_BRANCH, INSN2_COND_BRANCH): Likewise.
	(INSN2_MOD_GPR_MHI, INSN2_MOD_GPR_MM, INSN2_MOD_GPR_MN): Likewise.
	(CPU_MICROMIPS): New macro.
	(M_BC1FL, M_BC1TL, M_BC2FL, M_BC2TL): New enum values.
	(M_BEQL, M_BGEZ, M_BGEZL, M_BGEZALL, M_BGTZ, M_BGTZL): Likewise.
	(M_BLEZ, M_BLEZL, M_BLTZ, M_BLTZL, M_BLTZALL, M_BNEL): Likewise.
	(M_CACHE_OB, M_JALS_1, M_JALS_2, M_JALS_A): Likewise.
	(M_LDC2_OB, M_LDL_OB, M_LDM_AB, M_LDM_OB): Likewise.
	(M_LDP_AB, M_LDP_OB, M_LDR_OB, M_LL_OB, M_LLD_OB): Likewise.
	(M_LWC2_OB, M_LWL_OB, M_LWM_AB, M_LWM_OB): Likewise.
	(M_LWP_AB, M_LWP_OB, M_LWR_OB): Likewise.
	(M_LWU_OB, M_PREF_OB, M_SC_OB, M_SCD_OB): Likewise.
	(M_SDC2_OB, M_SDL_OB, M_SDM_AB, M_SDM_OB): Likewise.
	(M_SDP_AB, M_SDP_OB, M_SDR_OB): Likewise.
	(M_SWC2_OB, M_SWL_OB, M_SWM_AB, M_SWM_OB): Likewise.
	(M_SWP_AB, M_SWP_OB, M_SWR_OB): Likewise.
	(MICROMIPSOP_MASK_MAJOR, MICROMIPSOP_SH_MAJOR): New macros.
	(MICROMIPSOP_MASK_IMMEDIATE, MICROMIPSOP_SH_IMMEDIATE): Likewise.
	(MICROMIPSOP_MASK_DELTA, MICROMIPSOP_SH_DELTA): Likewise.
	(MICROMIPSOP_MASK_CODE10, MICROMIPSOP_SH_CODE10): Likewise.
	(MICROMIPSOP_MASK_TRAP, MICROMIPSOP_SH_TRAP): Likewise.
	(MICROMIPSOP_MASK_SHAMT, MICROMIPSOP_SH_SHAMT): Likewise.
	(MICROMIPSOP_MASK_TARGET, MICROMIPSOP_SH_TARGET): Likewise.
	(MICROMIPSOP_MASK_EXTLSB, MICROMIPSOP_SH_EXTLSB): Likewise.
	(MICROMIPSOP_MASK_EXTMSBD, MICROMIPSOP_SH_EXTMSBD): Likewise.
	(MICROMIPSOP_MASK_INSMSB, MICROMIPSOP_SH_INSMSB): Likewise.
	(MICROMIPSOP_MASK_CODE, MICROMIPSOP_SH_CODE): Likewise.
	(MICROMIPSOP_MASK_CODE2, MICROMIPSOP_SH_CODE2): Likewise.
	(MICROMIPSOP_MASK_CACHE, MICROMIPSOP_SH_CACHE): Likewise.
	(MICROMIPSOP_MASK_SEL, MICROMIPSOP_SH_SEL): Likewise.
	(MICROMIPSOP_MASK_OFFSET12, MICROMIPSOP_SH_OFFSET12): Likewise.
	(MICROMIPSOP_MASK_3BITPOS, MICROMIPSOP_SH_3BITPOS): Likewise.
	(MICROMIPSOP_MASK_STYPE, MICROMIPSOP_SH_STYPE): Likewise.
	(MICROMIPSOP_MASK_OFFSET10, MICROMIPSOP_SH_OFFSET10): Likewise.
	(MICROMIPSOP_MASK_RS, MICROMIPSOP_SH_RS): Likewise.
	(MICROMIPSOP_MASK_RT, MICROMIPSOP_SH_RT): Likewise.
	(MICROMIPSOP_MASK_RD, MICROMIPSOP_SH_RD): Likewise.
	(MICROMIPSOP_MASK_FS, MICROMIPSOP_SH_FS): Likewise.
	(MICROMIPSOP_MASK_FT, MICROMIPSOP_SH_FT): Likewise.
	(MICROMIPSOP_MASK_FD, MICROMIPSOP_SH_FD): Likewise.
	(MICROMIPSOP_MASK_FR, MICROMIPSOP_SH_FR): Likewise.
	(MICROMIPSOP_MASK_RS3, MICROMIPSOP_SH_RS3): Likewise.
	(MICROMIPSOP_MASK_PREFX, MICROMIPSOP_SH_PREFX): Likewise.
	(MICROMIPSOP_MASK_BCC, MICROMIPSOP_SH_BCC): Likewise.
	(MICROMIPSOP_MASK_CCC, MICROMIPSOP_SH_CCC): Likewise.
	(MICROMIPSOP_MASK_COPZ, MICROMIPSOP_SH_COPZ): Likewise.
	(MICROMIPSOP_MASK_MB, MICROMIPSOP_SH_MB): Likewise.
	(MICROMIPSOP_MASK_MC, MICROMIPSOP_SH_MC): Likewise.
	(MICROMIPSOP_MASK_MD, MICROMIPSOP_SH_MD): Likewise.
	(MICROMIPSOP_MASK_ME, MICROMIPSOP_SH_ME): Likewise.
	(MICROMIPSOP_MASK_MF, MICROMIPSOP_SH_MF): Likewise.
	(MICROMIPSOP_MASK_MG, MICROMIPSOP_SH_MG): Likewise.
	(MICROMIPSOP_MASK_MH, MICROMIPSOP_SH_MH): Likewise.
	(MICROMIPSOP_MASK_MI, MICROMIPSOP_SH_MI): Likewise.
	(MICROMIPSOP_MASK_MJ, MICROMIPSOP_SH_MJ): Likewise.
	(MICROMIPSOP_MASK_ML, MICROMIPSOP_SH_ML): Likewise.
	(MICROMIPSOP_MASK_MM, MICROMIPSOP_SH_MM): Likewise.
	(MICROMIPSOP_MASK_MN, MICROMIPSOP_SH_MN): Likewise.
	(MICROMIPSOP_MASK_MP, MICROMIPSOP_SH_MP): Likewise.
	(MICROMIPSOP_MASK_MQ, MICROMIPSOP_SH_MQ): Likewise.
	(MICROMIPSOP_MASK_IMMA, MICROMIPSOP_SH_IMMA): Likewise.
	(MICROMIPSOP_MASK_IMMB, MICROMIPSOP_SH_IMMB): Likewise.
	(MICROMIPSOP_MASK_IMMC, MICROMIPSOP_SH_IMMC): Likewise.
	(MICROMIPSOP_MASK_IMMD, MICROMIPSOP_SH_IMMD): Likewise.
	(MICROMIPSOP_MASK_IMME, MICROMIPSOP_SH_IMME): Likewise.
	(MICROMIPSOP_MASK_IMMF, MICROMIPSOP_SH_IMMF): Likewise.
	(MICROMIPSOP_MASK_IMMG, MICROMIPSOP_SH_IMMG): Likewise.
	(MICROMIPSOP_MASK_IMMH, MICROMIPSOP_SH_IMMH): Likewise.
	(MICROMIPSOP_MASK_IMMI, MICROMIPSOP_SH_IMMI): Likewise.
	(MICROMIPSOP_MASK_IMMJ, MICROMIPSOP_SH_IMMJ): Likewise.
	(MICROMIPSOP_MASK_IMML, MICROMIPSOP_SH_IMML): Likewise.
	(MICROMIPSOP_MASK_IMMM, MICROMIPSOP_SH_IMMM): Likewise.
	(MICROMIPSOP_MASK_IMMN, MICROMIPSOP_SH_IMMN): Likewise.
	(MICROMIPSOP_MASK_IMMO, MICROMIPSOP_SH_IMMO): Likewise.
	(MICROMIPSOP_MASK_IMMP, MICROMIPSOP_SH_IMMP): Likewise.
	(MICROMIPSOP_MASK_IMMQ, MICROMIPSOP_SH_IMMQ): Likewise.
	(MICROMIPSOP_MASK_IMMU, MICROMIPSOP_SH_IMMU): Likewise.
	(MICROMIPSOP_MASK_IMMW, MICROMIPSOP_SH_IMMW): Likewise.
	(MICROMIPSOP_MASK_IMMX, MICROMIPSOP_SH_IMMX): Likewise.
	(MICROMIPSOP_MASK_IMMY, MICROMIPSOP_SH_IMMY): Likewise.
	(MICROMIPSOP_MASK_CODE, MICROMIPSOP_SH_CODE): Likewise.
	(MICROMIPSOP_MASK_CODE2, MICROMIPSOP_SH_CODE2): Likewise.
	(MICROMIPSOP_MASK_CACHE, MICROMIPSOP_SH_CACHE): Likewise.
	(MICROMIPSOP_MASK_CODE20, MICROMIPSOP_SH_CODE20): Likewise.
	(MICROMIPSOP_MASK_PERFREG, MICROMIPSOP_SH_PERFREG): Likewise.
	(MICROMIPSOP_MASK_CODE19, MICROMIPSOP_SH_CODE19): Likewise.
	(MICROMIPSOP_MASK_ALN, MICROMIPSOP_SH_ALN): Likewise.
	(MICROMIPSOP_MASK_VECBYTE, MICROMIPSOP_SH_VECBYTE): Likewise.
	(MICROMIPSOP_MASK_VECALIGN, MICROMIPSOP_SH_VECALIGN): Likewise.
	(MICROMIPSOP_MASK_DSPACC, MICROMIPSOP_SH_DSPACC): Likewise.
	(MICROMIPSOP_MASK_DSPACC_S, MICROMIPSOP_SH_DSPACC_S): Likewise.
	(MICROMIPSOP_MASK_DSPSFT, MICROMIPSOP_SH_DSPSFT): Likewise.
	(MICROMIPSOP_MASK_DSPSFT_7, MICROMIPSOP_SH_DSPSFT_7): Likewise.
	(MICROMIPSOP_MASK_SA3, MICROMIPSOP_SH_SA3): Likewise.
	(MICROMIPSOP_MASK_SA4, MICROMIPSOP_SH_SA4): Likewise.
	(MICROMIPSOP_MASK_IMM8, MICROMIPSOP_SH_IMM8): Likewise.
	(MICROMIPSOP_MASK_IMM10, MICROMIPSOP_SH_IMM10): Likewise.
	(MICROMIPSOP_MASK_WRDSP, MICROMIPSOP_SH_WRDSP): Likewise.
	(MICROMIPSOP_MASK_RDDSP, MICROMIPSOP_SH_RDDSP): Likewise.
	(MICROMIPSOP_MASK_BP, MICROMIPSOP_SH_BP): Likewise.
	(MICROMIPSOP_MASK_MT_U, MICROMIPSOP_SH_MT_U): Likewise.
	(MICROMIPSOP_MASK_MT_H, MICROMIPSOP_SH_MT_H): Likewise.
	(MICROMIPSOP_MASK_MTACC_T, MICROMIPSOP_SH_MTACC_T): Likewise.
	(MICROMIPSOP_MASK_MTACC_D, MICROMIPSOP_SH_MTACC_D): Likewise.
	(MICROMIPSOP_MASK_BBITIND, MICROMIPSOP_SH_BBITIND): Likewise.
	(MICROMIPSOP_MASK_CINSPOS, MICROMIPSOP_SH_CINSPOS): Likewise.
	(MICROMIPSOP_MASK_CINSLM1, MICROMIPSOP_SH_CINSLM1): Likewise.
	(MICROMIPSOP_MASK_SEQI, MICROMIPSOP_SH_SEQI): Likewise.
	(micromips_opcodes): New declaration.
	(bfd_micromips_num_opcodes): Likewise.

ld/testsuite/
2011-02-25  Catherine Moore  <clm@codesourcery.com>
            Chao-ying Fu  <fu@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* lib/ld-lib.exp (run_dump_test): Support distinct assembler
	flags for the same source named multiple times.
	* ld-mips-elf/jalx-1.s: New test source.
	* ld-mips-elf/jalx-1.d: New test output.
	* ld-mips-elf/jalx-1.ld: New test linker script.
	* ld-mips-elf/jalx-2-main.s: New test source.
	* ld-mips-elf/jalx-2-ex.s: Likewise.
	* ld-mips-elf/jalx-2-printf.s: Likewise.
	* ld-mips-elf/jalx-2.dd: New test output.
	* ld-mips-elf/jalx-2.ld: New test linker script.
	* ld-mips-elf/mips16-and-micromips.d: New test.
	* ld-mips-elf/mips-elf.exp: Run the new tests

opcodes/
2011-02-25  Chao-ying Fu  <fu@mips.com>
            Maciej W. Rozycki  <macro@codesourcery.com>

	* micromips-opc.c: New file.
	* mips-dis.c (micromips_to_32_reg_b_map): New array.
	(micromips_to_32_reg_c_map, micromips_to_32_reg_d_map): Likewise.
	(micromips_to_32_reg_e_map, micromips_to_32_reg_f_map): Likewise.
	(micromips_to_32_reg_g_map, micromips_to_32_reg_l_map): Likewise.
	(micromips_to_32_reg_q_map): Likewise.
	(micromips_imm_b_map, micromips_imm_c_map): Likewise.
	(micromips_ase): New variable.
	(is_micromips): New function.
	(set_default_mips_dis_options): Handle microMIPS ASE.
	(print_insn_micromips): New function.
	(is_compressed_mode_p): Likewise.
	(_print_insn_mips): Handle microMIPS instructions.
	* Makefile.am (CFILES): Add micromips-opc.c.
	* configure.in (bfd_mips_arch): Add micromips-opc.lo.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

	* mips-dis.c (micromips_to_32_reg_h_map): New variable.
	(micromips_to_32_reg_i_map): Likewise.
	(micromips_to_32_reg_m_map): Likewise.
	(micromips_to_32_reg_n_map): New macro.
This commit is contained in:
Richard Sandiford 2011-07-24 14:20:15 +00:00
parent a40bc9dd42
commit df58fc944d
180 changed files with 41118 additions and 3805 deletions

View file

@ -1,3 +1,159 @@
2011-07-24 Chao-ying Fu <fu@mips.com>
Ilie Garbacea <ilie@mips.com>
Maciej W. Rozycki <macro@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Catherine Moore <clm@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* archures.c (bfd_mach_mips_micromips): New macro.
* cpu-mips.c (I_micromips): New enum value.
(arch_info_struct): Add bfd_mach_mips_micromips.
* elfxx-mips.h (_bfd_mips_elf_is_target_special_symbol): New
prototype.
(_bfd_mips_elf_relax_section): Likewise.
(_bfd_mips16_elf_reloc_unshuffle): Rename to...
(_bfd_mips_elf_reloc_unshuffle): ... this. Handle microMIPS
ASE.
(_bfd_mips16_elf_reloc_shuffle): Rename to...
(_bfd_mips_elf_reloc_shuffle): ... this. Handle microMIPS ASE.
(gprel16_reloc_p): Handle microMIPS ASE.
(literal_reloc_p): New function.
* elf32-mips.c (elf_micromips_howto_table_rel): New variable.
(_bfd_mips_elf32_gprel16_reloc): Handle microMIPS ASE.
(mips16_gprel_reloc): Update for _bfd_mips_elf_reloc_unshuffle
and _bfd_mips_elf_reloc_shuffle changes.
(mips_elf_gprel32_reloc): Update comment.
(micromips_reloc_map): New variable.
(bfd_elf32_bfd_reloc_type_lookup): Handle microMIPS ASE.
(mips_elf32_rtype_to_howto): Likewise.
(mips_info_to_howto_rel): Likewise.
(bfd_elf32_bfd_is_target_special_symbol): Define.
(bfd_elf32_bfd_relax_section): Likewise.
* elf64-mips.c (micromips_elf64_howto_table_rel): New variable.
(micromips_elf64_howto_table_rela): Likewise.
(mips16_gprel_reloc): Update for _bfd_mips_elf_reloc_unshuffle
and _bfd_mips_elf_reloc_shuffle changes.
(micromips_reloc_map): Likewise.
(bfd_elf64_bfd_reloc_type_lookup): Handle microMIPS ASE.
(bfd_elf64_bfd_reloc_name_lookup): Likewise.
(mips_elf64_rtype_to_howto): Likewise.
(bfd_elf64_bfd_is_target_special_symbol): Define.
* elfn32-mips.c (elf_micromips_howto_table_rel): New variable.
(elf_micromips_howto_table_rela): Likewise.
(mips16_gprel_reloc): Update for _bfd_mips_elf_reloc_unshuffle
and _bfd_mips_elf_reloc_shuffle changes.
(micromips_reloc_map): Likewise.
(bfd_elf32_bfd_reloc_type_lookup): Handle microMIPS ASE.
(bfd_elf32_bfd_reloc_name_lookup): Likewise.
(mips_elf_n32_rtype_to_howto): Likewise.
(bfd_elf32_bfd_is_target_special_symbol): Define.
* elfxx-mips.c (LA25_LUI_MICROMIPS_1): New macro.
(LA25_LUI_MICROMIPS_2): Likewise.
(LA25_J_MICROMIPS_1, LA25_J_MICROMIPS_2): Likewise.
(LA25_ADDIU_MICROMIPS_1, LA25_ADDIU_MICROMIPS_2): Likewise.
(TLS_RELOC_P): Handle microMIPS ASE.
(mips_elf_create_stub_symbol): Adjust value of stub symbol if
target is a microMIPS function.
(micromips_reloc_p): New function.
(micromips_reloc_shuffle_p): Likewise.
(got16_reloc_p, call16_reloc_p): Handle microMIPS ASE.
(got_disp_reloc_p, got_page_reloc_p): New functions.
(got_ofst_reloc_p): Likewise.
(got_hi16_reloc_p, got_lo16_reloc_p): Likewise.
(call_hi16_reloc_p, call_lo16_reloc_p): Likewise.
(hi16_reloc_p, lo16_reloc_p, jal_reloc_p): Handle microMIPS ASE.
(micromips_branch_reloc_p): New function.
(tls_gd_reloc_p, tls_ldm_reloc_p): Likewise.
(tls_gottprel_reloc_p): Likewise.
(_bfd_mips16_elf_reloc_unshuffle): Rename to...
(_bfd_mips_elf_reloc_unshuffle): ... this. Handle microMIPS
ASE.
(_bfd_mips16_elf_reloc_shuffle): Rename to...
(_bfd_mips_elf_reloc_shuffle): ... this. Handle microMIPS ASE.
(_bfd_mips_elf_lo16_reloc): Handle microMIPS ASE.
(mips_tls_got_index, mips_elf_got_page): Likewise.
(mips_elf_create_local_got_entry): Likewise.
(mips_elf_relocation_needs_la25_stub): Likewise.
(mips_elf_calculate_relocation): Likewise.
(mips_elf_perform_relocation): Likewise.
(_bfd_mips_elf_symbol_processing): Likewise.
(_bfd_mips_elf_add_symbol_hook): Likewise.
(_bfd_mips_elf_link_output_symbol_hook): Likewise.
(mips_elf_add_lo16_rel_addend): Likewise.
(_bfd_mips_elf_check_relocs): Likewise.
(mips_elf_adjust_addend): Likewise.
(_bfd_mips_elf_relocate_section): Likewise.
(mips_elf_create_la25_stub): Likewise.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
(_bfd_mips_elf_gc_sweep_hook): Likewise.
(_bfd_mips_elf_is_target_special_symbol): New function.
(mips_elf_relax_delete_bytes): Likewise.
(opcode_descriptor): New structure.
(RA): New macro.
(OP32_SREG, OP32_TREG, OP16_VALID_REG): Likewise.
(b_insns_32, bc_insn_32, bz_insn_32, bzal_insn_32): New variables.
(beq_insn_32): Likewise.
(b_insn_16, bz_insn_16): New variables.
(BZC32_REG_FIELD): New macro.
(bz_rs_insns_32, bz_rt_insns_32): New variables.
(bzc_insns_32, bz_insns_16):Likewise.
(BZ16_REG, BZ16_REG_FIELD): New macros.
(jal_insn_32_bd16, jal_insn_32_bd32): New variables.
(jal_x_insn_32_bd32): Likewise.
(j_insn_32, jalr_insn_32): Likewise.
(ds_insns_32_bd16, ds_insns_32_bd32): Likewise.
(jalr_insn_16_bd16, jalr_insn_16_bd32, jr_insn_16): Likewise.
(JR16_REG): New macro.
(ds_insns_16_bd16): New variable.
(lui_insn): Likewise.
(addiu_insn, addiupc_insn): Likewise.
(ADDIUPC_REG_FIELD): New macro.
(MOVE32_RD, MOVE32_RS): Likewise.
(MOVE16_RD_FIELD, MOVE16_RS_FIELD): Likewise.
(move_insns_32, move_insns_16): New variables.
(nop_insn_32, nop_insn_16): Likewise.
(MATCH): New macro.
(find_match): New function.
(check_br16_dslot, check_br32_dslot): Likewise.
(check_br16, check_br32): Likewise.
(IS_BITSIZE): New macro.
(check_4byte_branch): New function.
(_bfd_mips_elf_relax_section): Likewise.
(_bfd_mips_elf_merge_private_bfd_data): Disallow linking MIPS16
and microMIPS modules together.
(_bfd_mips_elf_print_private_bfd_data): Handle microMIPS ASE.
* reloc.c (BFD_RELOC_MICROMIPS_7_PCREL_S1): New relocation.
(BFD_RELOC_MICROMIPS_10_PCREL_S1): Likewise.
(BFD_RELOC_MICROMIPS_16_PCREL_S1): Likewise.
(BFD_RELOC_MICROMIPS_GPREL16): Likewise.
(BFD_RELOC_MICROMIPS_JMP, BFD_RELOC_MICROMIPS_HI16): Likewise.
(BFD_RELOC_MICROMIPS_HI16_S): Likewise.
(BFD_RELOC_MICROMIPS_LO16): Likewise.
(BFD_RELOC_MICROMIPS_LITERAL): Likewise.
(BFD_RELOC_MICROMIPS_GOT16): Likewise.
(BFD_RELOC_MICROMIPS_CALL16): Likewise.
(BFD_RELOC_MICROMIPS_GOT_HI16): Likewise.
(BFD_RELOC_MICROMIPS_GOT_LO16): Likewise.
(BFD_RELOC_MICROMIPS_CALL_HI16): Likewise.
(BFD_RELOC_MICROMIPS_CALL_LO16): Likewise.
(BFD_RELOC_MICROMIPS_SUB): Likewise.
(BFD_RELOC_MICROMIPS_GOT_PAGE): Likewise.
(BFD_RELOC_MICROMIPS_GOT_OFST): Likewise.
(BFD_RELOC_MICROMIPS_GOT_DISP): Likewise.
(BFD_RELOC_MICROMIPS_HIGHEST): Likewise.
(BFD_RELOC_MICROMIPS_HIGHER): Likewise.
(BFD_RELOC_MICROMIPS_SCN_DISP): Likewise.
(BFD_RELOC_MICROMIPS_JALR): Likewise.
(BFD_RELOC_MICROMIPS_TLS_GD): Likewise.
(BFD_RELOC_MICROMIPS_TLS_LDM): Likewise.
(BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16): Likewise.
(BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16): Likewise.
(BFD_RELOC_MICROMIPS_TLS_GOTTPREL): Likewise.
(BFD_RELOC_MICROMIPS_TLS_TPREL_HI16): Likewise.
(BFD_RELOC_MICROMIPS_TLS_TPREL_LO16): Likewise.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (ALL_MACHINES): Add cpu-k1om.lo.

View file

@ -181,6 +181,7 @@ DESCRIPTION
.#define bfd_mach_mipsisa32r2 33
.#define bfd_mach_mipsisa64 64
.#define bfd_mach_mipsisa64r2 65
.#define bfd_mach_mips_micromips 96
. bfd_arch_i386, {* Intel 386 *}
.#define bfd_mach_i386_i386 1
.#define bfd_mach_i386_i8086 2

View file

@ -1884,6 +1884,7 @@ enum bfd_architecture
#define bfd_mach_mipsisa32r2 33
#define bfd_mach_mipsisa64 64
#define bfd_mach_mipsisa64r2 65
#define bfd_mach_mips_micromips 96
bfd_arch_i386, /* Intel 386 */
#define bfd_mach_i386_i386 1
#define bfd_mach_i386_i8086 2
@ -2726,9 +2727,9 @@ between two procedure entry points is < 2^21, or else a hint. */
BFD_RELOC_ALPHA_TPREL_LO16,
BFD_RELOC_ALPHA_TPREL16,
/* Bits 27..2 of the relocation address shifted right 2 bits;
simple reloc otherwise. */
/* The MIPS jump instruction. */
BFD_RELOC_MIPS_JMP,
BFD_RELOC_MICROMIPS_JMP,
/* The MIPS16 jump instruction. */
BFD_RELOC_MIPS16_JMP,
@ -2776,42 +2777,75 @@ to compensate for the borrow when the low bits are added. */
/* Relocation against a MIPS literal section. */
BFD_RELOC_MIPS_LITERAL,
BFD_RELOC_MICROMIPS_LITERAL,
/* microMIPS PC-relative relocations. */
BFD_RELOC_MICROMIPS_7_PCREL_S1,
BFD_RELOC_MICROMIPS_10_PCREL_S1,
BFD_RELOC_MICROMIPS_16_PCREL_S1,
/* microMIPS versions of generic BFD relocs. */
BFD_RELOC_MICROMIPS_GPREL16,
BFD_RELOC_MICROMIPS_HI16,
BFD_RELOC_MICROMIPS_HI16_S,
BFD_RELOC_MICROMIPS_LO16,
/* MIPS ELF relocations. */
BFD_RELOC_MIPS_GOT16,
BFD_RELOC_MICROMIPS_GOT16,
BFD_RELOC_MIPS_CALL16,
BFD_RELOC_MICROMIPS_CALL16,
BFD_RELOC_MIPS_GOT_HI16,
BFD_RELOC_MICROMIPS_GOT_HI16,
BFD_RELOC_MIPS_GOT_LO16,
BFD_RELOC_MICROMIPS_GOT_LO16,
BFD_RELOC_MIPS_CALL_HI16,
BFD_RELOC_MICROMIPS_CALL_HI16,
BFD_RELOC_MIPS_CALL_LO16,
BFD_RELOC_MICROMIPS_CALL_LO16,
BFD_RELOC_MIPS_SUB,
BFD_RELOC_MICROMIPS_SUB,
BFD_RELOC_MIPS_GOT_PAGE,
BFD_RELOC_MICROMIPS_GOT_PAGE,
BFD_RELOC_MIPS_GOT_OFST,
BFD_RELOC_MICROMIPS_GOT_OFST,
BFD_RELOC_MIPS_GOT_DISP,
BFD_RELOC_MICROMIPS_GOT_DISP,
BFD_RELOC_MIPS_SHIFT5,
BFD_RELOC_MIPS_SHIFT6,
BFD_RELOC_MIPS_INSERT_A,
BFD_RELOC_MIPS_INSERT_B,
BFD_RELOC_MIPS_DELETE,
BFD_RELOC_MIPS_HIGHEST,
BFD_RELOC_MICROMIPS_HIGHEST,
BFD_RELOC_MIPS_HIGHER,
BFD_RELOC_MICROMIPS_HIGHER,
BFD_RELOC_MIPS_SCN_DISP,
BFD_RELOC_MICROMIPS_SCN_DISP,
BFD_RELOC_MIPS_REL16,
BFD_RELOC_MIPS_RELGOT,
BFD_RELOC_MIPS_JALR,
BFD_RELOC_MICROMIPS_JALR,
BFD_RELOC_MIPS_TLS_DTPMOD32,
BFD_RELOC_MIPS_TLS_DTPREL32,
BFD_RELOC_MIPS_TLS_DTPMOD64,
BFD_RELOC_MIPS_TLS_DTPREL64,
BFD_RELOC_MIPS_TLS_GD,
BFD_RELOC_MICROMIPS_TLS_GD,
BFD_RELOC_MIPS_TLS_LDM,
BFD_RELOC_MICROMIPS_TLS_LDM,
BFD_RELOC_MIPS_TLS_DTPREL_HI16,
BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16,
BFD_RELOC_MIPS_TLS_DTPREL_LO16,
BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16,
BFD_RELOC_MIPS_TLS_GOTTPREL,
BFD_RELOC_MICROMIPS_TLS_GOTTPREL,
BFD_RELOC_MIPS_TLS_TPREL32,
BFD_RELOC_MIPS_TLS_TPREL64,
BFD_RELOC_MIPS_TLS_TPREL_HI16,
BFD_RELOC_MICROMIPS_TLS_TPREL_HI16,
BFD_RELOC_MIPS_TLS_TPREL_LO16,
BFD_RELOC_MICROMIPS_TLS_TPREL_LO16,
/* MIPS ELF relocations (VxWorks and PLT extensions). */

View file

@ -93,7 +93,8 @@ enum
I_loongson_2f,
I_loongson_3a,
I_mipsocteon,
I_xlr
I_xlr,
I_micromips
};
#define NN(index) (&arch_info_struct[(index) + 1])
@ -133,7 +134,8 @@ static const bfd_arch_info_type arch_info_struct[] =
N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f", FALSE, NN(I_loongson_2f)),
N (64, 64, bfd_mach_mips_loongson_3a, "mips:loongson_3a", FALSE, NN(I_loongson_3a)),
N (64, 64, bfd_mach_mips_octeon,"mips:octeon", FALSE, NN(I_mipsocteon)),
N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, 0)
N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0)
};
/* The default architecture is mips:3000, but with a machine number of

View file

@ -832,6 +832,508 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
FALSE), /* pcrel_offset */
};
static reloc_howto_type elf_micromips_howto_table_rel[] =
{
EMPTY_HOWTO (130),
EMPTY_HOWTO (131),
EMPTY_HOWTO (132),
/* 26 bit jump address. */
HOWTO (R_MICROMIPS_26_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
26, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
/* This needs complex overflow
detection, because the upper four
bits must match the PC. */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_26_S1", /* name */
TRUE, /* partial_inplace */
0x3ffffff, /* src_mask */
0x3ffffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of symbol value. */
HOWTO (R_MICROMIPS_HI16, /* type */
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_hi16_reloc, /* special_function */
"R_MICROMIPS_HI16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of symbol value. */
HOWTO (R_MICROMIPS_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_lo16_reloc, /* special_function */
"R_MICROMIPS_LO16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* GP relative reference. */
HOWTO (R_MICROMIPS_GPREL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_GPREL16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to literal section. */
HOWTO (R_MICROMIPS_LITERAL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_LITERAL", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to global offset table. */
HOWTO (R_MICROMIPS_GOT16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_got16_reloc, /* special_function */
"R_MICROMIPS_GOT16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* This is for microMIPS branches. */
HOWTO (R_MICROMIPS_PC7_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
7, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC7_S1", /* name */
TRUE, /* partial_inplace */
0x0000007f, /* src_mask */
0x0000007f, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC10_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
10, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC10_S1", /* name */
TRUE, /* partial_inplace */
0x000003ff, /* src_mask */
0x000003ff, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC16_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC16_S1", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
TRUE), /* pcrel_offset */
/* 16 bit call through global offset table. */
HOWTO (R_MICROMIPS_CALL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (143),
EMPTY_HOWTO (144),
/* Displacement in the global offset table. */
HOWTO (R_MICROMIPS_GOT_DISP, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_DISP",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Displacement to page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_PAGE, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_PAGE",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Offset from page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_OFST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_OFST",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_HI16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_LO16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* 64 bit subtraction. Used in the N32 ABI. */
HOWTO (R_MICROMIPS_SUB, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_SUB", /* name */
TRUE, /* partial_inplace */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
FALSE), /* pcrel_offset */
/* Get the higher value of a 64 bit addend. */
HOWTO (R_MICROMIPS_HIGHER, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_HIGHER", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Get the highest value of a 64 bit addend. */
HOWTO (R_MICROMIPS_HIGHEST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_HIGHEST", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_HI16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_LO16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Section displacement. */
HOWTO (R_MICROMIPS_SCN_DISP, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_SCN_DISP",/* name */
TRUE, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Protected jump conversion. This is an optimization hint. No
relocation is required for correctness. */
HOWTO (R_MICROMIPS_JALR, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_JALR", /* name */
FALSE, /* partial_inplace */
0x00000000, /* src_mask */
0x00000000, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of symbol value. Note that the high 16 bits of symbol values
must be zero. This is used for relaxation. */
HOWTO (R_MICROMIPS_HI0_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_HI0_LO16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (158),
EMPTY_HOWTO (159),
EMPTY_HOWTO (160),
EMPTY_HOWTO (161),
/* TLS general dynamic variable reference. */
HOWTO (R_MICROMIPS_TLS_GD, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_TLS_GD", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* TLS local dynamic variable reference. */
HOWTO (R_MICROMIPS_TLS_LDM, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_TLS_LDM", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* TLS local dynamic offset. */
HOWTO (R_MICROMIPS_TLS_DTPREL_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_TLS_DTPREL_HI16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* TLS local dynamic offset. */
HOWTO (R_MICROMIPS_TLS_DTPREL_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_TLS_DTPREL_LO16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* TLS thread pointer offset. */
HOWTO (R_MICROMIPS_TLS_GOTTPREL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_TLS_GOTTPREL", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (167),
EMPTY_HOWTO (168),
/* TLS thread pointer offset. */
HOWTO (R_MICROMIPS_TLS_TPREL_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_TLS_TPREL_HI16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* TLS thread pointer offset. */
HOWTO (R_MICROMIPS_TLS_TPREL_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_TLS_TPREL_LO16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (171),
/* GP- and PC-relative relocations. */
HOWTO (R_MICROMIPS_GPREL7_S2, /* type */
2, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
7, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_GPREL7_S2", /* name */
TRUE, /* partial_inplace */
0x0000007f, /* src_mask */
0x0000007f, /* dst_mask */
FALSE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC23_S2, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
23, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC23_S2", /* name */
TRUE, /* partial_inplace */
0x007fffff, /* src_mask */
0x007fffff, /* dst_mask */
TRUE), /* pcrel_offset */
};
/* 16 bit offset for pc-relative branches. */
static reloc_howto_type elf_mips_gnu_rel16_s2 =
HOWTO (R_MIPS_GNU_REL16_S2, /* type */
@ -1033,10 +1535,12 @@ _bfd_mips_elf32_gprel16_reloc (bfd *abfd, arelent *reloc_entry,
{
bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_byte *location;
bfd_vma gp;
/* R_MIPS_LITERAL relocations are defined for local symbols only. */
if (reloc_entry->howto->type == R_MIPS_LITERAL
/* R_MIPS_LITERAL/R_MICROMIPS_LITERAL relocations are defined for local
symbols only. */
if (literal_reloc_p (reloc_entry->howto->type)
&& output_bfd != NULL
&& (symbol->flags & BSF_SECTION_SYM) == 0
&& (symbol->flags & BSF_LOCAL) != 0)
@ -1059,9 +1563,16 @@ _bfd_mips_elf32_gprel16_reloc (bfd *abfd, arelent *reloc_entry,
if (ret != bfd_reloc_ok)
return ret;
return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
input_section, relocatable,
data, gp);
location = (bfd_byte *) data + reloc_entry->address;
_bfd_mips_elf_reloc_unshuffle (abfd, reloc_entry->howto->type, FALSE,
location);
ret = _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
input_section, relocatable,
data, gp);
_bfd_mips_elf_reloc_shuffle (abfd, reloc_entry->howto->type, !relocatable,
location);
return ret;
}
/* Do a R_MIPS_GPREL32 relocation. This is a 32 bit value which must
@ -1219,13 +1730,13 @@ mips16_gprel_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
return ret;
location = (bfd_byte *) data + reloc_entry->address;
_bfd_mips16_elf_reloc_unshuffle (abfd, reloc_entry->howto->type, FALSE,
location);
_bfd_mips_elf_reloc_unshuffle (abfd, reloc_entry->howto->type, FALSE,
location);
ret = _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
input_section, relocatable,
data, gp);
_bfd_mips16_elf_reloc_shuffle (abfd, reloc_entry->howto->type, !relocatable,
location);
_bfd_mips_elf_reloc_shuffle (abfd, reloc_entry->howto->type, !relocatable,
location);
return ret;
}
@ -1287,6 +1798,47 @@ static const struct elf_reloc_map mips16_reloc_map[] =
{ BFD_RELOC_MIPS16_LO16, R_MIPS16_LO16 - R_MIPS16_min },
};
static const struct elf_reloc_map micromips_reloc_map[] =
{
{ BFD_RELOC_MICROMIPS_JMP, R_MICROMIPS_26_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HI16_S, R_MICROMIPS_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_LO16, R_MICROMIPS_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GPREL16, R_MICROMIPS_GPREL16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_LITERAL, R_MICROMIPS_LITERAL - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT16, R_MICROMIPS_GOT16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_7_PCREL_S1, R_MICROMIPS_PC7_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_10_PCREL_S1, R_MICROMIPS_PC10_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_16_PCREL_S1, R_MICROMIPS_PC16_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL16, R_MICROMIPS_CALL16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_DISP, R_MICROMIPS_GOT_DISP - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_PAGE - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_OFST, R_MICROMIPS_GOT_OFST - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_LO16, R_MICROMIPS_GOT_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_SUB, R_MICROMIPS_SUB - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HIGHER, R_MICROMIPS_HIGHER - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HIGHEST, R_MICROMIPS_HIGHEST - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL_HI16, R_MICROMIPS_CALL_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL_LO16, R_MICROMIPS_CALL_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_SCN_DISP, R_MICROMIPS_SCN_DISP - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_JALR, R_MICROMIPS_JALR - R_MICROMIPS_min },
/* There is no BFD reloc for R_MICROMIPS_HI0_LO16. */
{ BFD_RELOC_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_GD - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_TLS_LDM, R_MICROMIPS_TLS_LDM - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16,
R_MICROMIPS_TLS_DTPREL_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16,
R_MICROMIPS_TLS_DTPREL_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_TLS_GOTTPREL,
R_MICROMIPS_TLS_GOTTPREL - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_TLS_TPREL_HI16,
R_MICROMIPS_TLS_TPREL_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_TLS_TPREL_LO16,
R_MICROMIPS_TLS_TPREL_LO16 - R_MICROMIPS_min },
/* There is no BFD reloc for R_MICROMIPS_GPREL7_S2. */
/* There is no BFD reloc for R_MICROMIPS_PC23_S2. */
};
/* Given a BFD reloc type, return a howto structure. */
static reloc_howto_type *
@ -1295,6 +1847,7 @@ bfd_elf32_bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
unsigned int i;
reloc_howto_type *howto_table = elf_mips_howto_table_rel;
reloc_howto_type *howto16_table = elf_mips16_howto_table_rel;
reloc_howto_type *howto_micromips_table = elf_micromips_howto_table_rel;
for (i = 0; i < sizeof (mips_reloc_map) / sizeof (struct elf_reloc_map);
i++)
@ -1310,6 +1863,13 @@ bfd_elf32_bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
return &howto16_table[(int) mips16_reloc_map[i].elf_val];
}
for (i = 0; i < sizeof (micromips_reloc_map) / sizeof (struct elf_reloc_map);
i++)
{
if (micromips_reloc_map[i].bfd_val == code)
return &howto_micromips_table[(int) micromips_reloc_map[i].elf_val];
}
switch (code)
{
default:
@ -1361,6 +1921,14 @@ bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
&& strcasecmp (elf_mips16_howto_table_rel[i].name, r_name) == 0)
return &elf_mips16_howto_table_rel[i];
for (i = 0;
i < (sizeof (elf_micromips_howto_table_rel)
/ sizeof (elf_micromips_howto_table_rel[0]));
i++)
if (elf_micromips_howto_table_rel[i].name != NULL
&& strcasecmp (elf_micromips_howto_table_rel[i].name, r_name) == 0)
return &elf_micromips_howto_table_rel[i];
if (strcasecmp (elf_mips_gnu_pcrel32.name, r_name) == 0)
return &elf_mips_gnu_pcrel32;
if (strcasecmp (elf_mips_gnu_rel16_s2.name, r_name) == 0)
@ -1398,6 +1966,8 @@ mips_elf32_rtype_to_howto (unsigned int r_type,
case R_MIPS_JUMP_SLOT:
return &elf_mips_jump_slot_howto;
default:
if (r_type >= R_MICROMIPS_min && r_type < R_MICROMIPS_max)
return &elf_micromips_howto_table_rel[r_type - R_MICROMIPS_min];
if (r_type >= R_MIPS16_min && r_type < R_MIPS16_max)
return &elf_mips16_howto_table_rel[r_type - R_MIPS16_min];
BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
@ -1422,7 +1992,7 @@ mips_info_to_howto_rel (bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)
when we do the relocation, because the symbol manipulations done
by the linker may cause us to lose track of the input BFD. */
if (((*cache_ptr->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0
&& (gprel16_reloc_p (r_type) || r_type == (unsigned int) R_MIPS_LITERAL))
&& (gprel16_reloc_p (r_type) || literal_reloc_p (r_type)))
cache_ptr->addend = elf_gp (abfd);
}
@ -1671,6 +2241,8 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
#define elf_backend_mips_rtype_to_howto mips_elf32_rtype_to_howto
#define bfd_elf32_bfd_is_local_label_name \
mips_elf_is_local_label_name
#define bfd_elf32_bfd_is_target_special_symbol \
_bfd_mips_elf_is_target_special_symbol
#define bfd_elf32_find_nearest_line _bfd_mips_elf_find_nearest_line
#define bfd_elf32_find_inliner_info _bfd_mips_elf_find_inliner_info
#define bfd_elf32_new_section_hook _bfd_mips_elf_new_section_hook
@ -1685,6 +2257,7 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
#define bfd_elf32_bfd_set_private_flags _bfd_mips_elf_set_private_flags
#define bfd_elf32_bfd_print_private_bfd_data \
_bfd_mips_elf_print_private_bfd_data
#define bfd_elf32_bfd_relax_section _bfd_mips_elf_relax_section
/* Support for SGI-ish mips targets. */
#define TARGET_LITTLE_SYM bfd_elf32_littlemips_vec

View file

@ -1688,6 +1688,605 @@ static reloc_howto_type mips16_elf64_howto_table_rela[] =
FALSE), /* pcrel_offset */
};
static reloc_howto_type micromips_elf64_howto_table_rel[] =
{
EMPTY_HOWTO (130),
EMPTY_HOWTO (131),
EMPTY_HOWTO (132),
/* 26 bit jump address. */
HOWTO (R_MICROMIPS_26_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
26, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
/* This needs complex overflow
detection, because the upper four
bits must match the PC. */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_26_S1", /* name */
TRUE, /* partial_inplace */
0x3ffffff, /* src_mask */
0x3ffffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of symbol value. */
HOWTO (R_MICROMIPS_HI16, /* type */
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_hi16_reloc, /* special_function */
"R_MICROMIPS_HI16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of symbol value. */
HOWTO (R_MICROMIPS_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_lo16_reloc, /* special_function */
"R_MICROMIPS_LO16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* GP relative reference. */
HOWTO (R_MICROMIPS_GPREL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_GPREL16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to literal section. */
HOWTO (R_MICROMIPS_LITERAL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_LITERAL", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to global offset table. */
HOWTO (R_MICROMIPS_GOT16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_got16_reloc, /* special_function */
"R_MICROMIPS_GOT16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* This is for microMIPS branches. */
HOWTO (R_MICROMIPS_PC7_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
7, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC7_S1", /* name */
TRUE, /* partial_inplace */
0x0000007f, /* src_mask */
0x0000007f, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC10_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
10, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC10_S1", /* name */
TRUE, /* partial_inplace */
0x000003ff, /* src_mask */
0x000003ff, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC16_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC16_S1", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
TRUE), /* pcrel_offset */
/* 16 bit call through global offset table. */
HOWTO (R_MICROMIPS_CALL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (143),
EMPTY_HOWTO (144),
/* Displacement in the global offset table. */
HOWTO (R_MICROMIPS_GOT_DISP, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_DISP",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Displacement to page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_PAGE, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_PAGE",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Offset from page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_OFST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_OFST",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_HI16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_LO16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* 64 bit subtraction. Used in the N32 ABI. */
HOWTO (R_MICROMIPS_SUB, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_SUB", /* name */
TRUE, /* partial_inplace */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
FALSE), /* pcrel_offset */
/* We don't support these for REL relocations, because it means building
the addend from a R_MICROMIPS_HIGHEST/R_MICROMIPS_HIGHER/
R_MICROMIPS_HI16/R_MICROMIPS_LO16 sequence with varying ordering,
using fallable heuristics. */
EMPTY_HOWTO (R_MICROMIPS_HIGHER),
EMPTY_HOWTO (R_MICROMIPS_HIGHEST),
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_HI16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_LO16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
};
static reloc_howto_type micromips_elf64_howto_table_rela[] =
{
EMPTY_HOWTO (130),
EMPTY_HOWTO (131),
EMPTY_HOWTO (132),
/* 26 bit jump address. */
HOWTO (R_MICROMIPS_26_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
26, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
/* This needs complex overflow
detection, because the upper four
bits must match the PC. */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_26_S1", /* name */
FALSE, /* partial_inplace */
0x3ffffff, /* src_mask */
0x3ffffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of symbol value. */
HOWTO (R_MICROMIPS_HI16, /* type */
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_hi16_reloc, /* special_function */
"R_MICROMIPS_HI16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of symbol value. */
HOWTO (R_MICROMIPS_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_lo16_reloc, /* special_function */
"R_MICROMIPS_LO16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* GP relative reference. */
HOWTO (R_MICROMIPS_GPREL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_GPREL16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to literal section. */
HOWTO (R_MICROMIPS_LITERAL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_LITERAL", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to global offset table. */
HOWTO (R_MICROMIPS_GOT16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_got16_reloc, /* special_function */
"R_MICROMIPS_GOT16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* This is for microMIPS branches. */
HOWTO (R_MICROMIPS_PC7_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
7, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC7_S1", /* name */
FALSE, /* partial_inplace */
0x0000007f, /* src_mask */
0x0000007f, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC10_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
10, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC10_S1", /* name */
FALSE, /* partial_inplace */
0x000003ff, /* src_mask */
0x000003ff, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC16_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC16_S1", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
TRUE), /* pcrel_offset */
/* 16 bit call through global offset table. */
HOWTO (R_MICROMIPS_CALL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (143),
EMPTY_HOWTO (144),
/* Displacement in the global offset table. */
HOWTO (R_MICROMIPS_GOT_DISP, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_DISP",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Displacement to page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_PAGE, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_PAGE",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Offset from page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_OFST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_OFST",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_HI16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_LO16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* 64 bit subtraction. Used in the N32 ABI. */
HOWTO (R_MICROMIPS_SUB, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_SUB", /* name */
FALSE, /* partial_inplace */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
FALSE), /* pcrel_offset */
/* Get the higher value of a 64 bit addend. */
HOWTO (R_MICROMIPS_HIGHER, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_HIGHER", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Get the highest value of a 64 bit addend. */
HOWTO (R_MICROMIPS_HIGHEST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_HIGHEST", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_HI16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_LO16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
};
/* GNU extension to record C++ vtable hierarchy */
static reloc_howto_type elf_mips_gnu_vtinherit_howto =
HOWTO (R_MIPS_GNU_VTINHERIT, /* type */
@ -2231,13 +2830,13 @@ mips16_gprel_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
return ret;
location = (bfd_byte *) data + reloc_entry->address;
_bfd_mips16_elf_reloc_unshuffle (abfd, reloc_entry->howto->type, FALSE,
location);
_bfd_mips_elf_reloc_unshuffle (abfd, reloc_entry->howto->type, FALSE,
location);
ret = _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
input_section, relocatable,
data, gp);
_bfd_mips16_elf_reloc_shuffle (abfd, reloc_entry->howto->type, !relocatable,
location);
_bfd_mips_elf_reloc_shuffle (abfd, reloc_entry->howto->type, !relocatable,
location);
return ret;
}
@ -2311,6 +2910,29 @@ static const struct elf_reloc_map mips16_reloc_map[] =
{ BFD_RELOC_MIPS16_LO16, R_MIPS16_LO16 - R_MIPS16_min },
};
static const struct elf_reloc_map micromips_reloc_map[] =
{
{ BFD_RELOC_MICROMIPS_JMP, R_MICROMIPS_26_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HI16_S, R_MICROMIPS_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_LO16, R_MICROMIPS_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GPREL16, R_MICROMIPS_GPREL16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_LITERAL, R_MICROMIPS_LITERAL - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT16, R_MICROMIPS_GOT16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_7_PCREL_S1, R_MICROMIPS_PC7_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_10_PCREL_S1, R_MICROMIPS_PC10_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_16_PCREL_S1, R_MICROMIPS_PC16_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL16, R_MICROMIPS_CALL16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_DISP, R_MICROMIPS_GOT_DISP - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_PAGE - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_OFST, R_MICROMIPS_GOT_OFST - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_LO16, R_MICROMIPS_GOT_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_SUB, R_MICROMIPS_SUB - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HIGHER, R_MICROMIPS_HIGHER - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HIGHEST, R_MICROMIPS_HIGHEST - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL_HI16, R_MICROMIPS_CALL_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL_LO16, R_MICROMIPS_CALL_LO16 - R_MICROMIPS_min },
};
/* Given a BFD reloc type, return a howto structure. */
static reloc_howto_type *
@ -2322,6 +2944,7 @@ bfd_elf64_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
relocation variant. */
reloc_howto_type *howto_table = mips_elf64_howto_table_rela;
reloc_howto_type *howto16_table = mips16_elf64_howto_table_rela;
reloc_howto_type *howto_micromips_table = micromips_elf64_howto_table_rela;
for (i = 0; i < sizeof (mips_reloc_map) / sizeof (struct elf_reloc_map);
i++)
@ -2337,6 +2960,13 @@ bfd_elf64_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
return &howto16_table[(int) mips16_reloc_map[i].elf_val];
}
for (i = 0; i < sizeof (micromips_reloc_map) / sizeof (struct elf_reloc_map);
i++)
{
if (micromips_reloc_map[i].bfd_val == code)
return &howto_micromips_table[(int) micromips_reloc_map[i].elf_val];
}
switch (code)
{
case BFD_RELOC_VTABLE_INHERIT:
@ -2374,6 +3004,14 @@ bfd_elf64_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
&& strcasecmp (mips16_elf64_howto_table_rela[i].name, r_name) == 0)
return &mips16_elf64_howto_table_rela[i];
for (i = 0;
i < (sizeof (micromips_elf64_howto_table_rela)
/ sizeof (micromips_elf64_howto_table_rela[0]));
i++)
if (micromips_elf64_howto_table_rela[i].name != NULL
&& strcasecmp (micromips_elf64_howto_table_rela[i].name, r_name) == 0)
return &micromips_elf64_howto_table_rela[i];
if (strcasecmp (elf_mips_gnu_vtinherit_howto.name, r_name) == 0)
return &elf_mips_gnu_vtinherit_howto;
if (strcasecmp (elf_mips_gnu_vtentry_howto.name, r_name) == 0)
@ -2411,6 +3049,13 @@ mips_elf64_rtype_to_howto (unsigned int r_type, bfd_boolean rela_p)
case R_MIPS_JUMP_SLOT:
return &elf_mips_jump_slot_howto;
default:
if (r_type >= R_MICROMIPS_min && r_type < R_MICROMIPS_max)
{
if (rela_p)
return &micromips_elf64_howto_table_rela[r_type - R_MICROMIPS_min];
else
return &micromips_elf64_howto_table_rel[r_type - R_MICROMIPS_min];
}
if (r_type >= R_MIPS16_min && r_type < R_MIPS16_max)
{
if (rela_p)
@ -3279,6 +3924,8 @@ const struct elf_size_info mips_elf64_size_info =
/* We don't set bfd_elf64_bfd_is_local_label_name because the 32-bit
MIPS-specific function only applies to IRIX5, which had no 64-bit
ABI. */
#define bfd_elf64_bfd_is_target_special_symbol \
_bfd_mips_elf_is_target_special_symbol
#define bfd_elf64_find_nearest_line _bfd_mips_elf_find_nearest_line
#define bfd_elf64_find_inliner_info _bfd_mips_elf_find_inliner_info
#define bfd_elf64_new_section_hook _bfd_mips_elf_new_section_hook

View file

@ -1653,6 +1653,605 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
FALSE), /* pcrel_offset */
};
static reloc_howto_type elf_micromips_howto_table_rel[] =
{
EMPTY_HOWTO (130),
EMPTY_HOWTO (131),
EMPTY_HOWTO (132),
/* 26 bit jump address. */
HOWTO (R_MICROMIPS_26_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
26, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
/* This needs complex overflow
detection, because the upper four
bits must match the PC. */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_26_S1", /* name */
TRUE, /* partial_inplace */
0x3ffffff, /* src_mask */
0x3ffffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of symbol value. */
HOWTO (R_MICROMIPS_HI16, /* type */
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_hi16_reloc, /* special_function */
"R_MICROMIPS_HI16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of symbol value. */
HOWTO (R_MICROMIPS_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_lo16_reloc, /* special_function */
"R_MICROMIPS_LO16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* GP relative reference. */
HOWTO (R_MICROMIPS_GPREL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_GPREL16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to literal section. */
HOWTO (R_MICROMIPS_LITERAL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_LITERAL", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to global offset table. */
HOWTO (R_MICROMIPS_GOT16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_got16_reloc, /* special_function */
"R_MICROMIPS_GOT16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* This is for microMIPS branches. */
HOWTO (R_MICROMIPS_PC7_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
7, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC7_S1", /* name */
TRUE, /* partial_inplace */
0x0000007f, /* src_mask */
0x0000007f, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC10_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
10, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC10_S1", /* name */
TRUE, /* partial_inplace */
0x000003ff, /* src_mask */
0x000003ff, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC16_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC16_S1", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
TRUE), /* pcrel_offset */
/* 16 bit call through global offset table. */
HOWTO (R_MICROMIPS_CALL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL16", /* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (143),
EMPTY_HOWTO (144),
/* Displacement in the global offset table. */
HOWTO (R_MICROMIPS_GOT_DISP, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_DISP",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Displacement to page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_PAGE, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_PAGE",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Offset from page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_OFST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_OFST",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_HI16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_LO16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* 64 bit subtraction. Used in the N32 ABI. */
HOWTO (R_MICROMIPS_SUB, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_SUB", /* name */
TRUE, /* partial_inplace */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
FALSE), /* pcrel_offset */
/* We don't support these for REL relocations, because it means building
the addend from a R_MICROMIPS_HIGHEST/R_MICROMIPS_HIGHER/
R_MICROMIPS_HI16/R_MICROMIPS_LO16 sequence with varying ordering,
using fallable heuristics. */
EMPTY_HOWTO (R_MICROMIPS_HIGHER),
EMPTY_HOWTO (R_MICROMIPS_HIGHEST),
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_HI16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_LO16",/* name */
TRUE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
};
static reloc_howto_type elf_micromips_howto_table_rela[] =
{
EMPTY_HOWTO (130),
EMPTY_HOWTO (131),
EMPTY_HOWTO (132),
/* 26 bit jump address. */
HOWTO (R_MICROMIPS_26_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
26, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
/* This needs complex overflow
detection, because the upper four
bits must match the PC. */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_26_S1", /* name */
FALSE, /* partial_inplace */
0x3ffffff, /* src_mask */
0x3ffffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of symbol value. */
HOWTO (R_MICROMIPS_HI16, /* type */
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_hi16_reloc, /* special_function */
"R_MICROMIPS_HI16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of symbol value. */
HOWTO (R_MICROMIPS_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_lo16_reloc, /* special_function */
"R_MICROMIPS_LO16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* GP relative reference. */
HOWTO (R_MICROMIPS_GPREL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_GPREL16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to literal section. */
HOWTO (R_MICROMIPS_LITERAL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf32_gprel16_reloc, /* special_function */
"R_MICROMIPS_LITERAL", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Reference to global offset table. */
HOWTO (R_MICROMIPS_GOT16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_got16_reloc, /* special_function */
"R_MICROMIPS_GOT16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* This is for microMIPS branches. */
HOWTO (R_MICROMIPS_PC7_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
7, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC7_S1", /* name */
FALSE, /* partial_inplace */
0x0000007f, /* src_mask */
0x0000007f, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC10_S1, /* type */
1, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
10, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC10_S1", /* name */
FALSE, /* partial_inplace */
0x000003ff, /* src_mask */
0x000003ff, /* dst_mask */
TRUE), /* pcrel_offset */
HOWTO (R_MICROMIPS_PC16_S1, /* type */
1, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_PC16_S1", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
TRUE), /* pcrel_offset */
/* 16 bit call through global offset table. */
HOWTO (R_MICROMIPS_CALL16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL16", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
EMPTY_HOWTO (143),
EMPTY_HOWTO (144),
/* Displacement in the global offset table. */
HOWTO (R_MICROMIPS_GOT_DISP, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_DISP",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Displacement to page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_PAGE, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_PAGE",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Offset from page pointer in the global offset table. */
HOWTO (R_MICROMIPS_GOT_OFST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_OFST",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_HI16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_GOT_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_GOT_LO16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* 64 bit subtraction. Used in the N32 ABI. */
HOWTO (R_MICROMIPS_SUB, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_SUB", /* name */
FALSE, /* partial_inplace */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
FALSE), /* pcrel_offset */
/* Get the higher value of a 64 bit addend. */
HOWTO (R_MICROMIPS_HIGHER, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_HIGHER", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Get the highest value of a 64 bit addend. */
HOWTO (R_MICROMIPS_HIGHEST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_HIGHEST", /* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* High 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_HI16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_HI16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_MICROMIPS_CALL_LO16, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_mips_elf_generic_reloc, /* special_function */
"R_MICROMIPS_CALL_LO16",/* name */
FALSE, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
FALSE), /* pcrel_offset */
};
/* GNU extension to record C++ vtable hierarchy */
static reloc_howto_type elf_mips_gnu_vtinherit_howto =
HOWTO (R_MIPS_GNU_VTINHERIT, /* type */
@ -2047,13 +2646,13 @@ mips16_gprel_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
return ret;
location = (bfd_byte *) data + reloc_entry->address;
_bfd_mips16_elf_reloc_unshuffle (abfd, reloc_entry->howto->type, FALSE,
location);
_bfd_mips_elf_reloc_unshuffle (abfd, reloc_entry->howto->type, FALSE,
location);
ret = _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
input_section, relocatable,
data, gp);
_bfd_mips16_elf_reloc_shuffle (abfd, reloc_entry->howto->type, !relocatable,
location);
_bfd_mips_elf_reloc_shuffle (abfd, reloc_entry->howto->type, !relocatable,
location);
return ret;
}
@ -2127,6 +2726,30 @@ static const struct elf_reloc_map mips16_reloc_map[] =
{ BFD_RELOC_MIPS16_LO16, R_MIPS16_LO16 - R_MIPS16_min },
};
static const struct elf_reloc_map micromips_reloc_map[] =
{
{ BFD_RELOC_MICROMIPS_JMP, R_MICROMIPS_26_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HI16_S, R_MICROMIPS_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_LO16, R_MICROMIPS_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GPREL16, R_MICROMIPS_GPREL16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_LITERAL, R_MICROMIPS_LITERAL - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT16, R_MICROMIPS_GOT16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_7_PCREL_S1, R_MICROMIPS_PC7_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_10_PCREL_S1, R_MICROMIPS_PC10_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_16_PCREL_S1, R_MICROMIPS_PC16_S1 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL16, R_MICROMIPS_CALL16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_DISP, R_MICROMIPS_GOT_DISP - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_PAGE - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_OFST, R_MICROMIPS_GOT_OFST - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_GOT_LO16, R_MICROMIPS_GOT_LO16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_SUB, R_MICROMIPS_SUB - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HIGHER, R_MICROMIPS_HIGHER - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_HIGHEST, R_MICROMIPS_HIGHEST - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL_HI16, R_MICROMIPS_CALL_HI16 - R_MICROMIPS_min },
{ BFD_RELOC_MICROMIPS_CALL_LO16, R_MICROMIPS_CALL_LO16 - R_MICROMIPS_min },
};
/* Given a BFD reloc type, return a howto structure. */
static reloc_howto_type *
@ -2138,6 +2761,7 @@ bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
relocation variant. */
reloc_howto_type *howto_table = elf_mips_howto_table_rela;
reloc_howto_type *howto16_table = elf_mips16_howto_table_rela;
reloc_howto_type *howto_micromips_table = elf_micromips_howto_table_rela;
for (i = 0; i < sizeof (mips_reloc_map) / sizeof (struct elf_reloc_map);
i++)
@ -2153,6 +2777,13 @@ bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
return &howto16_table[(int) mips16_reloc_map[i].elf_val];
}
for (i = 0; i < sizeof (micromips_reloc_map) / sizeof (struct elf_reloc_map);
i++)
{
if (micromips_reloc_map[i].bfd_val == code)
return &howto_micromips_table[(int) micromips_reloc_map[i].elf_val];
}
switch (code)
{
case BFD_RELOC_VTABLE_INHERIT:
@ -2191,6 +2822,14 @@ bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
&& strcasecmp (elf_mips16_howto_table_rela[i].name, r_name) == 0)
return &elf_mips16_howto_table_rela[i];
for (i = 0;
i < (sizeof (elf_micromips_howto_table_rela)
/ sizeof (elf_micromips_howto_table_rela[0]));
i++)
if (elf_micromips_howto_table_rela[i].name != NULL
&& strcasecmp (elf_micromips_howto_table_rela[i].name, r_name) == 0)
return &elf_micromips_howto_table_rela[i];
if (strcasecmp (elf_mips_gnu_vtinherit_howto.name, r_name) == 0)
return &elf_mips_gnu_vtinherit_howto;
if (strcasecmp (elf_mips_gnu_vtentry_howto.name, r_name) == 0)
@ -2228,6 +2867,13 @@ mips_elf_n32_rtype_to_howto (unsigned int r_type, bfd_boolean rela_p)
case R_MIPS_JUMP_SLOT:
return &elf_mips_jump_slot_howto;
default:
if (r_type >= R_MICROMIPS_min && r_type < R_MICROMIPS_max)
{
if (rela_p)
return &elf_micromips_howto_table_rela[r_type - R_MICROMIPS_min];
else
return &elf_micromips_howto_table_rel[r_type - R_MICROMIPS_min];
}
if (r_type >= R_MIPS16_min && r_type < R_MIPS16_max)
{
if (rela_p)
@ -2499,6 +3145,8 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
#define elf_backend_write_section _bfd_mips_elf_write_section
#define elf_backend_mips_irix_compat elf_n32_mips_irix_compat
#define elf_backend_mips_rtype_to_howto mips_elf_n32_rtype_to_howto
#define bfd_elf32_bfd_is_target_special_symbol \
_bfd_mips_elf_is_target_special_symbol
#define bfd_elf32_find_nearest_line _bfd_mips_elf_find_nearest_line
#define bfd_elf32_find_inliner_info _bfd_mips_elf_find_inliner_info
#define bfd_elf32_new_section_hook _bfd_mips_elf_new_section_hook

File diff suppressed because it is too large Load diff

View file

@ -82,6 +82,8 @@ extern void _bfd_mips_elf_copy_indirect_symbol
struct elf_link_hash_entry *);
extern bfd_boolean _bfd_mips_elf_ignore_discarded_relocs
(asection *);
extern bfd_boolean _bfd_mips_elf_is_target_special_symbol
(bfd *abfd, asymbol *sym);
extern bfd_boolean _bfd_mips_elf_find_nearest_line
(bfd *, asection *, asymbol **, bfd_vma, const char **,
const char **, unsigned int *);
@ -92,6 +94,9 @@ extern bfd_boolean _bfd_mips_elf_set_section_contents
extern bfd_byte *_bfd_elf_mips_get_relocated_section_contents
(bfd *, struct bfd_link_info *, struct bfd_link_order *,
bfd_byte *, bfd_boolean, asymbol **);
extern bfd_boolean _bfd_mips_elf_relax_section
(bfd *abfd, asection *sec, struct bfd_link_info *link_info,
bfd_boolean *again);
extern struct bfd_link_hash_table *_bfd_mips_elf_link_hash_table_create
(bfd *);
extern struct bfd_link_hash_table *_bfd_mips_vxworks_link_hash_table_create
@ -111,9 +116,9 @@ extern bfd_boolean _bfd_mips_elf_write_section
extern bfd_boolean _bfd_mips_elf_read_ecoff_info
(bfd *, asection *, struct ecoff_debug_info *);
extern void _bfd_mips16_elf_reloc_unshuffle
extern void _bfd_mips_elf_reloc_unshuffle
(bfd *, int, bfd_boolean, bfd_byte *);
extern void _bfd_mips16_elf_reloc_shuffle
extern void _bfd_mips_elf_reloc_shuffle
(bfd *, int, bfd_boolean, bfd_byte *);
extern bfd_reloc_status_type _bfd_mips_elf_gprel16_with_gp
(bfd *, asymbol *, arelent *, asection *, bfd_boolean, void *, bfd_vma);
@ -155,7 +160,16 @@ extern bfd_boolean _bfd_mips_elf_common_definition (Elf_Internal_Sym *);
static inline bfd_boolean
gprel16_reloc_p (unsigned int r_type)
{
return r_type == R_MIPS_GPREL16 || r_type == R_MIPS16_GPREL;
return (r_type == R_MIPS_GPREL16
|| r_type == R_MIPS16_GPREL
|| r_type == R_MICROMIPS_GPREL16
|| r_type == R_MICROMIPS_GPREL7_S2);
}
static inline bfd_boolean
literal_reloc_p (int r_type)
{
return r_type == R_MIPS_LITERAL || r_type == R_MICROMIPS_LITERAL;
}
#define elf_backend_common_definition _bfd_mips_elf_common_definition

View file

@ -1082,6 +1082,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_ALPHA_TPREL_LO16",
"BFD_RELOC_ALPHA_TPREL16",
"BFD_RELOC_MIPS_JMP",
"BFD_RELOC_MICROMIPS_JMP",
"BFD_RELOC_MIPS16_JMP",
"BFD_RELOC_MIPS16_GPREL",
"BFD_RELOC_HI16",
@ -1096,40 +1097,69 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_MIPS16_HI16_S",
"BFD_RELOC_MIPS16_LO16",
"BFD_RELOC_MIPS_LITERAL",
"BFD_RELOC_MICROMIPS_LITERAL",
"BFD_RELOC_MICROMIPS_7_PCREL_S1",
"BFD_RELOC_MICROMIPS_10_PCREL_S1",
"BFD_RELOC_MICROMIPS_16_PCREL_S1",
"BFD_RELOC_MICROMIPS_GPREL16",
"BFD_RELOC_MICROMIPS_HI16",
"BFD_RELOC_MICROMIPS_HI16_S",
"BFD_RELOC_MICROMIPS_LO16",
"BFD_RELOC_MIPS_GOT16",
"BFD_RELOC_MICROMIPS_GOT16",
"BFD_RELOC_MIPS_CALL16",
"BFD_RELOC_MICROMIPS_CALL16",
"BFD_RELOC_MIPS_GOT_HI16",
"BFD_RELOC_MICROMIPS_GOT_HI16",
"BFD_RELOC_MIPS_GOT_LO16",
"BFD_RELOC_MICROMIPS_GOT_LO16",
"BFD_RELOC_MIPS_CALL_HI16",
"BFD_RELOC_MICROMIPS_CALL_HI16",
"BFD_RELOC_MIPS_CALL_LO16",
"BFD_RELOC_MICROMIPS_CALL_LO16",
"BFD_RELOC_MIPS_SUB",
"BFD_RELOC_MICROMIPS_SUB",
"BFD_RELOC_MIPS_GOT_PAGE",
"BFD_RELOC_MICROMIPS_GOT_PAGE",
"BFD_RELOC_MIPS_GOT_OFST",
"BFD_RELOC_MICROMIPS_GOT_OFST",
"BFD_RELOC_MIPS_GOT_DISP",
"BFD_RELOC_MICROMIPS_GOT_DISP",
"BFD_RELOC_MIPS_SHIFT5",
"BFD_RELOC_MIPS_SHIFT6",
"BFD_RELOC_MIPS_INSERT_A",
"BFD_RELOC_MIPS_INSERT_B",
"BFD_RELOC_MIPS_DELETE",
"BFD_RELOC_MIPS_HIGHEST",
"BFD_RELOC_MICROMIPS_HIGHEST",
"BFD_RELOC_MIPS_HIGHER",
"BFD_RELOC_MICROMIPS_HIGHER",
"BFD_RELOC_MIPS_SCN_DISP",
"BFD_RELOC_MICROMIPS_SCN_DISP",
"BFD_RELOC_MIPS_REL16",
"BFD_RELOC_MIPS_RELGOT",
"BFD_RELOC_MIPS_JALR",
"BFD_RELOC_MICROMIPS_JALR",
"BFD_RELOC_MIPS_TLS_DTPMOD32",
"BFD_RELOC_MIPS_TLS_DTPREL32",
"BFD_RELOC_MIPS_TLS_DTPMOD64",
"BFD_RELOC_MIPS_TLS_DTPREL64",
"BFD_RELOC_MIPS_TLS_GD",
"BFD_RELOC_MICROMIPS_TLS_GD",
"BFD_RELOC_MIPS_TLS_LDM",
"BFD_RELOC_MICROMIPS_TLS_LDM",
"BFD_RELOC_MIPS_TLS_DTPREL_HI16",
"BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16",
"BFD_RELOC_MIPS_TLS_DTPREL_LO16",
"BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16",
"BFD_RELOC_MIPS_TLS_GOTTPREL",
"BFD_RELOC_MICROMIPS_TLS_GOTTPREL",
"BFD_RELOC_MIPS_TLS_TPREL32",
"BFD_RELOC_MIPS_TLS_TPREL64",
"BFD_RELOC_MIPS_TLS_TPREL_HI16",
"BFD_RELOC_MICROMIPS_TLS_TPREL_HI16",
"BFD_RELOC_MIPS_TLS_TPREL_LO16",
"BFD_RELOC_MICROMIPS_TLS_TPREL_LO16",
"BFD_RELOC_MIPS_COPY",
"BFD_RELOC_MIPS_JUMP_SLOT",

View file

@ -2177,9 +2177,10 @@ ENUMDOC
ENUM
BFD_RELOC_MIPS_JMP
ENUMX
BFD_RELOC_MICROMIPS_JMP
ENUMDOC
Bits 27..2 of the relocation address shifted right 2 bits;
simple reloc otherwise.
The MIPS jump instruction.
ENUM
BFD_RELOC_MIPS16_JMP
@ -2195,6 +2196,7 @@ ENUM
BFD_RELOC_HI16
ENUMDOC
High 16 bits of 32-bit value; simple reloc.
ENUM
BFD_RELOC_HI16_S
ENUMDOC
@ -2202,6 +2204,7 @@ ENUMDOC
extended and added to form the final result. If the low 16
bits form a negative number, we need to add one to the high value
to compensate for the borrow when the low bits are added.
ENUM
BFD_RELOC_LO16
ENUMDOC
@ -2245,29 +2248,71 @@ ENUMDOC
ENUM
BFD_RELOC_MIPS_LITERAL
ENUMX
BFD_RELOC_MICROMIPS_LITERAL
ENUMDOC
Relocation against a MIPS literal section.
ENUM
BFD_RELOC_MICROMIPS_7_PCREL_S1
ENUMX
BFD_RELOC_MICROMIPS_10_PCREL_S1
ENUMX
BFD_RELOC_MICROMIPS_16_PCREL_S1
ENUMDOC
microMIPS PC-relative relocations.
ENUM
BFD_RELOC_MICROMIPS_GPREL16
ENUMX
BFD_RELOC_MICROMIPS_HI16
ENUMX
BFD_RELOC_MICROMIPS_HI16_S
ENUMX
BFD_RELOC_MICROMIPS_LO16
ENUMDOC
microMIPS versions of generic BFD relocs.
ENUM
BFD_RELOC_MIPS_GOT16
ENUMX
BFD_RELOC_MICROMIPS_GOT16
ENUMX
BFD_RELOC_MIPS_CALL16
ENUMX
BFD_RELOC_MICROMIPS_CALL16
ENUMX
BFD_RELOC_MIPS_GOT_HI16
ENUMX
BFD_RELOC_MICROMIPS_GOT_HI16
ENUMX
BFD_RELOC_MIPS_GOT_LO16
ENUMX
BFD_RELOC_MICROMIPS_GOT_LO16
ENUMX
BFD_RELOC_MIPS_CALL_HI16
ENUMX
BFD_RELOC_MICROMIPS_CALL_HI16
ENUMX
BFD_RELOC_MIPS_CALL_LO16
ENUMX
BFD_RELOC_MICROMIPS_CALL_LO16
ENUMX
BFD_RELOC_MIPS_SUB
ENUMX
BFD_RELOC_MICROMIPS_SUB
ENUMX
BFD_RELOC_MIPS_GOT_PAGE
ENUMX
BFD_RELOC_MICROMIPS_GOT_PAGE
ENUMX
BFD_RELOC_MIPS_GOT_OFST
ENUMX
BFD_RELOC_MICROMIPS_GOT_OFST
ENUMX
BFD_RELOC_MIPS_GOT_DISP
ENUMX
BFD_RELOC_MICROMIPS_GOT_DISP
ENUMX
BFD_RELOC_MIPS_SHIFT5
ENUMX
@ -2280,16 +2325,24 @@ ENUMX
BFD_RELOC_MIPS_DELETE
ENUMX
BFD_RELOC_MIPS_HIGHEST
ENUMX
BFD_RELOC_MICROMIPS_HIGHEST
ENUMX
BFD_RELOC_MIPS_HIGHER
ENUMX
BFD_RELOC_MICROMIPS_HIGHER
ENUMX
BFD_RELOC_MIPS_SCN_DISP
ENUMX
BFD_RELOC_MICROMIPS_SCN_DISP
ENUMX
BFD_RELOC_MIPS_REL16
ENUMX
BFD_RELOC_MIPS_RELGOT
ENUMX
BFD_RELOC_MIPS_JALR
ENUMX
BFD_RELOC_MICROMIPS_JALR
ENUMX
BFD_RELOC_MIPS_TLS_DTPMOD32
ENUMX
@ -2300,22 +2353,36 @@ ENUMX
BFD_RELOC_MIPS_TLS_DTPREL64
ENUMX
BFD_RELOC_MIPS_TLS_GD
ENUMX
BFD_RELOC_MICROMIPS_TLS_GD
ENUMX
BFD_RELOC_MIPS_TLS_LDM
ENUMX
BFD_RELOC_MICROMIPS_TLS_LDM
ENUMX
BFD_RELOC_MIPS_TLS_DTPREL_HI16
ENUMX
BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
ENUMX
BFD_RELOC_MIPS_TLS_DTPREL_LO16
ENUMX
BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
ENUMX
BFD_RELOC_MIPS_TLS_GOTTPREL
ENUMX
BFD_RELOC_MICROMIPS_TLS_GOTTPREL
ENUMX
BFD_RELOC_MIPS_TLS_TPREL32
ENUMX
BFD_RELOC_MIPS_TLS_TPREL64
ENUMX
BFD_RELOC_MIPS_TLS_TPREL_HI16
ENUMX
BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
ENUMX
BFD_RELOC_MIPS_TLS_TPREL_LO16
ENUMX
BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
ENUMDOC
MIPS ELF relocations.
COMMENT

View file

@ -1,3 +1,9 @@
2011-07-24 Chao-ying Fu <fu@mips.com>
Maciej W. Rozycki <macro@codesourcery.com>
* readelf.c (get_machine_flags): Handle microMIPS ASE.
(get_mips_symbol_other): Likewise.
2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
* dwarf.c (init_dwarf_regnames): Handle EM_K1OM.

View file

@ -2428,6 +2428,9 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
if (e_flags & EF_MIPS_ARCH_ASE_M16)
strcat (buf, ", mips16");
if (e_flags & EF_MIPS_ARCH_ASE_MICROMIPS)
strcat (buf, ", micromips");
switch ((e_flags & EF_MIPS_ARCH))
{
case E_MIPS_ARCH_1: strcat (buf, ", mips1"); break;
@ -8679,11 +8682,20 @@ get_mips_symbol_other (unsigned int other)
{
switch (other)
{
case STO_OPTIONAL: return "OPTIONAL";
case STO_MIPS16: return "MIPS16";
case STO_MIPS_PLT: return "MIPS PLT";
case STO_MIPS_PIC: return "MIPS PIC";
default: return NULL;
case STO_OPTIONAL:
return "OPTIONAL";
case STO_MIPS_PLT:
return "MIPS PLT";
case STO_MIPS_PIC:
return "MIPS PIC";
case STO_MICROMIPS:
return "MICROMIPS";
case STO_MICROMIPS | STO_MIPS_PIC:
return "MICROMIPS, MIPS PIC";
case STO_MIPS16:
return "MIPS16";
default:
return NULL;
}
}

View file

@ -1,3 +1,161 @@
2011-07-24 Maciej W. Rozycki <macro@codesourcery.com>
Chao-ying Fu <fu@mips.com>
Richard Sandiford <rdsandiford@googlemail.com>
* config/tc-mips.h (mips_segment_info): Add one bit for
microMIPS.
(TC_LABEL_IS_LOCAL): New macro.
(mips_label_is_local): New prototype.
* config/tc-mips.c (S0, S7): New macros.
(emit_branch_likely_macro): New variable.
(mips_set_options): Add micromips.
(mips_opts): Initialise micromips to -1.
(file_ase_micromips): New variable.
(CPU_HAS_MICROMIPS): New macro.
(hilo_interlocks): Set for microMIPS too.
(gpr_interlocks): Likewise.
(cop_interlocks): Likewise.
(cop_mem_interlocks): Likewise.
(HAVE_CODE_COMPRESSION): New macro.
(micromips_op_hash): New variable.
(micromips_nop16_insn, micromips_nop32_insn): New variables.
(NOP_INSN): Handle microMIPS ASE.
(mips32_to_micromips_reg_b_map): New macro.
(mips32_to_micromips_reg_c_map): Likewise.
(mips32_to_micromips_reg_d_map): Likewise.
(mips32_to_micromips_reg_e_map): Likewise.
(mips32_to_micromips_reg_f_map): Likewise.
(mips32_to_micromips_reg_g_map): Likewise.
(mips32_to_micromips_reg_l_map): Likewise.
(mips32_to_micromips_reg_n_map): Likewise.
(mips32_to_micromips_reg_h_map): New variable.
(mips32_to_micromips_reg_m_map): Likewise.
(mips32_to_micromips_reg_q_map): Likewise.
(micromips_to_32_reg_h_map): New variable.
(micromips_to_32_reg_i_map): Likewise.
(micromips_to_32_reg_m_map): Likewise.
(micromips_to_32_reg_q_map): Likewise.
(micromips_to_32_reg_b_map): New macro.
(micromips_to_32_reg_c_map): Likewise.
(micromips_to_32_reg_d_map): Likewise.
(micromips_to_32_reg_e_map): Likewise.
(micromips_to_32_reg_f_map): Likewise.
(micromips_to_32_reg_g_map): Likewise.
(micromips_to_32_reg_l_map): Likewise.
(micromips_to_32_reg_n_map): Likewise.
(micromips_imm_b_map, micromips_imm_c_map): New macros.
(RELAX_DELAY_SLOT_16BIT): New macro.
(RELAX_DELAY_SLOT_SIZE_FIRST): Likewise.
(RELAX_DELAY_SLOT_SIZE_SECOND): Likewise.
(RELAX_MICROMIPS_ENCODE, RELAX_MICROMIPS_P): New macros.
(RELAX_MICROMIPS_TYPE, RELAX_MICROMIPS_AT): Likewise.
(RELAX_MICROMIPS_U16BIT, RELAX_MICROMIPS_UNCOND): Likewise.
(RELAX_MICROMIPS_COMPACT, RELAX_MICROMIPS_LINK): Likewise.
(RELAX_MICROMIPS_RELAX32, RELAX_MICROMIPS_TOOFAR16): Likewise.
(RELAX_MICROMIPS_MARK_TOOFAR16): Likewise.
(RELAX_MICROMIPS_CLEAR_TOOFAR16): Likewise.
(RELAX_MICROMIPS_TOOFAR32): Likewise.
(RELAX_MICROMIPS_MARK_TOOFAR32): Likewise.
(RELAX_MICROMIPS_CLEAR_TOOFAR32): Likewise.
(INSERT_OPERAND, EXTRACT_OPERAND): Handle microMIPS ASE.
(mips_macro_warning): Add delay_slot_16bit_p, delay_slot_32bit_p,
fsize and insns.
(mips_mark_labels): New function.
(mips16_small, mips16_ext): Remove variables, replacing with...
(forced_insn_size): ... this.
(append_insn, mips16_ip): Update accordingly.
(micromips_insn_length): New function.
(insn_length): Return the length of microMIPS instructions.
(mips_record_mips16_mode): Rename to...
(mips_record_compressed_mode): ... this. Handle microMIPS ASE.
(install_insn): Handle microMIPS ASE.
(reglist_lookup): New function.
(is_size_valid, is_delay_slot_valid): Likewise.
(md_begin): Handle microMIPS ASE.
(md_assemble): Likewise. Update for append_insn interface change.
(micromips_reloc_p): New function.
(got16_reloc_p): Handle microMIPS ASE.
(hi16_reloc_p): Likewise.
(lo16_reloc_p): Likewise.
(jmp_reloc_p): New function.
(jalr_reloc_p): Likewise.
(matching_lo_reloc): Handle microMIPS ASE.
(insn_uses_reg, reg_needs_delay): Likewise.
(mips_move_labels): Likewise.
(mips16_mark_labels): Rename to...
(mips_compressed_mark_labels): ... this. Handle microMIPS ASE.
(gpr_mod_mask): New function.
(gpr_read_mask, gpr_write_mask): Handle microMIPS ASE.
(fpr_read_mask, fpr_write_mask): Likewise.
(insns_between, nops_for_vr4130, nops_for_insn): Likewise.
(fix_loongson2f_nop, fix_loongson2f_jump): Likewise.
(MICROMIPS_LABEL_CHAR): New macro.
(micromips_target_label, micromips_target_name): New variables.
(micromips_label_name, micromips_label_expr): New functions.
(micromips_label_inc, micromips_add_label): Likewise.
(mips_label_is_local): Likewise.
(micromips_map_reloc): Likewise.
(can_swap_branch_p): Handle microMIPS ASE.
(append_insn): Add expansionp argument. Handle microMIPS ASE.
(start_noreorder, end_noreorder): Handle microMIPS ASE.
(macro_start, macro_warning, macro_end): Likewise.
(brk_fmt, cop12_fmt, jalr_fmt, lui_fmt): New variables.
(mem12_fmt, mfhl_fmt, shft_fmt, trap_fmt): Likewise.
(BRK_FMT, COP12_FMT, JALR_FMT, LUI_FMT): New macros.
(MEM12_FMT, MFHL_FMT, SHFT_FMT, TRAP_FMT): Likewise.
(macro_build): Handle microMIPS ASE. Update for append_insn
interface change.
(mips16_macro_build): Update for append_insn interface change.
(macro_build_jalr): Handle microMIPS ASE.
(macro_build_lui): Likewise. Simplify.
(load_register): Handle microMIPS ASE.
(load_address): Likewise.
(move_register): Likewise.
(macro_build_branch_likely): New function.
(macro_build_branch_ccl): Likewise.
(macro_build_branch_rs): Likewise.
(macro_build_branch_rsrt): Likewise.
(macro): Handle microMIPS ASE.
(validate_micromips_insn): New function.
(expr_const_in_range): Likewise.
(mips_ip): Handle microMIPS ASE.
(options): Add OPTION_MICROMIPS and OPTION_NO_MICROMIPS.
(md_longopts): Add mmicromips and mno-micromips.
(md_parse_option): Handle OPTION_MICROMIPS and
OPTION_NO_MICROMIPS.
(mips_after_parse_args): Handle microMIPS ASE.
(md_pcrel_from): Handle microMIPS relocations.
(mips_force_relocation): Likewise.
(md_apply_fix): Likewise.
(mips_align): Handle microMIPS ASE.
(s_mipsset): Likewise.
(s_cpload, s_cpsetup, s_cpreturn): Use relocation wrappers.
(s_dtprel_internal): Likewise.
(s_gpword, s_gpdword): Likewise.
(s_insn): Handle microMIPS ASE.
(s_mips_stab): Likewise.
(relaxed_micromips_32bit_branch_length): New function.
(relaxed_micromips_16bit_branch_length): New function.
(md_estimate_size_before_relax): Handle microMIPS ASE.
(mips_fix_adjustable): Likewise.
(tc_gen_reloc): Handle microMIPS relocations.
(mips_relax_frag): Handle microMIPS ASE.
(md_convert_frag): Likewise.
(mips_frob_file_after_relocs): Likewise.
(mips_elf_final_processing): Likewise.
(mips_nop_opcode): Likewise.
(mips_handle_align): Likewise.
(md_show_usage): Handle microMIPS options.
* symbols.c (TC_LABEL_IS_LOCAL): New macro.
(S_IS_LOCAL): Add a TC_LABEL_IS_LOCAL check.
* doc/as.texinfo (Target MIPS options): Add -mmicromips and
-mno-micromips.
(-mmicromips, -mno-micromips): New options.
* doc/c-mips.texi (-mmicromips, -mno-micromips): New options.
(MIPS ISA): Document .set micromips and .set nomicromips.
(MIPS insn): Update for microMIPS support.
2011-07-24 Maciej W. Rozycki <macro@codesourcery.com>
* config/tc-mips.c (mips_ip): Make a copy of the instruction's

File diff suppressed because it is too large Load diff

View file

@ -68,6 +68,7 @@ struct insn_label_list;
struct mips_segment_info {
struct insn_label_list *labels;
unsigned int mips16 : 1;
unsigned int micromips : 1;
};
#define TC_SEGMENT_INFO_TYPE struct mips_segment_info

View file

@ -394,6 +394,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{-construct-floats}] [@b{-no-construct-floats}]
[@b{-trap}] [@b{-no-break}] [@b{-break}] [@b{-no-trap}]
[@b{-mips16}] [@b{-no-mips16}]
[@b{-mmicromips}] [@b{-mno-micromips}]
[@b{-msmartmips}] [@b{-mno-smartmips}]
[@b{-mips3d}] [@b{-no-mips3d}]
[@b{-mdmx}] [@b{-no-mdmx}]
@ -1178,6 +1179,13 @@ Generate code for the MIPS 16 processor. This is equivalent to putting
@code{.set mips16} at the start of the assembly file. @samp{-no-mips16}
turns off this option.
@item -mmicromips
@itemx -mno-micromips
Generate code for the microMIPS processor. This is equivalent to putting
@code{.set micromips} at the start of the assembly file. @samp{-mno-micromips}
turns off this option. This is equivalent to putting @code{.set nomicromips}
at the start of the assembly file.
@item -msmartmips
@itemx -mno-smartmips
Enables the SmartMIPS extension to the MIPS32 instruction set. This is

View file

@ -129,6 +129,13 @@ Generate code for the MIPS 16 processor. This is equivalent to putting
@code{.set mips16} at the start of the assembly file. @samp{-no-mips16}
turns off this option.
@item -mmicromips
@itemx -mno-micromips
Generate code for the microMIPS processor. This is equivalent to putting
@code{.set micromips} at the start of the assembly file. @samp{-mno-micromips}
turns off this option. This is equivalent to putting @code{.set nomicromips}
at the start of the assembly file.
@item -msmartmips
@itemx -mno-smartmips
Enables the SmartMIPS extensions to the MIPS32 instruction set, which
@ -527,6 +534,12 @@ in which it will assemble instructions for the MIPS 16 processor. Use
Traditional @sc{mips} assemblers do not support this directive.
The directive @code{.set micromips} puts the assembler into microMIPS mode,
in which it will assemble instructions for the microMIPS processor. Use
@code{.set nomicromips} to return to normal 32 bit mode.
Traditional @sc{mips} assemblers do not support this directive.
@node MIPS autoextend
@section Directives for extending MIPS 16 bit instructions
@ -547,10 +560,10 @@ This directive is only meaningful when in MIPS 16 mode. Traditional
@kindex @code{.insn}
The @code{.insn} directive tells @code{@value{AS}} that the following
data is actually instructions. This makes a difference in MIPS 16 mode:
when loading the address of a label which precedes instructions,
@code{@value{AS}} automatically adds 1 to the value, so that jumping to
the loaded address will do the right thing.
data is actually instructions. This makes a difference in MIPS 16 and
microMIPS modes: when loading the address of a label which precedes
instructions, @code{@value{AS}} automatically adds 1 to the value, so
that jumping to the loaded address will do the right thing.
@kindex @code{.global}
The @code{.global} and @code{.globl} directives supported by

View file

@ -59,6 +59,10 @@ symbolS dot_symbol;
#define DOLLAR_LABEL_CHAR '\001'
#define LOCAL_LABEL_CHAR '\002'
#ifndef TC_LABEL_IS_LOCAL
#define TC_LABEL_IS_LOCAL(name) 0
#endif
struct obstack notes;
#ifdef TE_PE
/* The name of an external symbol which is
@ -2120,6 +2124,7 @@ S_IS_LOCAL (symbolS *s)
&& ! S_IS_DEBUG (s)
&& (strchr (name, DOLLAR_LABEL_CHAR)
|| strchr (name, LOCAL_LABEL_CHAR)
|| TC_LABEL_IS_LOCAL (name)
|| (! flag_keep_locals
&& (bfd_is_local_label (stdoutput, s->bsym)
|| (flag_mri

View file

@ -1,3 +1,152 @@
2011-07-24 Maciej W. Rozycki <macro@codesourcery.com>
Chao-ying Fu <fu@mips.com>
Richard Sandiford <rdsandiford@googlemail.com>
* gas/mips/micromips.d: New test.
* gas/mips/micromips-branch-delay.d: Likewise.
* gas/mips/micromips-branch-relax.d: Likewise.
* gas/mips/micromips-branch-relax-pic.d: Likewise.
* gas/mips/micromips-size-1.d: Likewise.
* gas/mips/micromips-trap.d: Likewise.
* gas/mips/micromips.l: New stderr output.
* gas/mips/micromips-branch-delay.l: Likewise.
* gas/mips/micromips-branch-relax.l: Likewise.
* gas/mips/micromips-branch-relax-pic.l: Likewise.
* gas/mips/micromips-size-0.l: New list test.
* gas/mips/micromips-size-1.l: New stderr output.
* gas/mips/micromips.s: New test source.
* gas/mips/micromips-branch-delay.s: Likewise.
* gas/mips/micromips-branch-relax.s: Likewise.
* gas/mips/micromips-size-0.s: Likewise.
* gas/mips/micromips-size-1.s: Likewise.
* gas/mips/mips.exp: Run the new tests.
* gas/mips/dli.s: Use .p2align.
* gas/mips/elf_ase_micromips.d: New test.
* gas/mips/elf_ase_micromips-2.d: Likewise.
* gas/mips/micromips@abs.d: Likewise.
* gas/mips/micromips@add.d: Likewise.
* gas/mips/micromips@alnv_ps-swap.d: Likewise.
* gas/mips/micromips@and.d: Likewise.
* gas/mips/micromips@beq.d: Likewise.
* gas/mips/micromips@bge.d: Likewise.
* gas/mips/micromips@bgeu.d: Likewise.
* gas/mips/micromips@blt.d: Likewise.
* gas/mips/micromips@bltu.d: Likewise.
* gas/mips/micromips@branch-likely.d: Likewise.
* gas/mips/micromips@branch-misc-1.d: Likewise.
* gas/mips/micromips@branch-misc-2-64.d: Likewise.
* gas/mips/micromips@branch-misc-2.d: Likewise.
* gas/mips/micromips@branch-misc-2pic-64.d: Likewise.
* gas/mips/micromips@branch-misc-2pic.d: Likewise.
* gas/mips/micromips@branch-misc-4-64.d: Likewise.
* gas/mips/micromips@branch-misc-4.d: Likewise.
* gas/mips/micromips@branch-self.d: Likewise.
* gas/mips/micromips@cache.d: Likewise.
* gas/mips/micromips@daddi.d: Likewise.
* gas/mips/micromips@dli.d: Likewise.
* gas/mips/micromips@elf-jal.d: Likewise.
* gas/mips/micromips@elf-rel2.d: Likewise.
* gas/mips/micromips@elfel-rel2.d: Likewise.
* gas/mips/micromips@elf-rel4.d: Likewise.
* gas/mips/micromips@jal-svr4pic.d: Likewise.
* gas/mips/micromips@jal-svr4pic-noreorder.d: Likewise.
* gas/mips/micromips@lb-svr4pic-ilocks.d: Likewise.
* gas/mips/micromips@li.d: Likewise.
* gas/mips/micromips@loc-swap-dis.d: Likewise.
* gas/mips/micromips@loc-swap.d: Likewise.
* gas/mips/micromips@mips1-fp.d: Likewise.
* gas/mips/micromips@mips32-cp2.d: Likewise.
* gas/mips/micromips@mips32-imm.d: Likewise.
* gas/mips/micromips@mips32-sf32.d: Likewise.
* gas/mips/micromips@mips32.d: Likewise.
* gas/mips/micromips@mips32r2-cp2.d: Likewise.
* gas/mips/micromips@mips32r2-fp32.d: Likewise.
* gas/mips/micromips@mips32r2-sync.d: Likewise.
* gas/mips/micromips@mips32r2.d: Likewise.
* gas/mips/micromips@mips4-branch-likely.d: Likewise.
* gas/mips/micromips@mips4-fp.d: Likewise.
* gas/mips/micromips@mips4.d: Likewise.
* gas/mips/micromips@mips5.d: Likewise.
* gas/mips/micromips@mips64-cp2.d: Likewise.
* gas/mips/micromips@mips64.d: Likewise.
* gas/mips/micromips@mips64r2.d: Likewise.
* gas/mips/micromips@pref.d: Likewise.
* gas/mips/micromips@relax-at.d: Likewise.
* gas/mips/micromips@relax.d: Likewise.
* gas/mips/micromips@rol-hw.d: Likewise.
* gas/mips/micromips@uld2-eb.d: Likewise.
* gas/mips/micromips@uld2-el.d: Likewise.
* gas/mips/micromips@ulh2-eb.d: Likewise.
* gas/mips/micromips@ulh2-el.d: Likewise.
* gas/mips/micromips@ulw2-eb-ilocks.d: Likewise.
* gas/mips/micromips@ulw2-el-ilocks.d: Likewise.
* gas/mips/cache.d: Likewise.
* gas/mips/daddi.d: Likewise.
* gas/mips/mips32-imm.d: Likewise.
* gas/mips/pref.d: Likewise.
* gas/mips/elf-rel27.d: Handle microMIPS ASE.
* gas/mips/l_d.d: Likewise.
* gas/mips/l_d-n32.d: Likewise.
* gas/mips/l_d-n64.d: Likewise.
* gas/mips/ld.d: Likewise.
* gas/mips/ld-n32.d: Likewise.
* gas/mips/ld-n64.d: Likewise.
* gas/mips/s_d.d: Likewise.
* gas/mips/s_d-n32.d: Likewise.
* gas/mips/s_d-n64.d: Likewise.
* gas/mips/sd.d: Likewise.
* gas/mips/sd-n32.d: Likewise.
* gas/mips/sd-n64.d: Likewise.
* gas/mips/mips32.d: Update immediates.
* gas/mips/micromips@mips32-cp2.s: New test source.
* gas/mips/micromips@mips32-imm.s: Likewise.
* gas/mips/micromips@mips32r2-cp2.s: Likewise.
* gas/mips/micromips@mips64-cp2.s: Likewise.
* gas/mips/cache.s: Likewise.
* gas/mips/daddi.s: Likewise.
* gas/mips/mips32-imm.s: Likewise.
* gas/mips/elf-rel4.s: Handle microMIPS ASE.
* gas/mips/lb-pic.s: Likewise.
* gas/mips/ld.s: Likewise.
* gas/mips/mips32.s: Likewise.
* gas/mips/mips.exp: Add the micromips arch. Exclude mips16e
from micromips. Run mips32-imm.
* gas/mips/jal-mask-11.d: New test.
* gas/mips/jal-mask-12.d: Likewise.
* gas/mips/micromips@jal-mask-11.d: Likewise.
* gas/mips/jal-mask-1.s: Source for the new tests.
* gas/mips/jal-mask-21.d: New test.
* gas/mips/jal-mask-22.d: Likewise.
* gas/mips/micromips@jal-mask-12.d: Likewise.
* gas/mips/jal-mask-2.s: Source for the new tests.
* gas/mips/mips.exp: Run the new tests.
* gas/mips/mips16-e.d: Add --special-syms to `objdump'.
* gas/mips/tmips16-e.d: Likewise.
* gas/mips/mipsel16-e.d: Likewise.
* gas/mips/tmipsel16-e.d: Likewise.
* gas/mips/and.s: Adjust padding.
* gas/mips/beq.s: Likewise.
* gas/mips/bge.s: Likewise.
* gas/mips/bgeu.s: Likewise.
* gas/mips/blt.s: Likewise.
* gas/mips/bltu.s: Likewise.
* gas/mips/branch-misc-2.s: Likewise.
* gas/mips/jal.s: Likewise.
* gas/mips/li.s: Likewise.
* gas/mips/mips4.s: Likewise.
* gas/mips/mips4-fp.s: Likewise.
* gas/mips/relax.s: Likewise.
* gas/mips/and.d: Update accordingly.
* gas/mips/elf-jal.d: Likewise.
* gas/mips/jal.d: Likewise.
* gas/mips/li.d: Likewise.
* gas/mips/relax-at.d: Likewise.
* gas/mips/relax.d: Likewise.
2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/k1om.d: New.

View file

@ -32,4 +32,4 @@ Disassembly of section .text:
0+0058 <[^>]*> nor a0,a1,at
0+005c <[^>]*> ori a0,a1,0x0
0+0060 <[^>]*> xori a0,a1,0x0
...
\.\.\.

View file

@ -22,7 +22,6 @@ foo:
xor $4,$5,0
# Round to a 16 byte boundary, for ease in testing multiple targets.
nop
nop
nop
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -22,4 +22,5 @@ text_label:
# bal external_label
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -23,8 +23,6 @@ text_label:
bge $4,$5,external_label
bgt $4,$5,external_label
# Round to a 16 byte boundary, for ease in testing multiple targets.
nop
nop
nop
nop
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -21,6 +21,6 @@ text_label:
bgeu $4,$5,external_label
bgtu $4,$5,external_label
# Round to a 16 byte boundary, for ease in testing multiple targets.
nop
nop
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -23,8 +23,6 @@ text_label:
blt $4,$5,external_label
ble $4,$5,external_label
# Round to a 16 byte boundary, for ease in testing multiple targets.
nop
nop
nop
nop
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -21,6 +21,6 @@ text_label:
bltu $4,$5,external_label
bleu $4,$5,external_label
# Round to a 16 byte boundary, for ease in testing multiple targets.
nop
nop
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -37,6 +37,7 @@ g6:
b .Ldata
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8
.data

View file

@ -0,0 +1,28 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS CACHE instruction
#as: -32
# Check MIPS CACHE instruction assembly.
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> bc4507ff cache 0x5,2047\(v0\)
[0-9a-f]+ <[^>]*> bc65f800 cache 0x5,-2048\(v1\)
[0-9a-f]+ <[^>]*> bc850800 cache 0x5,2048\(a0\)
[0-9a-f]+ <[^>]*> bca5f7ff cache 0x5,-2049\(a1\)
[0-9a-f]+ <[^>]*> bcc57fff cache 0x5,32767\(a2\)
[0-9a-f]+ <[^>]*> bce58000 cache 0x5,-32768\(a3\)
[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
[0-9a-f]+ <[^>]*> 00280821 addu at,at,t0
[0-9a-f]+ <[^>]*> bc258000 cache 0x5,-32768\(at\)
[0-9a-f]+ <[^>]*> 3c01ffff lui at,0xffff
[0-9a-f]+ <[^>]*> 00290821 addu at,at,t1
[0-9a-f]+ <[^>]*> bc257fff cache 0x5,32767\(at\)
[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
[0-9a-f]+ <[^>]*> 002a0821 addu at,at,t2
[0-9a-f]+ <[^>]*> bc259000 cache 0x5,-28672\(at\)
[0-9a-f]+ <[^>]*> 3c01ffff lui at,0xffff
[0-9a-f]+ <[^>]*> 002b0821 addu at,at,t3
[0-9a-f]+ <[^>]*> bc256fff cache 0x5,28671\(at\)
\.\.\.

View file

@ -0,0 +1,41 @@
# Source file to test offsets used with the CACHE and PREF instruction.
# By default test CACHE.
# If defined, test PREF.
.ifdef tpref
.macro cache ops:vararg
pref \ops
.endm
.endif
.set noreorder
.set noat
.text
text_label:
cache 5, 2047($2)
cache 5, -2048($3)
# 12 bits accepted for microMIPS code.
.ifdef micromips
.set at
.endif
cache 5, 2048($4)
cache 5, -2049($5)
cache 5, 32767($6)
cache 5, -32768($7)
# 16 bits accepted for standard MIPS code.
.ifndef micromips
.set at
.endif
cache 5, 32768($8)
cache 5, -32769($9)
cache 5, 36864($10)
cache 5, -36865($11)
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -0,0 +1,26 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS DADDI instruction
#as: -32
# Check MIPS DADDI instruction assembly.
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 604301ff daddi v1,v0,511
[0-9a-f]+ <[^>]*> 6085fe00 daddi a1,a0,-512
[0-9a-f]+ <[^>]*> 60c70200 daddi a3,a2,512
[0-9a-f]+ <[^>]*> 6109fdff daddi t1,t0,-513
[0-9a-f]+ <[^>]*> 614b7fff daddi t3,t2,32767
[0-9a-f]+ <[^>]*> 618d8000 daddi t5,t4,-32768
[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
[0-9a-f]+ <[^>]*> 01c1782c dadd t7,t6,at
[0-9a-f]+ <[^>]*> 3c01ffff lui at,0xffff
[0-9a-f]+ <[^>]*> 34217fff ori at,at,0x7fff
[0-9a-f]+ <[^>]*> 0201882c dadd s1,s0,at
[0-9a-f]+ <[^>]*> 34018200 li at,0x8200
[0-9a-f]+ <[^>]*> 0241982c dadd s3,s2,at
[0-9a-f]+ <[^>]*> 3c01ffff lui at,0xffff
[0-9a-f]+ <[^>]*> 34217dff ori at,at,0x7dff
[0-9a-f]+ <[^>]*> 0281a82c dadd s5,s4,at
\.\.\.

View file

@ -0,0 +1,32 @@
# Source file to test immediates used with the DADDI instruction.
.set noreorder
.set noat
.text
text_label:
daddi $3, $2, 511
daddi $5, $4, -512
# 10 bits accepted for microMIPS code.
.ifdef micromips
.set at
.endif
daddi $7, $6, 512
daddi $9, $8, -513
daddi $11, $10, 32767
daddi $13, $12, -32768
# 16 bits accepted for standard MIPS code.
.ifndef micromips
.set at
.endif
dadd $15, $14, 32768
dadd $17, $16, -32769
dadd $19, $18, 33280
dadd $21, $20, -33281
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -62,6 +62,4 @@ foo:
dli $4,0x003ffc03ffffc000
# Round to a 16 byte boundary, for ease in testing multiple targets.
nop
nop
nop
.p2align 4

View file

@ -24,3 +24,4 @@ Disassembly of section .text:
0+0028 <[^>]*> j 0+ <text_label>
[ ]*28: (MIPS_JMP|JMPADDR|R_MIPS_26) external_text_label
0+002c <[^>]*> nop
\.\.\.

View file

@ -5,6 +5,10 @@
Relocation section '\.rel\.text' at offset .* contains [34] entries:
*Offset * Info * Type * Sym\. Value * Symbol's Name
[0-9a-f]+ * [0-9a-f]+ R_(MIPS|MIPS16)_HI16 * [0-9a-f]+ * (\.text|\.L0)
[0-9a-f]+ * [0-9a-f]+ R_(MIPS|MIPS16)_HI16 * [0-9a-f]+ * (\.text|\.L0)
[0-9a-f]+ * [0-9a-f]+ R_(MIPS|MIPS16)_LO16 * [0-9a-f]+ * (\.text|\.L0)
[0-9a-f]+ * [0-9a-f]+ R_(MIPS|MIPS16|MICROMIPS)_HI16 * [0-9a-f]+ * (\.text|\.L0)
[0-9a-f]+ * [0-9a-f]+ R_(MIPS|MIPS16|MICROMIPS)_HI16 * [0-9a-f]+ * (\.text|\.L0)
[0-9a-f]+ * [0-9a-f]+ R_(MIPS|MIPS16|MICROMIPS)_LO16 * [0-9a-f]+ * (\.text|\.L0)
# There's an extra R_MICROMIPS_PC10_S1 relocation here for microMIPS
# assembly. We don't care about it and the entry count regexp above
# catches other possible discrepancies, hence:
#pass

View file

@ -5,7 +5,7 @@
a: .4byte 2
.section .text
la $4,a
b: la $4,a
la $4,a+4
la $4,a+8
la $4,a+12

View file

@ -0,0 +1,8 @@
# name: ELF microMIPS ASE markings 2
# source: nop.s
# objdump: -p
# as: -32 -mmicromips
.*:.*file format.*mips.*
private flags = [0-9a-f]*[2367abef]......: .*[[,]micromips[],].*

View file

@ -0,0 +1,8 @@
# name: ELF microMIPS ASE markings
# source: empty.s
# objdump: -p
# as: -32 -mmicromips
.*:.*file format.*mips.*
!private flags = .*micromips.*

View file

@ -0,0 +1,13 @@
.text
foo:
j 0x0000000
j 0xaaaaaa4
j 0x5555558
j 0xffffffc
jal 0x0000000
jal 0xaaaaaa4
jal 0x5555558
jal 0xffffffc
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.space 8

View file

@ -0,0 +1,27 @@
#objdump: -dr --prefix-addresses --show-raw-insn --adjust-vma=0x55555550
#name: MIPS jal mask 1.1
#as: -32
#source: jal-mask-1.s
# Check address masks for JAL/J instructions.
.*: +file format .*mips.*
Disassembly of section \.text:
55555550 <[^>]*> 08000000 j 50000000 <[^>]*>
55555554 <[^>]*> 00000000 nop
55555558 <[^>]*> 0aaaaaa9 j 5aaaaaa4 <[^>]*>
5555555c <[^>]*> 00000000 nop
55555560 <[^>]*> 09555556 j 55555558 <[^>]*>
55555564 <[^>]*> 00000000 nop
55555568 <[^>]*> 0bffffff j 5ffffffc <[^>]*>
5555556c <[^>]*> 00000000 nop
55555570 <[^>]*> 0c000000 jal 50000000 <[^>]*>
55555574 <[^>]*> 00000000 nop
55555578 <[^>]*> 0eaaaaa9 jal 5aaaaaa4 <[^>]*>
5555557c <[^>]*> 00000000 nop
55555580 <[^>]*> 0d555556 jal 55555558 <[^>]*>
55555584 <[^>]*> 00000000 nop
55555588 <[^>]*> 0fffffff jal 5ffffffc <[^>]*>
5555558c <[^>]*> 00000000 nop
\.\.\.

View file

@ -0,0 +1,27 @@
#objdump: -dr --prefix-addresses --show-raw-insn --adjust-vma=0xaaaaaaa0
#name: MIPS jal mask 1.2
#as: -32
#source: jal-mask-1.s
# Check address masks for JAL/J instructions.
.*: +file format .*mips.*
Disassembly of section \.text:
aaaaaaa0 <[^>]*> 08000000 j a0000000 <[^>]*>
aaaaaaa4 <[^>]*> 00000000 nop
aaaaaaa8 <[^>]*> 0aaaaaa9 j aaaaaaa4 <[^>]*>
aaaaaaac <[^>]*> 00000000 nop
aaaaaab0 <[^>]*> 09555556 j a5555558 <[^>]*>
aaaaaab4 <[^>]*> 00000000 nop
aaaaaab8 <[^>]*> 0bffffff j affffffc <[^>]*>
aaaaaabc <[^>]*> 00000000 nop
aaaaaac0 <[^>]*> 0c000000 jal a0000000 <[^>]*>
aaaaaac4 <[^>]*> 00000000 nop
aaaaaac8 <[^>]*> 0eaaaaa9 jal aaaaaaa4 <[^>]*>
aaaaaacc <[^>]*> 00000000 nop
aaaaaad0 <[^>]*> 0d555556 jal a5555558 <[^>]*>
aaaaaad4 <[^>]*> 00000000 nop
aaaaaad8 <[^>]*> 0fffffff jal affffffc <[^>]*>
aaaaaadc <[^>]*> 00000000 nop
\.\.\.

View file

@ -0,0 +1,17 @@
.text
foo:
j 0x0000000
j 0xaaaaaa2
j 0x5555554
j 0xffffff6
jal 0x0000008
jal 0xaaaaaaa
jal 0x555555c
jal 0xffffffe
jals 0x0000002
jals 0xaaaaaa6
jals 0x555555a
jals 0xffffffe
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.space 8

View file

@ -0,0 +1,35 @@
#objdump: -dr --prefix-addresses --show-raw-insn --adjust-vma=0x55555550
#name: MIPS jal mask 2.1
#as: -32
#source: jal-mask-2.s
# Check address masks for JAL/J instructions.
.*: +file format .*mips.*
Disassembly of section \.text:
55555550 <[^>]*> d400 0000 j 50000000 <[^>]*>
55555554 <[^>]*> 0c00 nop
55555556 <[^>]*> d555 5551 j 52aaaaa2 <[^>]*>
5555555a <[^>]*> 0c00 nop
5555555c <[^>]*> d6aa aaaa j 55555554 <[^>]*>
55555560 <[^>]*> 0c00 nop
55555562 <[^>]*> d7ff fffb j 57fffff6 <[^>]*>
55555566 <[^>]*> 0c00 nop
55555568 <[^>]*> f400 0004 jal 50000008 <[^>]*>
5555556c <[^>]*> 0000 0000 nop
55555570 <[^>]*> f555 5555 jal 52aaaaaa <[^>]*>
55555574 <[^>]*> 0000 0000 nop
55555578 <[^>]*> f6aa aaae jal 5555555c <[^>]*>
5555557c <[^>]*> 0000 0000 nop
55555580 <[^>]*> f7ff ffff jal 57fffffe <[^>]*>
55555584 <[^>]*> 0000 0000 nop
55555588 <[^>]*> 7400 0001 jals 50000002 <[^>]*>
5555558c <[^>]*> 0c00 nop
5555558e <[^>]*> 7555 5553 jals 52aaaaa6 <[^>]*>
55555592 <[^>]*> 0c00 nop
55555594 <[^>]*> 76aa aaad jals 5555555a <[^>]*>
55555598 <[^>]*> 0c00 nop
5555559a <[^>]*> 77ff ffff jals 57fffffe <[^>]*>
5555559e <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,35 @@
#objdump: -dr --prefix-addresses --show-raw-insn --adjust-vma=0xaaaaaaa0
#name: MIPS jal mask 2.2
#as: -32
#source: jal-mask-2.s
# Check address masks for JAL/J instructions.
.*: +file format .*mips.*
Disassembly of section \.text:
aaaaaaa0 <[^>]*> d400 0000 j a8000000 <[^>]*>
aaaaaaa4 <[^>]*> 0c00 nop
aaaaaaa6 <[^>]*> d555 5551 j aaaaaaa2 <[^>]*>
aaaaaaaa <[^>]*> 0c00 nop
aaaaaaac <[^>]*> d6aa aaaa j ad555554 <[^>]*>
aaaaaab0 <[^>]*> 0c00 nop
aaaaaab2 <[^>]*> d7ff fffb j affffff6 <[^>]*>
aaaaaab6 <[^>]*> 0c00 nop
aaaaaab8 <[^>]*> f400 0004 jal a8000008 <[^>]*>
aaaaaabc <[^>]*> 0000 0000 nop
aaaaaac0 <[^>]*> f555 5555 jal aaaaaaaa <[^>]*>
aaaaaac4 <[^>]*> 0000 0000 nop
aaaaaac8 <[^>]*> f6aa aaae jal ad55555c <[^>]*>
aaaaaacc <[^>]*> 0000 0000 nop
aaaaaad0 <[^>]*> f7ff ffff jal affffffe <[^>]*>
aaaaaad4 <[^>]*> 0000 0000 nop
aaaaaad8 <[^>]*> 7400 0001 jals a8000002 <[^>]*>
aaaaaadc <[^>]*> 0c00 nop
aaaaaade <[^>]*> 7555 5553 jals aaaaaaa6 <[^>]*>
aaaaaae2 <[^>]*> 0c00 nop
aaaaaae4 <[^>]*> 76aa aaad jals ad55555a <[^>]*>
aaaaaae8 <[^>]*> 0c00 nop
aaaaaaea <[^>]*> 77ff ffff jals affffffe <[^>]*>
aaaaaaee <[^>]*> 0c00 nop
\.\.\.

View file

@ -23,3 +23,4 @@ Disassembly of section .text:
0+0028 <[^>]*> j 0+ <text_label>
[ ]*28: (MIPS_JMP|JMPADDR|R_MIPS_26) external_text_label
0+002c <[^>]*> nop
\.\.\.

View file

@ -9,3 +9,7 @@ text_label:
# Test j as well
j text_label
j external_text_label
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -30,357 +30,357 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x10000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x1a5a5
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss\+0x1
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x10000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x1a5a5
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x1a5a5
\.\.\.

File diff suppressed because it is too large Load diff

View file

@ -30,357 +30,357 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|-16384)\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(1|4097)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(1|8193)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(1|-16383)\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(23131|14939)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|-16384)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,(1|4097)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,(1|8193)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> ldc1 \$f4,(1|-16383)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(23131|14939)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,at,a1
[0-9a-f]+ <[^>]*> ldc1 \$f4,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
\.\.\.

View file

@ -10,6 +10,7 @@ data_label:
.lcomm small_local_common,1
.text
text_label:
lb $4,0
lb $4,1
lb $4,0x8000

View file

@ -30,357 +30,357 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,-23131\(a0\)
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label
[0-9a-f]+ <[^>]*> ld a0,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common
[0-9a-f]+ <[^>]*> ld a0,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss
[0-9a-f]+ <[^>]*> ld a0,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> ld a0,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> ld a0,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1
[0-9a-f]+ <[^>]*> ld a0,0\(gp\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x10000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x1a5a5
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label
[0-9a-f]+ <[^>]*> addu a0,a1,gp
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common
[0-9a-f]+ <[^>]*> addu a0,a1,gp
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss
[0-9a-f]+ <[^>]*> addu a0,a1,gp
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1
[0-9a-f]+ <[^>]*> addu a0,a1,gp
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_data_label\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_data_label\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1
[0-9a-f]+ <[^>]*> addu a0,a1,gp
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 small_external_common\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 small_external_common\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1
[0-9a-f]+ <[^>]*> addu a0,a1,gp
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_GPREL16 \.sbss\+0x1
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_GPREL16 \.sbss\+0x1
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0xffff8000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0xffff8000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x10000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x10000
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x10000
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.data\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.data\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_data_label\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_data_label\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 big_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 big_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 small_external_common\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 small_external_common\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.bss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.bss\+0x1a5a5
[0-9a-f]+ <[^>]*> lui a0,0x0
[ ]*[0-9a-f]+: R_MIPS_HI16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_HI16 \.sbss\+0x1a5a5
[0-9a-f]+ <[^>]*> addu a0,a0,a1
[0-9a-f]+ <[^>]*> ld a0,0\(a0\)
[ ]*[0-9a-f]+: R_MIPS_LO16 \.sbss\+0x1a5a5
[ ]*[0-9a-f]+: R_(MICRO)?MIPS_LO16 \.sbss\+0x1a5a5
\.\.\.

File diff suppressed because it is too large Load diff

View file

@ -42,525 +42,525 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,0\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a0,0\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,(0|-16384)\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lw a1,(4|-16380)\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,(1|4097)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(5|4101)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,5\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,1\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,5\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> lw a0,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,5\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a0,1\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lw a1,5\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,(1|8193)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,(5|8197)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,(1|-16383)\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lw a1,(5|-16379)\(gp\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a0,-(23131|14939)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,-(23127|14935)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> lw a0,(0|-16384)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lw a1,(4|-16380)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,(1|4097)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(5|4101)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,5\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> lw a0,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,5\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,5\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> lw a0,1\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lw a1,5\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,(1|8193)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,(5|8197)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,gp
[0-9a-f]+ <[^>]*> lw a0,(1|-16383)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lw a1,(5|-16379)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x0
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,0\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,4\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x1
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.data(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_data_label
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_data_label
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) big_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) big_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) small_external_common
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) small_external_common
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(23131|14939)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lw a1,-(23127|14935)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
[0-9a-f]+ <[^>]*> lui at,0x2
[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> addu at,a1,at
[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
[ ]*[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
\.\.\.

View file

@ -61,6 +61,7 @@ data_label:
.text
.align 12
text_label:
ld r4,0
ld r4,1
ld r4,0x8000

View file

@ -14,4 +14,4 @@ Disassembly of section .text:
0+0010 <[^>]*> lui a0,0x1
0+0014 <[^>]*> lui a0,0x1
0+0018 <[^>]*> ori a0,a0,0xa5a5
0+001c <[^>]*> nop
\.\.\.

View file

@ -8,5 +8,6 @@ foo:
li $4,0x10000
li $4,0x1a5a5
# Round to a 16 byte boundary, for ease in testing multiple targets.
nop
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -0,0 +1,283 @@
#objdump: -dr --prefix-addresses --show-raw-insn -mmips:micromips
#name: microMIPS branch delay
#as: -32 -march=mips64 -mmicromips
#source: micromips-branch-delay.s
#stderr: micromips-branch-delay.l
# Test microMIPS branch delay slots.
.*: +file format .*mips.*
Disassembly of section \.text:
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 3040 ffff li v0,-1
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 3040 7fff li v0,32767
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 5040 ffff li v0,0xffff
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a2 0001 lui v0,0x1
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> ed7f li v0,-1
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 3040 7fff li v0,32767
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 5040 ffff li v0,0xffff
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a2 0001 lui v0,0x1
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 3040 ffff li v0,-1
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 3040 7fff li v0,32767
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 5040 ffff li v0,0xffff
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a2 0001 lui v0,0x1
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d ffff addiu v0,sp,-1
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0008 addiu v0,sp,8
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0100 addiu v0,sp,256
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 7fff addiu v0,sp,32767
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d ffff addiu v0,sp,-1
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 6d05 addiu v0,sp,8
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0100 addiu v0,sp,256
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 7fff addiu v0,sp,32767
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d ffff addiu v0,sp,-1
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0008 addiu v0,sp,8
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0100 addiu v0,sp,256
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 7fff addiu v0,sp,32767
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd ffff addiu sp,sp,-1
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0008 addiu sp,sp,8
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0100 addiu sp,sp,256
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 7fff addiu sp,sp,32767
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 4fbe addiu sp,sp,-1
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 4c05 addiu sp,sp,8
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 4c81 addiu sp,sp,256
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 7fff addiu sp,sp,32767
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd ffff addiu sp,sp,-1
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0008 addiu sp,sp,8
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0100 addiu sp,sp,256
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 7fff addiu sp,sp,32767
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d ffff addiu v0,sp,-1
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0008 addiu v0,sp,8
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0100 addiu v0,sp,256
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 7fff addiu v0,sp,32767
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a1 0001 lui at,0x1
([0-9a-f]+) <[^>]*> 003d 1150 addu v0,sp,at
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d ffff addiu v0,sp,-1
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0008 addiu v0,sp,8
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0100 addiu v0,sp,256
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 7fff addiu v0,sp,32767
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a1 0001 lui at,0x1
([0-9a-f]+) <[^>]*> 003d 1150 addu v0,sp,at
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d ffff addiu v0,sp,-1
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0008 addiu v0,sp,8
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 0100 addiu v0,sp,256
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 305d 7fff addiu v0,sp,32767
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a1 0001 lui at,0x1
([0-9a-f]+) <[^>]*> 003d 1150 addu v0,sp,at
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd ffff addiu sp,sp,-1
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0008 addiu sp,sp,8
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0100 addiu sp,sp,256
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 7fff addiu sp,sp,32767
([0-9a-f]+) <[^>]*> 4022 fffe bltzal v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a1 0001 lui at,0x1
([0-9a-f]+) <[^>]*> 003d e950 addu sp,sp,at
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd ffff addiu sp,sp,-1
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0008 addiu sp,sp,8
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0100 addiu sp,sp,256
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 7fff addiu sp,sp,32767
([0-9a-f]+) <[^>]*> 4222 fffe bltzals v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a1 0001 lui at,0x1
([0-9a-f]+) <[^>]*> 003d e950 addu sp,sp,at
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd ffff addiu sp,sp,-1
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0008 addiu sp,sp,8
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 0100 addiu sp,sp,256
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 33bd 7fff addiu sp,sp,32767
([0-9a-f]+) <[^>]*> 4042 fffe bgez v0,\1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
([0-9a-f]+) <[^>]*> 41a1 0001 lui at,0x1
([0-9a-f]+) <[^>]*> 003d e950 addu sp,sp,at
([0-9a-f]+) <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,24 @@
.*: Assembler messages:
.*:17: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:19: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:21: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:40: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:44: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:46: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:71: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:90: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
.*:92: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:94: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:96: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:98: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:100: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:100: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
.*:110: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
.*:121: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
.*:123: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:125: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:127: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:129: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:131: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:131: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
.*:141: Warning: Macro instruction expanded into multiple instructions in a branch delay slot

View file

@ -0,0 +1,146 @@
# Source file used to test microMIPS branch delay slots.
.text
foo:
.set noreorder
bltzal $2, .
li $2, -1
bltzal $2, .
li $2, 0x7fff
bltzal $2, .
li $2, 0xffff
bltzal $2, .
li $2, 0x10000
bltzals $2, .
li $2, -1
bltzals $2, .
li $2, 0x7fff
bltzals $2, .
li $2, 0xffff
bltzals $2, .
li $2, 0x10000
bltzall $2, .
li $2, -1
bltzall $2, .
li $2, 0x7fff
bltzall $2, .
li $2, 0xffff
bltzall $2, .
li $2, 0x10000
bltzal $2, .
addiu $2, $29, -1
bltzal $2, .
addiu $2, $29, 8
bltzal $2, .
addiu $2, $29, 256
bltzal $2, .
addiu $2, $29, 0x7fff
bltzals $2, .
addiu $2, $29, -1
bltzals $2, .
addiu $2, $29, 8
bltzals $2, .
addiu $2, $29, 256
bltzals $2, .
addiu $2, $29, 0x7fff
bltzall $2, .
addiu $2, $29, -1
bltzall $2, .
addiu $2, $29, 8
bltzall $2, .
addiu $2, $29, 256
bltzall $2, .
addiu $2, $29, 0x7fff
bltzal $2, .
addiu $29, $29, -1
bltzal $2, .
addiu $29, $29, 8
bltzal $2, .
addiu $29, $29, 256
bltzal $2, .
addiu $29, $29, 0x7fff
bltzals $2, .
addiu $29, $29, -1
bltzals $2, .
addiu $29, $29, 8
bltzals $2, .
addiu $29, $29, 256
bltzals $2, .
addiu $29, $29, 0x7fff
bltzall $2, .
addiu $29, $29, -1
bltzall $2, .
addiu $29, $29, 8
bltzall $2, .
addiu $29, $29, 256
bltzall $2, .
addiu $29, $29, 0x7fff
bltzal $2, .
addu $2, $29, -1
bltzal $2, .
addu $2, $29, 8
bltzal $2, .
addu $2, $29, 256
bltzal $2, .
addu $2, $29, 0x7fff
bltzal $2, .
addu $2, $29, 0x10000
bltzals $2, .
addu $2, $29, -1
bltzals $2, .
addu $2, $29, 8
bltzals $2, .
addu $2, $29, 256
bltzals $2, .
addu $2, $29, 0x7fff
bltzals $2, .
addu $2, $29, 0x10000
bltzall $2, .
addu $2, $29, -1
bltzall $2, .
addu $2, $29, 8
bltzall $2, .
addu $2, $29, 256
bltzall $2, .
addu $2, $29, 0x7fff
bltzall $2, .
addu $2, $29, 0x10000
bltzal $2, .
addu $29, $29, -1
bltzal $2, .
addu $29, $29, 8
bltzal $2, .
addu $29, $29, 256
bltzal $2, .
addu $29, $29, 0x7fff
bltzal $2, .
addu $29, $29, 0x10000
bltzals $2, .
addu $29, $29, -1
bltzals $2, .
addu $29, $29, 8
bltzals $2, .
addu $29, $29, 256
bltzals $2, .
addu $29, $29, 0x7fff
bltzals $2, .
addu $29, $29, 0x10000
bltzall $2, .
addu $29, $29, -1
bltzall $2, .
addu $29, $29, 8
bltzall $2, .
addu $29, $29, 256
bltzall $2, .
addu $29, $29, 0x7fff
bltzall $2, .
addu $29, $29, 0x10000
.set reorder
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -0,0 +1,625 @@
#objdump: -dr --show-raw-insn
#name: Relax microMIPS branches (pic)
#as: -mips32r2 -32 -relax-branch -KPIC
#stderr: micromips-branch-relax-pic.l
#source: micromips-branch-relax.s
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <test>:
[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: cfff b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 4260 fffe bals [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 8dff beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: adff bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: cfff b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 8dff beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: adff bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 4260 fffe bals [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: cfff b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 8dff beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: adff bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 4260 fffe bals [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: ff3c 0001 lw t9,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3339 045d addiu t9,t9,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 03f9 0f3c jalr t9
[ ]*[0-9a-f]+: R_MICROMIPS_JALR test3
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45a1 jrc at
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45c1 jalr at
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45e1 jalrs at
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40d4 fffe bgtz s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4094 fffe blez s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40a3 fffe bnezc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45a1 jrc at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e3 fffe beqzc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45a1 jrc at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 401e fffe bltz s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45c1 jalr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 405e fffe bgez s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45c1 jalr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 401e fffe bltz s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45e1 jalrs at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 405e fffe bgez s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45e1 jalrs at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 43a0 fffe bc1t [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4380 fffe bc1f [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 42a0 fffe bc2t [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4280 fffe bc2f [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45c1 jalr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4083 fffe blez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 40c3 fffe bgtz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 45c1 jalr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
[ 0-9a-f]+: 3021 045d addiu at,at,1117
[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
[ 0-9a-f]+: 4581 jr at
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
\.\.\.
[0-9a-f]+ <test2>:
\.\.\.
[0-9a-f]+ <test3>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 0c00 nop
\.\.\.

View file

@ -0,0 +1,50 @@
.*: Assembler messages:
.*:61: Warning: No .cprestore pseudo-op used in PIC code
.*:59: Warning: Relaxed out-of-range branch into a jump
.*:63: Warning: Relaxed out-of-range branch into a jump
.*:65: Warning: Relaxed out-of-range branch into a jump
.*:67: Warning: Relaxed out-of-range branch into a jump
.*:69: Warning: Relaxed out-of-range branch into a jump
.*:71: Warning: Relaxed out-of-range branch into a jump
.*:73: Warning: Relaxed out-of-range branch into a jump
.*:75: Warning: Relaxed out-of-range branch into a jump
.*:77: Warning: Relaxed out-of-range branch into a jump
.*:79: Warning: Relaxed out-of-range branch into a jump
.*:81: Warning: Relaxed out-of-range branch into a jump
.*:83: Warning: Relaxed out-of-range branch into a jump
.*:85: Warning: Relaxed out-of-range branch into a jump
.*:87: Warning: Relaxed out-of-range branch into a jump
.*:89: Warning: Relaxed out-of-range branch into a jump
.*:91: Warning: Relaxed out-of-range branch into a jump
.*:93: Warning: Relaxed out-of-range branch into a jump
.*:95: Warning: Relaxed out-of-range branch into a jump
.*:97: Warning: Relaxed out-of-range branch into a jump
.*:99: Warning: Relaxed out-of-range branch into a jump
.*:101: Warning: Relaxed out-of-range branch into a jump
.*:103: Warning: Relaxed out-of-range branch into a jump
.*:105: Warning: Relaxed out-of-range branch into a jump
.*:107: Warning: Relaxed out-of-range branch into a jump
.*:109: Warning: Relaxed out-of-range branch into a jump
.*:111: Warning: Relaxed out-of-range branch into a jump
.*:113: Warning: Relaxed out-of-range branch into a jump
.*:115: Warning: Relaxed out-of-range branch into a jump
.*:117: Warning: Relaxed out-of-range branch into a jump
.*:119: Warning: Relaxed out-of-range branch into a jump
.*:121: Warning: Relaxed out-of-range branch into a jump
.*:123: Warning: Relaxed out-of-range branch into a jump
.*:125: Warning: Relaxed out-of-range branch into a jump
.*:127: Warning: Relaxed out-of-range branch into a jump
.*:129: Warning: Relaxed out-of-range branch into a jump
.*:131: Warning: Relaxed out-of-range branch into a jump
.*:133: Warning: Relaxed out-of-range branch into a jump
.*:135: Warning: Relaxed out-of-range branch into a jump
.*:137: Warning: Relaxed out-of-range branch into a jump
.*:139: Warning: Relaxed out-of-range branch into a jump
.*:141: Warning: Relaxed out-of-range branch into a jump
.*:143: Warning: Relaxed out-of-range branch into a jump
.*:145: Warning: Relaxed out-of-range branch into a jump
.*:147: Warning: Relaxed out-of-range branch into a jump
.*:149: Warning: Relaxed out-of-range branch into a jump
.*:151: Warning: Relaxed out-of-range branch into a jump
.*:153: Warning: Relaxed out-of-range branch into a jump
.*:155: Warning: Relaxed out-of-range branch into a jump

View file

@ -0,0 +1,479 @@
#objdump: -dr --show-raw-insn
#name: Relax microMIPS branches
#as: -mips32r2 -32 -relax-branch
#stderr: micromips-branch-relax.l
#source: micromips-branch-relax.s
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <test>:
[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: cfff b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 4260 fffe bals [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 8dff beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: adff bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: cfff b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 8dff beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: adff bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 4260 fffe bals [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: cfff b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 8dff beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: adff bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC7_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 4260 fffe bals [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: f400 0000 jal 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: f400 0000 jal 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 7400 0000 jals 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40d4 fffe bgtz s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4094 fffe blez s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40a3 fffe bnezc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 0c00 nop
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 40e3 fffe beqzc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 0c00 nop
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 401e fffe bltz s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: f400 0000 jal 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 405e fffe bgez s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: f400 0000 jal 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
[ 0-9a-f]+: 401e fffe bltz s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: 7400 0000 jals 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 405e fffe bgez s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: 7400 0000 jals 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 43a0 fffe bc1t [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4380 fffe bc1f [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 42a0 fffe bc2t [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: 4280 fffe bc2f [0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 05d8 addu v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: f400 0000 jal 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4083 fffe blez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 40c3 fffe bgtz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: f400 0000 jal 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[0-9a-f]+ <.*>:
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[ 0-9a-f]+: 0c00 nop
[ 0-9a-f]+: d400 0000 j 0 <test>
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
[0-9a-f]+ <.*>:
\.\.\.
[0-9a-f]+ <test2>:
\.\.\.
[0-9a-f]+ <test3>:
[ 0-9a-f]+: 05d8 addu v1,a0,a1
\.\.\.

View file

@ -0,0 +1,48 @@
.*: Assembler messages:
.*:63: Warning: Relaxed out-of-range branch into a jump
.*:65: Warning: Relaxed out-of-range branch into a jump
.*:67: Warning: Relaxed out-of-range branch into a jump
.*:69: Warning: Relaxed out-of-range branch into a jump
.*:71: Warning: Relaxed out-of-range branch into a jump
.*:73: Warning: Relaxed out-of-range branch into a jump
.*:75: Warning: Relaxed out-of-range branch into a jump
.*:77: Warning: Relaxed out-of-range branch into a jump
.*:79: Warning: Relaxed out-of-range branch into a jump
.*:81: Warning: Relaxed out-of-range branch into a jump
.*:83: Warning: Relaxed out-of-range branch into a jump
.*:85: Warning: Relaxed out-of-range branch into a jump
.*:87: Warning: Relaxed out-of-range branch into a jump
.*:89: Warning: Relaxed out-of-range branch into a jump
.*:91: Warning: Relaxed out-of-range branch into a jump
.*:93: Warning: Relaxed out-of-range branch into a jump
.*:95: Warning: Relaxed out-of-range branch into a jump
.*:97: Warning: Relaxed out-of-range branch into a jump
.*:99: Warning: Relaxed out-of-range branch into a jump
.*:101: Warning: Relaxed out-of-range branch into a jump
.*:103: Warning: Relaxed out-of-range branch into a jump
.*:105: Warning: Relaxed out-of-range branch into a jump
.*:107: Warning: Relaxed out-of-range branch into a jump
.*:109: Warning: Relaxed out-of-range branch into a jump
.*:111: Warning: Relaxed out-of-range branch into a jump
.*:113: Warning: Relaxed out-of-range branch into a jump
.*:115: Warning: Relaxed out-of-range branch into a jump
.*:117: Warning: Relaxed out-of-range branch into a jump
.*:119: Warning: Relaxed out-of-range branch into a jump
.*:121: Warning: Relaxed out-of-range branch into a jump
.*:123: Warning: Relaxed out-of-range branch into a jump
.*:125: Warning: Relaxed out-of-range branch into a jump
.*:127: Warning: Relaxed out-of-range branch into a jump
.*:129: Warning: Relaxed out-of-range branch into a jump
.*:131: Warning: Relaxed out-of-range branch into a jump
.*:133: Warning: Relaxed out-of-range branch into a jump
.*:135: Warning: Relaxed out-of-range branch into a jump
.*:137: Warning: Relaxed out-of-range branch into a jump
.*:139: Warning: Relaxed out-of-range branch into a jump
.*:141: Warning: Relaxed out-of-range branch into a jump
.*:143: Warning: Relaxed out-of-range branch into a jump
.*:145: Warning: Relaxed out-of-range branch into a jump
.*:147: Warning: Relaxed out-of-range branch into a jump
.*:149: Warning: Relaxed out-of-range branch into a jump
.*:151: Warning: Relaxed out-of-range branch into a jump
.*:153: Warning: Relaxed out-of-range branch into a jump
.*:155: Warning: Relaxed out-of-range branch into a jump

View file

@ -0,0 +1,167 @@
.text
.set micromips
.set noreorder
test:
b32 test
addu $3, $4, $5
beqz32 $3, test
addu $3, $4, $5
bnez32 $3, test
addu $3, $4, $5
b test
addu $3, $4, $5
bc test
addu $3, $4, $5
bal test
addu $3, $4, $5
bals test
addu $3, $4, $5
beqz $3, test
addu $3, $4, $5
bnez $3, test
addu $3, $4, $5
b16 test2
addu $3, $4, $5
beqz16 $3, test2
addu $3, $4, $5
bnez16 $3, test2
addu $3, $4, $5
b test2
addu $3, $4, $5
bc test2
addu $3, $4, $5
bal test2
addu $3, $4, $5
bals test2
addu $3, $4, $5
beqz $3, test2
addu $3, $4, $5
bnez $3, test2
addu $3, $4, $5
b16 test3
addu $3, $4, $5
beqz16 $3, test3
addu $3, $4, $5
bnez16 $3, test3
addu $3, $4, $5
b32 test2
addu $3, $4, $5
bc32 test2
addu $3, $4, $5
bal32 test2
addu $3, $4, $5
bals32 test2
addu $3, $4, $5
beqz32 $3, test2
addu $3, $4, $5
bnez32 $3, test2
addu $3, $4, $5
j test3
addu $3, $4, $5
jal test3
addu $3, $4, $5
b test3
addu $3, $4, $5
bc test3
addu $3, $4, $5
bal test3
addu $3, $4, $5
bals test3
addu $3, $4, $5
beq $3, $4, test3
addu $3, $4, $5
bne $3, $4, test3
addu $3, $4, $5
bltz $3, test3
addu $3, $4, $5
bgez $3, test3
addu $3, $4, $5
blez $20, test3
addu $3, $4, $5
bgtz $20, test3
addu $3, $4, $5
beqzc $3, test3
addu $3, $4, $5
bnezc $3, test3
addu $3, $4, $5
bgezal $30, test3
addu $3, $4, $5
bltzal $30, test3
addu $3, $4, $5
bgezals $30, test3
addu $3, $4, $5
bltzals $30, test3
addu $3, $4, $5
bc1f test3
addu $3, $4, $5
bc1t test3
addu $3, $4, $5
bc2f test3
addu $3, $4, $5
bc2t test3
addu $3, $4, $5
beql $3, $4, test3
addu $3, $4, $5
beqz $3, test3
xor $3, $4, $5
bge $3, $4, test3
xor $3, $4, $5
bgel $3, $4, test3
xor $3, $4, $5
bgeu $3, $4, test3
xor $3, $4, $5
bgeul $3, $4, test3
xor $3, $4, $5
bgezall $3, test3
xor $3, $4, $5
bgezl $3, test3
xor $3, $4, $5
bgt $3, $4, test3
xor $3, $4, $5
bgtl $3, $4, test3
xor $3, $4, $5
bgtu $3, $4, test3
xor $3, $4, $5
bgtul $3, $4, test3
xor $3, $4, $5
bgtzl $3, test3
xor $3, $4, $5
ble $3, $4, test3
xor $3, $4, $5
blel $3, $4, test3
xor $3, $4, $5
bleu $3, $4, test3
xor $3, $4, $5
bleul $3, $4, test3
xor $3, $4, $5
blezl $3, test3
xor $3, $4, $5
blt $3, $4, test3
xor $3, $4, $5
bltl $3, $4, test3
xor $3, $4, $5
bltu $3, $4, test3
xor $3, $4, $5
bltul $3, $4, test3
xor $3, $4, $5
bltzall $3, test3
xor $3, $4, $5
bltzl $3, test3
xor $3, $4, $5
bnel $3, $4, test3
xor $3, $4, $5
bnez $3, test3
xor $3, $4, $5
bnezl $3, test3
xor $3, $4, $5
.skip 511 << 1
test2:
.skip (32767 - 511) << 1
test3:
addu $3, $4, $5
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -0,0 +1,36 @@
.*: Assembler messages:
.*:15: Error: Illegal operands `addu16 \$12,\$14'
.*:18: Error: Unrecognized 16-bit version of microMIPS opcode `add16\.ps \$f2,\$f4'
.*:22: Error: Unrecognized 32-bit version of microMIPS opcode `addiusp32 256'
.*:25: Error: Unrecognized opcode `jar \$23'
.*:26: Error: Unrecognized opcode `jar16 \$23'
.*:27: Error: Unrecognized opcode `jar32 \$23'
.*:41: Error: Illegal operands `jalr16 \$30,\$26'
.*:50: Error: Illegal operands `beqz16 \$27,bar'
.*:58: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:66: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:70: Error: Unrecognized 16-bit version of microMIPS opcode `add16\.ps \$f2,\$f4'
.*:74: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:76: Error: Unrecognized 16-bit version of microMIPS opcode `add16\.ps \$f2,\$f4'
.*:77: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:78: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:80: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:82: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:84: Error: Unrecognized 32-bit version of microMIPS opcode `addiusp32 256'
.*:90: Error: Unrecognized 32-bit version of microMIPS opcode `addiusp32 256'
.*:95: Warning: Macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot
.*:95: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
.*:98: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:104: Error: Unrecognized 16-bit version of microMIPS opcode `add16\.ps \$f2,\$f4'
.*:105: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
.*:108: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:110: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:112: Error: Unrecognized 32-bit version of microMIPS opcode `addiusp32 256'
.*:120: Error: Illegal operands `sll16 \$2,\$3,13'
.*:123: Error: Illegal operands `sll16 \$10,\$11,5'
.*:128: Error: Unrecognized 16-bit version of microMIPS opcode `dsll16 \$2,\$3,5'
.*:130: Error: Unrecognized 16-bit version of microMIPS opcode `dsll3216 \$2,\$3,5'
.*:133: Error: Unrecognized 16-bit version of microMIPS opcode `dsll16 \$2,\$3,13'
.*:135: Error: Unrecognized 16-bit version of microMIPS opcode `dsll3216 \$2,\$3,13'
.*:138: Error: Unrecognized 16-bit version of microMIPS opcode `dsll16 \$10,\$11,5'
.*:140: Error: Unrecognized 16-bit version of microMIPS opcode `dsll3216 \$10,\$11,5'

View file

@ -0,0 +1,145 @@
# Source file used to test the microMIPS instruction size overrides (#0).
.text
foo:
# Smoke-test a trivial case.
nop
nop16
nop32
# Test ALU operations.
addu $2, $4
addu16 $2, $4
addu32 $2, $4
addu $12, $14
addu16 $12, $14
addu32 $12, $14
add.ps $f2, $f4
add16.ps $f2, $f4
add32.ps $f2, $f4
addiusp 256
addiusp16 256
addiusp32 256
# Test jumps and branches.
jar $23
jar16 $23
jar32 $23
jalr $4
jalr16 $4
jalr32 $4
jalr $24
jalr16 $24
jalr32 $24
jalr $31,$5
jalr16 $31,$5
jalr32 $31,$5
jalr $31,$25
jalr16 $31,$25
jalr32 $31,$25
jalr $30,$26
jalr16 $30,$26
jalr32 $30,$26
b bar
b16 bar
b32 bar
beqz $7, bar
beqz16 $7, bar
beqz32 $7, bar
beqz $27, bar
beqz16 $27, bar
beqz32 $27, bar
# Test branch delay slots.
.set noreorder
bltzal $2, bar
addu $16, $17
bltzal $2, bar
addu16 $16, $17
bltzal $2, bar
addu32 $16, $17
bltzals $2, bar
addu $16, $17
bltzals $2, bar
addu16 $16, $17
bltzals $2, bar
addu32 $16, $17
bltzal $2, bar
add.ps $f2, $f4
bltzal $2, bar
add16.ps $f2, $f4
bltzal $2, bar
add32.ps $f2, $f4
bltzals $2, bar
add.ps $f2, $f4
bltzals $2, bar
add16.ps $f2, $f4
bltzals $2, bar
add32.ps $f2, $f4
bltzal $2, bar
addiusp 256
bltzal $2, bar
addiusp16 256
bltzal $2, bar
addiusp32 256
bltzals $2, bar
addiusp 256
bltzals $2, bar
addiusp16 256
bltzals $2, bar
addiusp32 256
.set reorder
# Test macro delay slots.
.set noreorder
bltzall $2, bar
addu $16, $17
bltzall $2, bar
addu16 $16, $17
bltzall $2, bar
addu32 $16, $17
bltzall $2, bar
add.ps $f2, $f4
bltzall $2, bar
add16.ps $f2, $f4
bltzall $2, bar
add32.ps $f2, $f4
bltzall $2, bar
addiusp 256
bltzall $2, bar
addiusp16 256
bltzall $2, bar
addiusp32 256
.set reorder
# Test shift instructions to complement 64-bit tests.
sll $2, $3, 5
sll16 $2, $3, 5
sll32 $2, $3, 5
sll $2, $3, 13
sll16 $2, $3, 13
sll32 $2, $3, 13
sll $10, $11, 5
sll16 $10, $11, 5
sll32 $10, $11, 5
# Test 64-bit instructions.
dsll $2, $3, 5
dsll16 $2, $3, 5
dsll32 $2, $3, 5 # No way to force 32-bit DSLL.
dsll3216 $2, $3, 5
dsll3232 $2, $3, 5
dsll $2, $3, 13
dsll16 $2, $3, 13
dsll32 $2, $3, 13 # No way to force 32-bit DSLL.
dsll3216 $2, $3, 13
dsll3232 $2, $3, 13
dsll $10, $11, 5
dsll16 $10, $11, 5
dsll32 $10, $11, 5 # No way to force 32-bit DSLL.
dsll3216 $10, $11, 5
dsll3232 $10, $11, 5
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

View file

@ -0,0 +1,177 @@
#objdump: -dr --prefix-addresses --show-raw-insn -mmips:micromips
#name: microMIPS instruction size 1
#as: -32 -march=mips64 -mmicromips
#source: micromips-size-1.s
#stderr: micromips-size-1.l
# Test microMIPS instruction size overrides (#1).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 0544 addu v0,v0,a0
[0-9a-f]+ <[^>]*> 0544 addu v0,v0,a0
[0-9a-f]+ <[^>]*> 0082 1150 addu v0,v0,a0
[0-9a-f]+ <[^>]*> 01cc 6150 addu t4,t4,t6
[0-9a-f]+ <[^>]*> 01cc 6150 addu t4,t4,t6
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 45c4 jalr a0
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 45c4 jalr a0
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 03e4 0f3c jalr a0
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 45d8 jalr t8
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 45d8 jalr t8
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 03f8 0f3c jalr t8
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 45c5 jalr a1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 45c5 jalr a1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 03e5 0f3c jalr a1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 45d9 jalr t9
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 45d9 jalr t9
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 03f9 0f3c jalr t9
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 03da 0f3c jalr s8,k0
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 03da 0f3c jalr s8,k0
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 9400 fffe b 0+0084 <.*\+0x84>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> cfff b 0+008a <.*\+0x8a>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 fffe b 0+008e <.*\+0x8e>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9407 fffe beqz a3,0+0094 <.*\+0x94>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 8fff beqz a3,0+009a <.*\+0x9a>
9a: R_MICROMIPS_PC7_S1 bar
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9407 fffe beqz a3,0+009e <.*\+0x9e>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 941b fffe beqz k1,0+00a4 <.*\+0xa4>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 941b fffe beqz k1,0+00aa <.*\+0xaa>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4022 fffe bltzal v0,0+00b0 <.*\+0xb0>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0230 8150 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4022 fffe bltzal v0,0+00b8 <.*\+0xb8>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0410 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4022 fffe bltzal v0,0+00be <.*\+0xbe>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0230 8150 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4222 fffe bltzals v0,0+00c6 <.*\+0xc6>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0410 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4222 fffe bltzals v0,0+00cc <.*\+0xcc>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0410 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4222 fffe bltzals v0,0+00d2 <.*\+0xd2>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0230 8150 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4022 fffe bltzal v0,0+00da <.*\+0xda>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 4022 fffe bltzal v0,0+00e2 <.*\+0xe2>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 4222 fffe bltzals v0,0+00ea <.*\+0xea>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 4222 fffe bltzals v0,0+00f2 <.*\+0xf2>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 4022 fffe bltzal v0,0+00fa <.*\+0xfa>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 4022 fffe bltzal v0,0+0100 <.*\+0x100>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 4222 fffe bltzals v0,0+0106 <.*\+0x106>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 4222 fffe bltzals v0,0+010c <.*\+0x10c>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 4042 fffe bgez v0,0+0112 <.*\+0x112>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0118 <.*\+0x118>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0230 8150 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4042 fffe bgez v0,0+0120 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0126 <.*\+0x6>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0410 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4042 fffe bgez v0,0+012c <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0132 <.*\+0x6>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0230 8150 addu s0,s0,s1
[0-9a-f]+ <[^>]*> 4042 fffe bgez v0,0+013a <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0140 <.*\+0x6>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 4042 fffe bgez v0,0+0148 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+014e <.*\+0x6>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 5482 1230 add\.ps \$f2,\$f2,\$f4
[0-9a-f]+ <[^>]*> 4042 fffe bgez v0,0+0156 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+015c <.*\+0x6>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 4042 fffe bgez v0,0+0162 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0168 <.*\+0x6>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 4c81 addiu sp,sp,256
[0-9a-f]+ <[^>]*> 253a sll v0,v1,5
[0-9a-f]+ <[^>]*> 253a sll v0,v1,5
[0-9a-f]+ <[^>]*> 0043 2800 sll v0,v1,0x5
[0-9a-f]+ <[^>]*> 0043 6800 sll v0,v1,0xd
[0-9a-f]+ <[^>]*> 0043 6800 sll v0,v1,0xd
[0-9a-f]+ <[^>]*> 014b 2800 sll t2,t3,0x5
[0-9a-f]+ <[^>]*> 014b 2800 sll t2,t3,0x5
[0-9a-f]+ <[^>]*> 5843 2800 dsll v0,v1,0x5
[0-9a-f]+ <[^>]*> 5843 2808 dsll32 v0,v1,0x5
[0-9a-f]+ <[^>]*> 5843 2808 dsll32 v0,v1,0x5
[0-9a-f]+ <[^>]*> 5843 6800 dsll v0,v1,0xd
[0-9a-f]+ <[^>]*> 5843 6808 dsll32 v0,v1,0xd
[0-9a-f]+ <[^>]*> 5843 6808 dsll32 v0,v1,0xd
[0-9a-f]+ <[^>]*> 594b 2800 dsll t2,t3,0x5
[0-9a-f]+ <[^>]*> 594b 2808 dsll32 t2,t3,0x5
[0-9a-f]+ <[^>]*> 594b 2808 dsll32 t2,t3,0x5
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,10 @@
.*: Assembler messages:
.*:50: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:58: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:64: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:66: Warning: Wrong size instruction in a 16-bit branch delay slot
.*:68: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:70: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:82: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:90: Warning: Wrong size instruction in a 32-bit branch delay slot
.*:92: Warning: Wrong size instruction in a 32-bit branch delay slot

View file

@ -0,0 +1,117 @@
# Source file used to test microMIPS instruction size overrides (#1).
.text
foo:
# Smoke-test a trivial case.
nop
nop16
nop32
# Test ALU operations.
addu $2, $4
addu16 $2, $4
addu32 $2, $4
addu $12, $14
addu32 $12, $14
add.ps $f2, $f4
add32.ps $f2, $f4
addiusp 256
addiusp16 256
# Test jumps and branches.
jalr $4
jalr16 $4
jalr32 $4
jalr $24
jalr16 $24
jalr32 $24
jalr $31,$5
jalr16 $31,$5
jalr32 $31,$5
jalr $31,$25
jalr16 $31,$25
jalr32 $31,$25
jalr $30,$26
jalr32 $30,$26
b bar
b16 bar
b32 bar
beqz $7, bar
beqz16 $7, bar
beqz32 $7, bar
beqz $27, bar
beqz32 $27, bar
# Test branch delay slots.
.set noreorder
bltzal $2, bar
addu $16, $17
bltzal $2, bar
addu16 $16, $17
bltzal $2, bar
addu32 $16, $17
bltzals $2, bar
addu $16, $17
bltzals $2, bar
addu16 $16, $17
bltzals $2, bar
addu32 $16, $17
bltzal $2, bar
add.ps $f2, $f4
bltzal $2, bar
add32.ps $f2, $f4
bltzals $2, bar
add.ps $f2, $f4
bltzals $2, bar
add32.ps $f2, $f4
bltzal $2, bar
addiusp 256
bltzal $2, bar
addiusp16 256
bltzals $2, bar
addiusp 256
bltzals $2, bar
addiusp16 256
.set reorder
# Test macro delay slots.
.set noreorder
bltzall $2, bar
addu $16, $17
bltzall $2, bar
addu16 $16, $17
bltzall $2, bar
addu32 $16, $17
bltzall $2, bar
add.ps $f2, $f4
bltzall $2, bar
add32.ps $f2, $f4
bltzall $2, bar
addiusp 256
bltzall $2, bar
addiusp16 256
.set reorder
# Test shift instructions to complement 64-bit tests.
sll $2, $3, 5
sll16 $2, $3, 5
sll32 $2, $3, 5
sll $2, $3, 13
sll32 $2, $3, 13
sll $10, $11, 5
sll32 $10, $11, 5
# Test 64-bit instructions.
dsll $2, $3, 5
dsll32 $2, $3, 5 # No way to force 32-bit DSLL.
dsll3232 $2, $3, 5
dsll $2, $3, 13
dsll32 $2, $3, 13 # No way to force 32-bit DSLL.
dsll3232 $2, $3, 13
dsll $10, $11, 5
dsll32 $10, $11, 5 # No way to force 32-bit DSLL.
dsll3232 $10, $11, 5
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,27 @@
.*: Assembler messages:
.*:560: Warning: Divide by zero.
.*:563: Warning: Divide by zero.
.*:576: Warning: Divide by zero.
.*:1541: Warning: Divide by zero.
.*:1544: Warning: Divide by zero.
.*:1557: Warning: Divide by zero.
.*:2604: Warning: Branch bge is always true
.*:2607: Warning: Branch bgeu is always true
.*:2616: Warning: Branch bgeu is always true
.*:2691: Warning: Branch ble is always true
.*:2706: Warning: Branch bleu is always true
.*:2712: Warning: Branch bleu is always true
.*:2715: Warning: Branch bleu is always true
.*:2814: Warning: Branch bgel is always true
.*:2817: Warning: Branch bgeul is always true
.*:2826: Warning: Branch bgeul is always true
.*:2901: Warning: Branch blel is always true
.*:2916: Warning: Branch bleul is always true
.*:2922: Warning: Branch bleul is always true
.*:2925: Warning: Branch bleul is always true
.*:4739: Warning: Divide by zero.
.*:4742: Warning: Divide by zero.
.*:4755: Warning: Divide by zero.
.*:5160: Warning: Divide by zero.
.*:5170: Warning: Divide by zero.
.*:5180: Warning: Divide by zero.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,19 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS abs
#source: abs.s
#as: -32
# Test the abs macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 4044 fffe bgez a0,[0-9a-f]+ <foo>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0080 2190 neg a0,a0
[0-9a-f]+ <[^>]*> 4045 fffe bgez a1,[0-9a-f]+ <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
[0-9a-f]+ <[^>]*> 0c85 move a0,a1
[0-9a-f]+ <[^>]*> 00a0 2190 neg a0,a1
\.\.\.

View file

@ -0,0 +1,23 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS add
#source: add.s
#as: -32
# Test the add macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 1084 0000 addi a0,a0,0
[0-9a-f]+ <[^>]*> 1084 0001 addi a0,a0,1
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 0024 2110 add a0,a0,at
[0-9a-f]+ <[^>]*> 1084 8000 addi a0,a0,-32768
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 0024 2110 add a0,a0,at
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[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

View file

@ -0,0 +1,57 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS ALNV.PS instruction branch swapping
#as: -32
#source: alnv_ps-swap.s
# Check that a register dependency between ALNV.PS and the following
# branch prevents from branch swapping (microMIPS).
# Note that currently swapping of ALNV.PS in microMIPS code is disabled
# altogether.
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 5402 20d9 alnv\.ps \$f4,\$f2,\$f0,v1
([0-9a-f]+) <[^>]*> cfff b \1 <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 foo
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 5402 20d9 alnv\.ps \$f4,\$f2,\$f0,v1
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 foo
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 20d9 alnv\.ps \$f4,\$f2,\$f0,v1
([0-9a-f]+) <[^>]*> 4023 fffe bltzal v1,\1 <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 foo
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 20d9 alnv\.ps \$f4,\$f2,\$f0,v1
[0-9a-f]+ <[^>]*> 45c3 jalr v1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 20d9 alnv\.ps \$f4,\$f2,\$f0,v1
[0-9a-f]+ <[^>]*> 0083 0f3c jalr a0,v1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 20d9 alnv\.ps \$f4,\$f2,\$f0,v1
[0-9a-f]+ <[^>]*> 007f 0f3c jalr v1,ra
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 27d9 alnv\.ps \$f4,\$f2,\$f0,ra
([0-9a-f]+) <[^>]*> cfff b \1 <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 foo
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 5402 27d9 alnv\.ps \$f4,\$f2,\$f0,ra
([0-9a-f]+) <[^>]*> 4060 fffe bal \1 <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 foo
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 27d9 alnv\.ps \$f4,\$f2,\$f0,ra
([0-9a-f]+) <[^>]*> 4023 fffe bltzal v1,\1 <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 foo
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 27d9 alnv\.ps \$f4,\$f2,\$f0,ra
[0-9a-f]+ <[^>]*> 45c3 jalr v1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 27d9 alnv\.ps \$f4,\$f2,\$f0,ra
[0-9a-f]+ <[^>]*> 0083 0f3c jalr a0,v1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 5402 27d9 alnv\.ps \$f4,\$f2,\$f0,ra
[0-9a-f]+ <[^>]*> 007f 0f3c jalr v1,ra
[0-9a-f]+ <[^>]*> 0000 0000 nop
\.\.\.

View file

@ -0,0 +1,36 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS and
#source: and.s
#as: -32
# Test the and macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> d084 0000 andi a0,a0,0x0
[0-9a-f]+ <[^>]*> d084 0001 andi a0,a0,0x1
[0-9a-f]+ <[^>]*> d084 8000 andi a0,a0,0x8000
[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
[0-9a-f]+ <[^>]*> 0024 2250 and a0,a0,at
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 0024 2250 and a0,a0,at
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 0024 2250 and a0,a0,at
[0-9a-f]+ <[^>]*> 5085 0000 ori a0,a1,0x0
[0-9a-f]+ <[^>]*> 0004 22d0 not a0,a0
[0-9a-f]+ <[^>]*> 5085 0001 ori a0,a1,0x1
[0-9a-f]+ <[^>]*> 0004 22d0 not a0,a0
[0-9a-f]+ <[^>]*> 5085 8000 ori a0,a1,0x8000
[0-9a-f]+ <[^>]*> 0004 22d0 not a0,a0
[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
[0-9a-f]+ <[^>]*> 0025 22d0 nor a0,a1,at
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 0025 22d0 nor a0,a1,at
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 0025 22d0 nor a0,a1,at
[0-9a-f]+ <[^>]*> 5085 0000 ori a0,a1,0x0
[0-9a-f]+ <[^>]*> 7085 0000 xori a0,a1,0x0
\.\.\.

View file

@ -0,0 +1,49 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS beq
#source: beq.s
#as: -32
# Test the beq macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 94a4 fffe beq a0,a1,0+0000 <text_label>
0: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9404 fffe beqz a0,0+0006 <text_label\+0x6>
6: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 3020 0001 li at,1
[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,0+0010 <text_label\+0x10>
10: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,0+001a <text_label\+0x1a>
1a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,0+0024 <text_label\+0x24>
24: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,0+002e <text_label\+0x2e>
2e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,0+003c <text_label\+0x3c>
3c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b404 fffe bnez a0,0+0042 <text_label\+0x42>
42: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.
[0-9a-f]+ <[^>]*> 9400 fffe b 00020048 <text_label\+0x20048>
20048: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0002004e <text_label\+0x2004e>
2004e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,72 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS bge
#source: bge.s
#as: -32
# Test the bge macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0004 <text_label\+0x4>
4: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4044 fffe bgez a0,0+000a <text_label\+0xa>
a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4085 fffe blez a1,0+0010 <text_label\+0x10>
10: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4044 fffe bgez a0,0+0016 <text_label\+0x16>
16: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 40c4 fffe bgtz a0,0+001c <text_label\+0x1c>
1c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9024 0002 slti at,a0,2
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0026 <text_label\+0x26>
26: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 0024 0b50 slt at,a0,at
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0034 <text_label\+0x34>
34: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9024 8000 slti at,a0,-32768
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+003e <text_label\+0x3e>
3e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 0024 0b50 slt at,a0,at
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+004c <text_label\+0x4c>
4c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 0024 0b50 slt at,a0,at
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+005e <text_label\+0x5e>
5e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0068 <text_label\+0x68>
68: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 40c4 fffe bgtz a0,0+006e <text_label\+0x6e>
6e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4005 fffe bltz a1,0+0074 <text_label\+0x74>
74: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 40c4 fffe bgtz a0,0+007a <text_label\+0x7a>
7a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0084 <text_label\+0x84>
84: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+008e <text_label\+0x8e>
8e: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,64 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS bgeu
#source: bgeu.s
#as: -32
# Test the bgeu macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0004 <text_label\+0x4>
4: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 94a0 fffe beq zero,a1,0+000a <text_label\+0xa>
a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b404 fffe bnez a0,0+0010 <text_label\+0x10>
10: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b024 0002 sltiu at,a0,2
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+001a <text_label\+0x1a>
1a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 0024 0b90 sltu at,a0,at
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0028 <text_label\+0x28>
28: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b024 8000 sltiu at,a0,-32768
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0032 <text_label\+0x32>
32: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 0024 0b90 sltu at,a0,at
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0040 <text_label\+0x40>
40: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 0024 0b90 sltu at,a0,at
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0052 <text_label\+0x52>
52: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+005c <text_label\+0x5c>
5c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b404 fffe bnez a0,0+0062 <text_label\+0x62>
62: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b404 fffe bnez a0,0+0068 <text_label\+0x68>
68: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0072 <text_label\+0x72>
72: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+007c <text_label\+0x7c>
7c: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,72 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS blt
#source: blt.s
#as: -32
# Test the blt macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0004 <text_label\+0x4>
4: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4004 fffe bltz a0,0+000a <text_label\+0xa>
a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 40c5 fffe bgtz a1,0+0010 <text_label\+0x10>
10: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4004 fffe bltz a0,0+0016 <text_label\+0x16>
16: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4084 fffe blez a0,0+001c <text_label\+0x1c>
1c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9024 0002 slti at,a0,2
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0026 <text_label\+0x26>
26: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 0024 0b50 slt at,a0,at
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0034 <text_label\+0x34>
34: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9024 8000 slti at,a0,-32768
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+003e <text_label\+0x3e>
3e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 0024 0b50 slt at,a0,at
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+004c <text_label\+0x4c>
4c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 0024 0b50 slt at,a0,at
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+005e <text_label\+0x5e>
5e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0068 <text_label\+0x68>
68: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4084 fffe blez a0,0+006e <text_label\+0x6e>
6e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4045 fffe bgez a1,0+0074 <text_label\+0x74>
74: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 4084 fffe blez a0,0+007a <text_label\+0x7a>
7a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0084 <text_label\+0x84>
84: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+008e <text_label\+0x8e>
8e: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,64 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS bltu
#source: bltu.s
#as: -32
# Test the bltu macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0004 <text_label\+0x4>
4: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b4a0 fffe bne zero,a1,0+000a <text_label\+0xa>
a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9404 fffe beqz a0,0+0010 <text_label\+0x10>
10: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b024 0002 sltiu at,a0,2
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+001a <text_label\+0x1a>
1a: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 0024 0b90 sltu at,a0,at
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0028 <text_label\+0x28>
28: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b024 8000 sltiu at,a0,-32768
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0032 <text_label\+0x32>
32: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 0024 0b90 sltu at,a0,at
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0040 <text_label\+0x40>
40: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
[0-9a-f]+ <[^>]*> 0024 0b90 sltu at,a0,at
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0052 <text_label\+0x52>
52: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+005c <text_label\+0x5c>
5c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9404 fffe beqz a0,0+0062 <text_label\+0x62>
62: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9404 fffe beqz a0,0+0068 <text_label\+0x68>
68: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0072 <text_label\+0x72>
72: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+007c <text_label\+0x7c>
7c: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,87 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS branch-likely instructions
#source: branch-likely.s
#as: -32
# Check branch-likely instructions (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 9404 fffe beqz a0,0+0000 <text_label>
0: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b404 fffe bnez a0,0+0006 <text_label\+0x6>
6: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9404 fffe beqz a0,0+000c <text_label\+0xc>
c: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> b404 fffe bnez a0,0+0012 <text_label\+0x12>
12: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+001c <text_label\+0x1c>
1c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0026 <text_label\+0x26>
26: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0030 <text_label\+0x30>
30: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+003a <text_label\+0x3a>
3a: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0044 <text_label\+0x44>
44: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+004e <text_label\+0x4e>
4e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0058 <text_label\+0x58>
58: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0062 <text_label\+0x62>
62: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+006c <text_label\+0x6c>
6c: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+0076 <text_label\+0x76>
76: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b50 slt at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0080 <text_label\+0x80>
80: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b50 slt at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+008a <text_label\+0x8a>
8a: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+0094 <text_label\+0x94>
94: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+009e <text_label\+0x9e>
9e: R_MICROMIPS_PC16_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 00a4 0b90 sltu at,a0,a1
[0-9a-f]+ <[^>]*> b401 fffe bnez at,0+00a8 <text_label\+0xa8>
a8: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0085 0b90 sltu at,a1,a0
[0-9a-f]+ <[^>]*> 9401 fffe beqz at,0+00b2 <text_label\+0xb2>
b2: R_MICROMIPS_PC16_S1 external_label
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,35 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS branch-misc-1
#source: branch-misc-1.s
#as: -32
# Test the branches to local symbols in current file (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+003c <x>
3c: R_MICROMIPS_PC16_S1 l1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0044 <x\+0x8>
44: R_MICROMIPS_PC16_S1 l2
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+004c <x\+0x10>
4c: R_MICROMIPS_PC16_S1 l3
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0054 <x\+0x18>
54: R_MICROMIPS_PC16_S1 l4
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+005c <x\+0x20>
5c: R_MICROMIPS_PC16_S1 l5
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0064 <x\+0x28>
64: R_MICROMIPS_PC16_S1 l6
[0-9a-f]+ <[^>]*> 0000 0000 nop
\.\.\.
\.\.\.
\.\.\.
\.\.\.

View file

@ -0,0 +1,63 @@
#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 global symbols in current file (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0040 <x\+0x4>
3c: R_MICROMIPS_PC16_S1 g1\+0xf+fffc
3c: R_MIPS_NONE \*ABS\*\+0xf+fffc
3c: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0048 <x\+0xc>
44: R_MICROMIPS_PC16_S1 g2\+0xf+fffc
44: R_MIPS_NONE \*ABS\*\+0xf+fffc
44: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0050 <x\+0x14>
4c: R_MICROMIPS_PC16_S1 g3\+0xf+fffc
4c: R_MIPS_NONE \*ABS\*\+0xf+fffc
4c: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0058 <x\+0x1c>
54: R_MICROMIPS_PC16_S1 g4\+0xf+fffc
54: R_MIPS_NONE \*ABS\*\+0xf+fffc
54: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0060 <x\+0x24>
5c: R_MICROMIPS_PC16_S1 g5\+0xf+fffc
5c: R_MIPS_NONE \*ABS\*\+0xf+fffc
5c: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0068 <x\+0x2c>
64: R_MICROMIPS_PC16_S1 g6\+0xf+fffc
64: R_MIPS_NONE \*ABS\*\+0xf+fffc
64: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 9400 0000 b 0+00ac <g6\+0x4>
a8: R_MICROMIPS_PC16_S1 x1\+0xf+fffc
a8: R_MIPS_NONE \*ABS\*\+0xf+fffc
a8: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 0000 b 0+00b2 <g6\+0xa>
ae: R_MICROMIPS_PC16_S1 x2\+0xf+fffc
ae: R_MIPS_NONE \*ABS\*\+0xf+fffc
ae: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 0000 b 0+00b8 <g6\+0x10>
b4: R_MICROMIPS_PC16_S1 \.data\+0xf+fffc
b4: R_MIPS_NONE \*ABS\*\+0xf+fffc
b4: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,45 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS branch-misc-2
#source: branch-misc-2.s
#as: -32 -non_shared
# Test the backward branches to global symbols in current file (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+003c <x>
3c: R_MICROMIPS_PC16_S1 g1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0044 <x\+0x8>
44: R_MICROMIPS_PC16_S1 g2
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+004c <x\+0x10>
4c: R_MICROMIPS_PC16_S1 g3
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0054 <x\+0x18>
54: R_MICROMIPS_PC16_S1 g4
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+005c <x\+0x20>
5c: R_MICROMIPS_PC16_S1 g5
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0064 <x\+0x28>
64: R_MICROMIPS_PC16_S1 g6
[0-9a-f]+ <[^>]*> 0000 0000 nop
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 9400 fffe b 0+00a8 <g6>
a8: R_MICROMIPS_PC16_S1 x1
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 fffe b 0+00ae <g6\+0x6>
ae: R_MICROMIPS_PC16_S1 x2
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 fffe b 0+00b4 <g6\+0xc>
b4: R_MICROMIPS_PC16_S1 \.Ldata
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,63 @@
#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 global symbols in current file (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0040 <x\+0x4>
3c: R_MICROMIPS_PC16_S1 g1\+0xf+fffc
3c: R_MIPS_NONE \*ABS\*\+0xf+fffc
3c: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0048 <x\+0xc>
44: R_MICROMIPS_PC16_S1 g2\+0xf+fffc
44: R_MIPS_NONE \*ABS\*\+0xf+fffc
44: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0050 <x\+0x14>
4c: R_MICROMIPS_PC16_S1 g3\+0xf+fffc
4c: R_MIPS_NONE \*ABS\*\+0xf+fffc
4c: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0058 <x\+0x1c>
54: R_MICROMIPS_PC16_S1 g4\+0xf+fffc
54: R_MIPS_NONE \*ABS\*\+0xf+fffc
54: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0060 <x\+0x24>
5c: R_MICROMIPS_PC16_S1 g5\+0xf+fffc
5c: R_MIPS_NONE \*ABS\*\+0xf+fffc
5c: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 0000 bal 0+0068 <x\+0x2c>
64: R_MICROMIPS_PC16_S1 g6\+0xf+fffc
64: R_MIPS_NONE \*ABS\*\+0xf+fffc
64: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0000 0000 nop
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 9400 0000 b 0+00ac <g6\+0x4>
a8: R_MICROMIPS_PC16_S1 x1\+0xf+fffc
a8: R_MIPS_NONE \*ABS\*\+0xf+fffc
a8: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 0000 b 0+00b2 <g6\+0xa>
ae: R_MICROMIPS_PC16_S1 x2\+0xf+fffc
ae: R_MIPS_NONE \*ABS\*\+0xf+fffc
ae: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 0000 b 0+00b8 <g6\+0x10>
b4: R_MICROMIPS_PC16_S1 \.data\+0xf+fffc
b4: R_MIPS_NONE \*ABS\*\+0xf+fffc
b4: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,45 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS branch-misc-2pic
#source: branch-misc-2.s
#as: -32 -call_shared
# Test the backward branches to global symbols in current file (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+003c <x>
3c: R_MICROMIPS_PC16_S1 g1
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0044 <x\+0x8>
44: R_MICROMIPS_PC16_S1 g2
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+004c <x\+0x10>
4c: R_MICROMIPS_PC16_S1 g3
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0054 <x\+0x18>
54: R_MICROMIPS_PC16_S1 g4
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+005c <x\+0x20>
5c: R_MICROMIPS_PC16_S1 g5
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 4060 fffe bal 0+0064 <x\+0x28>
64: R_MICROMIPS_PC16_S1 g6
[0-9a-f]+ <[^>]*> 0000 0000 nop
\.\.\.
\.\.\.
\.\.\.
[0-9a-f]+ <[^>]*> 9400 fffe b 0+00a8 <g6>
a8: R_MICROMIPS_PC16_S1 x1
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 fffe b 0+00ae <g6\+0x6>
ae: R_MICROMIPS_PC16_S1 x2
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 fffe b 0+00b4 <g6\+0xc>
b4: R_MICROMIPS_PC16_S1 \.Ldata
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -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 (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
\.\.\.
[0-9a-f]+ <[^>]*> 9400 0000 b [0-9a-f]+ <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 bar\+0xf+fffc
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0xf+fffc
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 0000 b [0-9a-f]+ <foo\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 \.init\+0x2
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0x2
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0x2
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.
Disassembly of section \.init:
[0-9a-f]+ <[^>]*> 9400 0000 b [0-9a-f]+ <bar\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 foo\+0xf+fffc
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0xf+fffc
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0xf+fffc
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 9400 0000 b [0-9a-f]+ <bar\+0x[0-9a-f]+>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 \.text\+0x40002
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0x40002
[ ]*[0-9a-f]+: R_MIPS_NONE \*ABS\*\+0x40002
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,27 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS branch-misc-4
#as: -32
#source: branch-misc-4.s
# Verify PC-relative relocations do not overflow (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
\.\.\.
([0-9a-f]+) <[^>]*> 9400 fffe b \1 <foo>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 bar
[0-9a-f]+ <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 9400 fffe b \1 <\.Lfoo>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 \.Lbar
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.
Disassembly of section \.init:
([0-9a-f]+) <[^>]*> 9400 fffe b \1 <bar>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 foo
[0-9a-f]+ <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> 9400 fffe b \1 <\.Lbar>
[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 \.Lfoo
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,36 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS branches to self
#as: -32
#source: branch-self.s
# Test various ways to request a branch to self (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
([0-9a-f]+) <[^>]*> e930 sw v0,0\(v1\)
([0-9a-f]+) <[^>]*> cfff b \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> e930 sw v0,0\(v1\)
([0-9a-f]+) <[^>]*> cfff b \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> e930 sw v0,0\(v1\)
([0-9a-f]+) <[^>]*> cfff b \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> e930 sw v0,0\(v1\)
([0-9a-f]+) <[^>]*> cfff b \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> e930 sw v0,0\(v1\)
([0-9a-f]+) <[^>]*> cfff b \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
([0-9a-f]+) <[^>]*> e930 sw v0,0\(v1\)
([0-9a-f]+) <[^>]*> cfff b \1 <.*>
[ ]*[0-9a-f]+: R_MICROMIPS_PC10_S1 .*
([0-9a-f]+) <[^>]*> 0c00 nop
\.\.\.
\.\.\.

View file

@ -0,0 +1,38 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS CACHE instruction
#as: -32 --defsym micromips=1
#source: cache.s
# Check MIPS CACHE instruction assembly (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 20a2 67ff cache 0x5,2047\(v0\)
[0-9a-f]+ <[^>]*> 20a3 6800 cache 0x5,-2048\(v1\)
[0-9a-f]+ <[^>]*> 3020 1000 li at,4096
[0-9a-f]+ <[^>]*> 0081 0950 addu at,at,a0
[0-9a-f]+ <[^>]*> 20a1 6800 cache 0x5,-2048\(at\)
[0-9a-f]+ <[^>]*> 3020 f000 li at,-4096
[0-9a-f]+ <[^>]*> 00a1 0950 addu at,at,a1
[0-9a-f]+ <[^>]*> 20a1 67ff cache 0x5,2047\(at\)
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 00c1 0950 addu at,at,a2
[0-9a-f]+ <[^>]*> 20a1 6fff cache 0x5,-1\(at\)
[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
[0-9a-f]+ <[^>]*> 00e1 0950 addu at,at,a3
[0-9a-f]+ <[^>]*> 20a1 6000 cache 0x5,0\(at\)
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 0101 0950 addu at,at,t0
[0-9a-f]+ <[^>]*> 20a1 6000 cache 0x5,0\(at\)
[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
[0-9a-f]+ <[^>]*> 0121 0950 addu at,at,t1
[0-9a-f]+ <[^>]*> 20a1 6fff cache 0x5,-1\(at\)
[0-9a-f]+ <[^>]*> 5020 9000 li at,0x9000
[0-9a-f]+ <[^>]*> 0141 0950 addu at,at,t2
[0-9a-f]+ <[^>]*> 20a1 6000 cache 0x5,0\(at\)
[0-9a-f]+ <[^>]*> 41a1 ffff lui at,0xffff
[0-9a-f]+ <[^>]*> 5021 7000 ori at,at,0x7000
[0-9a-f]+ <[^>]*> 0161 0950 addu at,at,t3
[0-9a-f]+ <[^>]*> 20a1 6fff cache 0x5,-1\(at\)
\.\.\.

View file

@ -0,0 +1,31 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS DADDI instruction
#as: -32 --defsym micromips=1
#source: daddi.s
# Check MIPS DADDI instruction assembly (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 5862 7fdc daddi v1,v0,511
[0-9a-f]+ <[^>]*> 58a4 801c daddi a1,a0,-512
[0-9a-f]+ <[^>]*> 3020 0200 li at,512
[0-9a-f]+ <[^>]*> 5826 3910 dadd a3,a2,at
[0-9a-f]+ <[^>]*> 3020 fdff li at,-513
[0-9a-f]+ <[^>]*> 5828 4910 dadd t1,t0,at
[0-9a-f]+ <[^>]*> 3020 7fff li at,32767
[0-9a-f]+ <[^>]*> 582a 5910 dadd t3,t2,at
[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
[0-9a-f]+ <[^>]*> 582c 6910 dadd t5,t4,at
[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
[0-9a-f]+ <[^>]*> 582e 7910 dadd t7,t6,at
[0-9a-f]+ <[^>]*> 41a1 ffff lui at,0xffff
[0-9a-f]+ <[^>]*> 5021 7fff ori at,at,0x7fff
[0-9a-f]+ <[^>]*> 5830 8910 dadd s1,s0,at
[0-9a-f]+ <[^>]*> 5020 8200 li at,0x8200
[0-9a-f]+ <[^>]*> 5832 9910 dadd s3,s2,at
[0-9a-f]+ <[^>]*> 41a1 ffff lui at,0xffff
[0-9a-f]+ <[^>]*> 5021 7dff ori at,at,0x7dff
[0-9a-f]+ <[^>]*> 5834 a910 dadd s5,s4,at
\.\.\.

View file

@ -0,0 +1,116 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS dli
#source: dli.s
#as: -64
# Test the dli macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 3080 0000 li a0,0
[0-9a-f]+ <[^>]*> 3080 0001 li a0,1
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5080 8000 li a0,0x8000
[0-9a-f]+ <[^>]*> 3080 8000 li a0,-32768
[0-9a-f]+ <[^>]*> 41a4 0001 lui a0,0x1
[0-9a-f]+ <[^>]*> 41a4 0001 lui a0,0x1
[0-9a-f]+ <[^>]*> 5084 a5a5 ori a0,a0,0xa5a5
[0-9a-f]+ <[^>]*> 5080 8000 li a0,0x8000
[0-9a-f]+ <[^>]*> 5884 8000 dsll a0,a0,0x10
[0-9a-f]+ <[^>]*> 5084 1234 ori a0,a0,0x1234
[0-9a-f]+ <[^>]*> 41a4 ffff lui a0,0xffff
[0-9a-f]+ <[^>]*> 5884 0048 dsrl32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 41a4 ffff lui a0,0xffff
[0-9a-f]+ <[^>]*> 5884 0048 dsrl32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 6040 dsrl a0,a0,0xc
[0-9a-f]+ <[^>]*> 41a4 8000 lui a0,0x8000
[0-9a-f]+ <[^>]*> 5084 1234 ori a0,a0,0x1234
[0-9a-f]+ <[^>]*> 3080 8000 li a0,-32768
[0-9a-f]+ <[^>]*> 5884 8000 dsll a0,a0,0x10
[0-9a-f]+ <[^>]*> 5084 1234 ori a0,a0,0x1234
[0-9a-f]+ <[^>]*> 5884 8000 dsll a0,a0,0x10
[0-9a-f]+ <[^>]*> 5084 5678 ori a0,a0,0x5678
[0-9a-f]+ <[^>]*> 41a4 8000 lui a0,0x8000
[0-9a-f]+ <[^>]*> 5084 1234 ori a0,a0,0x1234
[0-9a-f]+ <[^>]*> 5884 8000 dsll a0,a0,0x10
[0-9a-f]+ <[^>]*> 5084 5678 ori a0,a0,0x5678
[0-9a-f]+ <[^>]*> 5884 8000 dsll a0,a0,0x10
[0-9a-f]+ <[^>]*> 3080 8765 li a0,-30875
[0-9a-f]+ <[^>]*> 41a4 ffff lui a0,0xffff
[0-9a-f]+ <[^>]*> 5084 4321 ori a0,a0,0x4321
[0-9a-f]+ <[^>]*> 3080 fff0 li a0,-16
[0-9a-f]+ <[^>]*> 3080 ff00 li a0,-256
[0-9a-f]+ <[^>]*> 3080 f000 li a0,-4096
[0-9a-f]+ <[^>]*> 41a4 ffff lui a0,0xffff
[0-9a-f]+ <[^>]*> 41a4 fff0 lui a0,0xfff0
[0-9a-f]+ <[^>]*> 41a4 ff00 lui a0,0xff00
[0-9a-f]+ <[^>]*> 41a4 f000 lui a0,0xf000
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 0008 dsll32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 3080 fff0 li a0,-16
[0-9a-f]+ <[^>]*> 5884 0008 dsll32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 3080 ff00 li a0,-256
[0-9a-f]+ <[^>]*> 5884 0008 dsll32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 3080 f000 li a0,-4096
[0-9a-f]+ <[^>]*> 5884 0008 dsll32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 5080 ffff li a0,0xffff
[0-9a-f]+ <[^>]*> 5884 8008 dsll32 a0,a0,0x10
[0-9a-f]+ <[^>]*> 5080 fff0 li a0,0xfff0
[0-9a-f]+ <[^>]*> 5884 8008 dsll32 a0,a0,0x10
[0-9a-f]+ <[^>]*> 5080 ff00 li a0,0xff00
[0-9a-f]+ <[^>]*> 5884 8008 dsll32 a0,a0,0x10
[0-9a-f]+ <[^>]*> 5080 f000 li a0,0xf000
[0-9a-f]+ <[^>]*> 5884 8008 dsll32 a0,a0,0x10
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 2040 dsrl a0,a0,0x4
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 4040 dsrl a0,a0,0x8
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 6040 dsrl a0,a0,0xc
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 8040 dsrl a0,a0,0x10
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 a040 dsrl a0,a0,0x14
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 c040 dsrl a0,a0,0x18
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 e040 dsrl a0,a0,0x1c
[0-9a-f]+ <[^>]*> 41a4 ffff lui a0,0xffff
[0-9a-f]+ <[^>]*> 5884 0048 dsrl32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 41a4 0fff lui a0,0xfff
[0-9a-f]+ <[^>]*> 5084 ffff ori a0,a0,0xffff
[0-9a-f]+ <[^>]*> 41a4 00ff lui a0,0xff
[0-9a-f]+ <[^>]*> 5084 ffff ori a0,a0,0xffff
[0-9a-f]+ <[^>]*> 41a4 000f lui a0,0xf
[0-9a-f]+ <[^>]*> 5084 ffff ori a0,a0,0xffff
[0-9a-f]+ <[^>]*> 5080 ffff li a0,0xffff
[0-9a-f]+ <[^>]*> 3080 0fff li a0,4095
[0-9a-f]+ <[^>]*> 3080 00ff li a0,255
[0-9a-f]+ <[^>]*> 3080 000f li a0,15
[0-9a-f]+ <[^>]*> 41a4 0003 lui a0,0x3
[0-9a-f]+ <[^>]*> 5084 fffc ori a0,a0,0xfffc
[0-9a-f]+ <[^>]*> 5080 ffff li a0,0xffff
[0-9a-f]+ <[^>]*> 5884 f000 dsll a0,a0,0x1e
[0-9a-f]+ <[^>]*> 5080 ffff li a0,0xffff
[0-9a-f]+ <[^>]*> 5884 1008 dsll32 a0,a0,0x2
[0-9a-f]+ <[^>]*> 5080 ffff li a0,0xffff
[0-9a-f]+ <[^>]*> 5884 3008 dsll32 a0,a0,0x6
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 0008 dsll32 a0,a0,0x0
[0-9a-f]+ <[^>]*> 5884 5040 dsrl a0,a0,0xa
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 e000 dsll a0,a0,0x1c
[0-9a-f]+ <[^>]*> 5884 5040 dsrl a0,a0,0xa
[0-9a-f]+ <[^>]*> 3080 ffff li a0,-1
[0-9a-f]+ <[^>]*> 5884 c000 dsll a0,a0,0x18
[0-9a-f]+ <[^>]*> 5884 5040 dsrl a0,a0,0xa
[0-9a-f]+ <[^>]*> 41a4 003f lui a0,0x3f
[0-9a-f]+ <[^>]*> 5084 fc03 ori a0,a0,0xfc03
[0-9a-f]+ <[^>]*> 5884 8000 dsll a0,a0,0x10
[0-9a-f]+ <[^>]*> 5084 ffff ori a0,a0,0xffff
[0-9a-f]+ <[^>]*> 5884 8000 dsll a0,a0,0x10
[0-9a-f]+ <[^>]*> 5084 c000 ori a0,a0,0xc000
\.\.\.

View file

@ -0,0 +1,28 @@
#objdump: -dr --prefix-addresses --show-raw-insn
#name: MIPS ELF jal
#source: jal.s
#as: -32
# Test the jal macro (microMIPS).
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 45d9 jalr t9
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> 0099 0f3c jalr a0,t9
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> f400 0000 jal 0+0000 <text_label>
e: R_MICROMIPS_26_S1 text_label
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> f400 0000 jal 0+0000 <text_label>
16: R_MICROMIPS_26_S1 external_text_label
[0-9a-f]+ <[^>]*> 0000 0000 nop
[0-9a-f]+ <[^>]*> d400 0000 j 0+0000 <text_label>
1e: R_MICROMIPS_26_S1 text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> d400 0000 j 0+0000 <text_label>
24: R_MICROMIPS_26_S1 external_text_label
[0-9a-f]+ <[^>]*> 0c00 nop
[0-9a-f]+ <[^>]*> 0c00 nop
\.\.\.

View file

@ -0,0 +1,28 @@
#objdump: -sr -j .text
#name: MIPS ELF reloc 2
#source: elf-rel2.s
#as: -mabi=o64
# Test the GPREL and LITERAL generation (microMIPS).
# FIXME: really this should check that the contents of .sdata, .lit4,
# and .lit8 are correct too.
.*: +file format .*mips.*
RELOCATION RECORDS FOR \[\.text\]:
OFFSET [ ]+ TYPE VALUE
0+0000000 R_MICROMIPS_LITERAL \.lit8
0+0000004 R_MICROMIPS_LITERAL \.lit8
0+0000008 R_MICROMIPS_LITERAL \.lit8
0+000000c R_MICROMIPS_LITERAL \.lit4
0+0000010 R_MICROMIPS_LITERAL \.lit4
0+0000014 R_MICROMIPS_LITERAL \.lit4
0+0000018 R_MICROMIPS_GPREL16 \.sdata
0+000001c R_MICROMIPS_GPREL16 \.sdata
0+0000020 R_MICROMIPS_GPREL16 \.sdata
Contents of section \.text:
0000 bc5c0000 bc5c0008 bc5c0010 9c5c0000 .*
0010 9c5c0004 9c5c0008 fc5c0000 fc5c0004 .*
0020 fc5c0008 .*

View file

@ -0,0 +1,16 @@
#objdump: --prefix-addresses -dr --show-raw-insn
#name: MIPS ELF reloc 4
#source: elf-rel4.s
#as: -32
.*: +file format .*mips.*
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 309c 0000 addiu a0,gp,0
[ ]*[0-9a-f]+: R_MICROMIPS_GPREL16 a
[0-9a-f]+ <[^>]*> 309c 0004 addiu a0,gp,4
[ ]*[0-9a-f]+: R_MICROMIPS_GPREL16 a
[0-9a-f]+ <[^>]*> 309c 0008 addiu a0,gp,8
[ ]*[0-9a-f]+: R_MICROMIPS_GPREL16 a
[0-9a-f]+ <[^>]*> 309c 000c addiu a0,gp,12
[ ]*[0-9a-f]+: R_MICROMIPS_GPREL16 a

View file

@ -0,0 +1,28 @@
#objdump: -sr -j .text
#name: MIPS ELF reloc 2
#source: elf-rel2.s
#as: -mabi=o64
# Test the GPREL and LITERAL generation (microMIPS).
# FIXME: really this should check that the contents of .sdata, .lit4,
# and .lit8 are correct too.
.*: +file format .*mips.*
RELOCATION RECORDS FOR \[\.text\]:
OFFSET [ ]+ TYPE VALUE
0+0000000 R_MICROMIPS_LITERAL \.lit8
0+0000004 R_MICROMIPS_LITERAL \.lit8
0+0000008 R_MICROMIPS_LITERAL \.lit8
0+000000c R_MICROMIPS_LITERAL \.lit4
0+0000010 R_MICROMIPS_LITERAL \.lit4
0+0000014 R_MICROMIPS_LITERAL \.lit4
0+0000018 R_MICROMIPS_GPREL16 \.sdata
0+000001c R_MICROMIPS_GPREL16 \.sdata
0+0000020 R_MICROMIPS_GPREL16 \.sdata
Contents of section \.text:
0000 5cbc0000 5cbc0800 5cbc1000 5c9c0000 .*
0010 5c9c0400 5c9c0800 5cfc0000 5cfc0400 .*
0020 5cfc0800 .*

View file

@ -0,0 +1,27 @@
#objdump: -dr --prefix-addresses --show-raw-insn --adjust-vma=0x55555550
#name: MIPS jal mask 1.1
#as: -32
#source: jal-mask-1.s
# Check address masks for JAL/J instructions.
.*: +file format .*mips.*
Disassembly of section \.text:
55555550 <[^>]*> d400 0000 j 50000000 <[^>]*>
55555554 <[^>]*> 0c00 nop
55555556 <[^>]*> d555 5552 j 52aaaaa4 <[^>]*>
5555555a <[^>]*> 0c00 nop
5555555c <[^>]*> d6aa aaac j 55555558 <[^>]*>
55555560 <[^>]*> 0c00 nop
55555562 <[^>]*> d7ff fffe j 57fffffc <[^>]*>
55555566 <[^>]*> 0c00 nop
55555568 <[^>]*> f400 0000 jal 50000000 <[^>]*>
5555556c <[^>]*> 0000 0000 nop
55555570 <[^>]*> f555 5552 jal 52aaaaa4 <[^>]*>
55555574 <[^>]*> 0000 0000 nop
55555578 <[^>]*> f6aa aaac jal 55555558 <[^>]*>
5555557c <[^>]*> 0000 0000 nop
55555580 <[^>]*> f7ff fffe jal 57fffffc <[^>]*>
55555584 <[^>]*> 0000 0000 nop
\.\.\.

View file

@ -0,0 +1,27 @@
#objdump: -dr --prefix-addresses --show-raw-insn --adjust-vma=0xaaaaaaa0
#name: MIPS jal mask 1.2
#as: -32
#source: jal-mask-1.s
# Check address masks for JAL/J instructions.
.*: +file format .*mips.*
Disassembly of section \.text:
aaaaaaa0 <[^>]*> d400 0000 j a8000000 <[^>]*>
aaaaaaa4 <[^>]*> 0c00 nop
aaaaaaa6 <[^>]*> d555 5552 j aaaaaaa4 <[^>]*>
aaaaaaaa <[^>]*> 0c00 nop
aaaaaaac <[^>]*> d6aa aaac j ad555558 <[^>]*>
aaaaaab0 <[^>]*> 0c00 nop
aaaaaab2 <[^>]*> d7ff fffe j affffffc <[^>]*>
aaaaaab6 <[^>]*> 0c00 nop
aaaaaab8 <[^>]*> f400 0000 jal a8000000 <[^>]*>
aaaaaabc <[^>]*> 0000 0000 nop
aaaaaac0 <[^>]*> f555 5552 jal aaaaaaa4 <[^>]*>
aaaaaac4 <[^>]*> 0000 0000 nop
aaaaaac8 <[^>]*> f6aa aaac jal ad555558 <[^>]*>
aaaaaacc <[^>]*> 0000 0000 nop
aaaaaad0 <[^>]*> f7ff fffe jal affffffc <[^>]*>
aaaaaad4 <[^>]*> 0000 0000 nop
\.\.\.

Some files were not shown because too many files have changed in this diff Show more