binutils-gdb/ld/testsuite/ld-mips-elf/elf-rel-got-n64.d
Matthew Fortune 351cdf24d2 [MIPS] Implement O32 FPXX, FP64 and FP64A ABI extensions
Specification:
https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking

include/

	* elf/mips.h (PT_MIPS_ABIFLAGS, SHT_MIPS_ABIFLAGS): Define.
	(Val_GNU_MIPS_ABI_FP_OLD_64): Rename from Val_GNU_MIPS_ABI_FP_64.
	(Val_GNU_MIPS_ABI_FP_64): Redefine.
	(Val_GNU_MIPS_ABI_FP_XX): Define.
	(Elf_External_ABIFlags_v0, Elf_Internal_ABIFlags_v0): New structures.
	(AFL_REG_NONE, AFL_REG_32, AFL_REG_64, AFL_REG_128): Define.
	(AFL_ASE_DSP, AFL_ASE_DSPR2, AFL_ASE_EVA, AFL_ASE_MCU): Likewise.
	(AFL_ASE_MDMX, AFL_ASE_MIPS3D, AFL_ASE_MT, AFL_ASE_SMARTMIPS): Likewise.
	(AFL_ASE_VIRT, AFL_ASE_MSA, AFL_ASE_MIPS16): Likewise.
	(AFL_ASE_MICROMIPS, AFL_ASE_XPA): Likewise.
	(AFL_EXT_XLR, AFL_EXT_OCTEON2, AFL_EXT_OCTEONP): Likewise.
	(AFL_EXT_LOONGSON_3A, AFL_EXT_OCTEON, AFL_EXT_5900): Likewise.
	(AFL_EXT_4650, AFL_EXT_4010, AFL_EXT_4100, AFL_EXT_3900): Likewise.
	(AFL_EXT_10000, AFL_EXT_SB1, AFL_EXT_4111, AFL_EXT_4120): Likewise.
	(AFL_EXT_5400, AFL_EXT_5500, AFL_EXT_LOONGSON_2E): Likewise.
	(AFL_EXT_LOONGSON_2F): Likewise.
	(bfd_mips_elf_swap_abiflags_v0_in): Prototype.
	(bfd_mips_elf_swap_abiflags_v0_out): Likewise.
	(bfd_mips_isa_ext): Likewise.

bfd/

	* elfxx-mips.c (ABI_O32_P, MIPS_ELF_ABIFLAGS_SECTION_NAME_P): New macro.
	(mips_elf_obj_tdata): Add abiflags and abiflags_valid fields.
	(bfd_mips_elf_swap_abiflags_v0_in): New function.
	(bfd_mips_elf_swap_abiflags_v0_out): Likewise.
	(_bfd_mips_elf_section_from_shdr): Handle SHT_MIPS_ABIFLAGS.
	(_bfd_mips_elf_fake_sections): Likewise.
	(_bfd_mips_elf_always_size_sections): Handle .MIPS.abiflags.
	(_bfd_mips_elf_additional_program_headers): Account for new
	PT_MIPS_ABIFLAGS program header.
	(_bfd_mips_elf_modify_segment_map): Create PT_MIPS_ABIFLAGS segment and
	associate with .MIPS.abiflags.
	(_bfd_mips_elf_gc_mark_extra_sections): New function.
	(bfd_mips_isa_ext, update_mips_abiflags_isa): New static function.
	(infer_mips_abiflags): Likewise.
	(_bfd_mips_elf_final_link): Handle .MIPS.abiflags.
	(mips_32bit_flags_p): Moved higher.
	(mips_elf_merge_obj_attributes, _bfd_mips_fp_abi_string): Error
	checking for FP ABIs.
	(_bfd_mips_elf_merge_private_bfd_data): Restructure and add abiflags
	checks.  Check EF_MIPS_FP64 flag consistency.
	(print_mips_ases, print_mips_isa_ext): New static function.
	(print_mips_fp_abi_value, get_mips_reg_size): Likewise.
	(_bfd_mips_elf_print_private_bfd_data): Display abiflags data.
	(_bfd_mips_post_process_headers): Set EI_ABIVERSION = 3 for
	Val_GNU_MIPS_ABI_FP_64 or Val_GNU_MIPS_ABI_FP_64A.
	* elfxx-mips.h (_bfd_mips_elf_gc_mark_extra_sections): New prototype.
	* elf32-mips.c (elf_backend_gc_mark_extra_sections): Implement.
	* elfn32-mips.c (elf_backend_gc_mark_extra_sections): Implement.
	* elf64-mips.c (elf_backend_gc_mark_extra_sections): Implement.

binutils/

	* readelf.c (get_mips_segment_type): Display name for PT_MIPS_ABIFLAGS.
	(get_mips_section_type_name): Display name for SHT_MIPS_ABIFLAGS.
	(display_mips_gnu_attribute): Abstracted fp abi printing to...
	(print_mips_fp_abi_value): New static function. Handle new FP ABIs.
	(print_mips_ases, print_mips_isa_ext): New static functions.
	(get_mips_reg_size): Likewise.
	(process_mips_specific): Display abiflags data.

elfcpp/

	* elfcpp.h (PT_MIPS_ABIFLAGS): New program header type.

gas/

	* config/tc-mips.c (mips_flags_frag): New static global.
	(struct mips_set_options): Add oddspreg field.
	(file_mips_opts, mips_opts): Initialize oddspreg.
	(ISA_HAS_ODD_SINGLE_FPR): Add CPU argument and update for R5900 and
	Loongson-3a.
	(enum options, md_longopts, md_parse_option): Add -mfpxx, -modd-spreg
	and -mno-odd-spreg options.
	(md_begin): Create .MIPS.abiflags section.
	(fpabi_incompatible_with, fpabi_requires): New static function.
	(check_fpabi): Likewise.
	(mips_check_options): Handle fp=xx and oddspreg restrictions.
	(file_mips_check_options): Set oddspreg by default for fp=xx.
	(mips_oddfpreg_ok): Re-write function.
	(check_regno): Check odd numbered registers regardless of FPR size.
	For fp != 32 use as_bad instead of as_warn.
	(match_float_constant): Rewrite check regarding FP register width.  Add
	support for generating constants when MXHC1 is present.  Handle fp=xx
	to comply with the ABI.
	(macro): Update M_LI_DD similarly to match_float_constant.  Generate
	MTHC1 when available.  Check that correct code can be generated for
	fp=xx and fp=64 ABIs.
	(parse_code_option, s_mipsset): Add fp=xx, oddspreg and nooddspreg
	options.
	(mips_convert_ase_flags): New static function.
	(mips_elf_final_processing): Use fpabi == Val_GNU_MIPS_ABI_FP_OLD_64
	to determine when to add the EF_MIPS_FP64 flag.  Populate the
	.MIPS.abiflags section.
	(md_mips_end): Update .gnu_attribute based on command line and .module
	as applicable.  Use check_fpabi to ensure .gnu.attribute and command
	line/.module options are consistent.
	* doc/as.texinfo: Add missing -mgp64/-mfp64 options and document new
	-mfpxx, -modd-spreg and -mno-odd-spreg options.
	* doc/c-mips.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg,
	gnu_attribute values and FP ABIs.

ld/

	* emulparams/elf32bmip.sh: Add .MIPS.abiflags.
	* emulparams/elf32bmipn32-defs.sh: Likewise.
	* emulparams/elf64bmip-defs.sh: Likewise.

opcodes/

	* micromips-opc.c (COD, LCD) New macros.
	(cfc1, ctc1): Remove FP_S attribute.
	(dmfc1, mfc1, mfhc1): Add LCD attribute.
	(dmtc1, mtc1, mthc1): Add COD attribute.
	* mips-opc.c (cfc1, cftc1, ctc, cttc1): Remove FP_S attribute.

binutils/testsuite/

	* binutils-all/readelf.s: Account for .MIPS.abiflags and
	.gnu.attributes.
	* binutils-all/readelf.ss-tmips: Likewise.
	* binutils-all/strip-3.d: Likewise.

gas/testsuite/

	* gas/mips/attr-gnu-4-0.d: New.
	* gas/mips/attr-gnu-4-0.s: Likewise.
	* gas/mips/attr-gnu-4-1-mfp32.l: Likewise.
	* gas/mips/attr-gnu-4-1-mfp32.s: Likewise.
	* gas/mips/attr-gnu-4-1-mfp64.l: Likewise.
	* gas/mips/attr-gnu-4-1-mfp64.s: Likewise.
	* gas/mips/attr-gnu-4-1-mfpxx.s: Likewise.
	* gas/mips/attr-gnu-4-1-msingle-float.l: Likewise.
	* gas/mips/attr-gnu-4-1-msingle-float.s: Likewise.
	* gas/mips/attr-gnu-4-1-msoft-float.l: Likewise.
	* gas/mips/attr-gnu-4-1-msoft-float.s: Likewise.
	* gas/mips/attr-gnu-4-1.d: Likewise.
	* gas/mips/attr-gnu-4-1.s: Likewise.
	* gas/mips/attr-gnu-4-2-mdouble-float.l: Likewise.
	* gas/mips/attr-gnu-4-2-mdouble-float.s: Likewise.
	* gas/mips/attr-gnu-4-2-msoft-float.l: Likewise.
	* gas/mips/attr-gnu-4-2-msoft-float.s: Likewise.
	* gas/mips/attr-gnu-4-2.d: Likewise.
	* gas/mips/attr-gnu-4-2.s: Likewise.
	* gas/mips/attr-gnu-4-3-mhard-float.l: Likewise.
	* gas/mips/attr-gnu-4-3-mhard-float.s: Likewise.
	* gas/mips/attr-gnu-4-3.d: Likewise.
	* gas/mips/attr-gnu-4-3.s: Likewise.
	* gas/mips/attr-gnu-4-4.l: Likewise.
	* gas/mips/attr-gnu-4-4.s: Likewise.
	* gas/mips/attr-gnu-4-5-64.l: Likewise.
	* gas/mips/attr-gnu-4-5-64.s: Likewise.
	* gas/mips/attr-gnu-4-5.d: Likewise.
	* gas/mips/attr-gnu-4-5.l: Likewise.
	* gas/mips/attr-gnu-4-5.s: Likewise.
	* gas/mips/attr-gnu-4-6-64.l: Likewise.
	* gas/mips/attr-gnu-4-6-64.s: Likewise.
	* gas/mips/attr-gnu-4-6.d: Likewise.
	* gas/mips/attr-gnu-4-6.l: Likewise.
	* gas/mips/attr-gnu-4-6.s: Likewise.
	* gas/mips/attr-gnu-4-6-msingle-float.l: Likewise.
	* gas/mips/attr-gnu-4-6-msingle-float.s: Likewise.
	* gas/mips/attr-gnu-4-6-msoft-float.l: Likewise.
	* gas/mips/attr-gnu-4-6-msoft-float.s: Likewise.
	* gas/mips/attr-gnu-4-6-noodd.l: Likewise.
	* gas/mips/attr-gnu-4-6-noodd.s: Likewise.
	* gas/mips/attr-gnu-4-7-64.l: Likewise.
	* gas/mips/attr-gnu-4-7-64.s: Likewise.
	* gas/mips/attr-gnu-4-7-msingle-float.l: Likewise.
	* gas/mips/attr-gnu-4-7-msingle-float.s: Likewise.
	* gas/mips/attr-gnu-4-7-msoft-float.l: Likewise.
	* gas/mips/attr-gnu-4-7-msoft-float.s: Likewise.
	* gas/mips/attr-gnu-4-7-odd.l: Likewise.
	* gas/mips/attr-gnu-4-7-odd.s: Likewise.
	* gas/mips/attr-gnu-4-7.d: Likewise.
	* gas/mips/attr-gnu-4-7.l: Likewise.
	* gas/mips/attr-gnu-4-7.s: Likewise.
	* gas/mips/attr-none-double.d: Likewise.
	* gas/mips/attr-none-o32-fp64.d: Likewise.
	* gas/mips/attr-none-o32-fp64-nooddspreg.d
	* gas/mips/attr-none-o32-fpxx.d: Likewise.
	* gas/mips/attr-none-single-float.d: Likewise.
	* gas/mips/attr-none-soft-float.d: Likewise.
	* gas/mips/elf_arch_mips32r3.d: Likewise.
	* gas/mips/elf_arch_mips32r5.d: Likewise.
	* gas/mips/elf_arch_mips64r3.d: Likewise.
	* gas/mips/elf_arch_mips64r5.d: Likewise.
	* gas/mips/li-d.d: Likewise.
	* gas/mips/li-d.s: Likewise.
	* gas/mips/module-check-warn.l: Likewise.
	* gas/mips/module-check-warn.s: Likewise.
	* gas/mips/module-check.d: Likewise.
	* gas/mips/module-check.s: Likewise.
	* gas/mips/module-mfp32.d: Likewise.
	* gas/mips/module-mfp32.s: Likewise.
	* gas/mips/module-mfp64.d: Likewise.
	* gas/mips/module-mfp64.s: Likewise.
	* gas/mips/module-mfp64-noodd.d: Likewise.
	* gas/mips/module-mfp64-noodd.s: Likewise.
	* gas/mips/module-mfpxx.d: Likewise.
	* gas/mips/module-mfpxx.s: Likewise.
	* gas/mips/module-msingle-float.d: Likewise.
	* gas/mips/module-msingle-float.s: Likewise.
	* gas/mips/module-msoft-float.d: Likewise.
	* gas/mips/module-msoft-float.s: Likewise.
	* gas/mips/module-set-mfpxx.d: Likewise.
	* gas/mips/module-set-mfpxx.s: Likewise.
	* gas/mips/fpxx-oddfpreg.d: Likewise.
	* gas/mips/fpxx-oddfpreg.l: Likewise.
	* gas/mips/fpxx-oddfpreg.s: Likewise.
	* gas/mips/no-odd-spreg.d: Likewise.
	* gas/mips/odd-spreg.d: Likewise.
	* gas/elf/section2.e-mips: Adjust expected output.
	* gas/mips/attr-gnu-abi-fp-1.d: Likewise.
	* gas/mips/attr-gnu-abi-msa-1.d: Likewise.
	* gas/mips/call-nonpic-1.d: Likewise.
	* gas/mips/elf_arch_mips1.d: Likewise.
	* gas/mips/elf_arch_mips2.d: Likewise.
	* gas/mips/elf_arch_mips3.d: Likewise.
	* gas/mips/elf_arch_mips32.d: Likewise.
	* gas/mips/elf_arch_mips32r2.d: Likewise.
	* gas/mips/elf_arch_mips4.d: Likewise.
	* gas/mips/elf_arch_mips5.d: Likewise.
	* gas/mips/elf_arch_mips64.d: Likewise.
	* gas/mips/elf_arch_mips64r2.d: Likewise.
	* gas/mips/elf_ase_micromips-2.d: Likewise.
	* gas/mips/elf_ase_micromips.d: Likewise.
	* gas/mips/elf_ase_mips16-2.d: Likewise.
	* gas/mips/elf_ase_mips16.d: Likewise.
	* gas/mips/module-defer-warn1.d: Likewise.
	* gas/mips/module-override.d: Likewise.
	* gas/mips/n32-consec.d: Likewise.
	* gas/mips/nan-2008-1.d: Likewise.
	* gas/mips/nan-2008-2.d: Likewise.
	* gas/mips/nan-2008-3.d: Likewise.
	* gas/mips/nan-2008-4.d: Likewise.
	* gas/mips/nan-legacy-1.d: Likewise.
	* gas/mips/nan-legacy-2.d: Likewise.
	* gas/mips/nan-legacy-3.d: Likewise.
	* gas/mips/nan-legacy-4.d: Likewise.
	* gas/mips/nan-legacy-5.d: Likewise.
	* gas/mips/tmips16-e.d: Likewise.
	* gas/mips/tmips16-f.d: Likewise.
	* gas/mips/tmipsel16-e.d: Likewise.
	* gas/mips/tmipsel16-f.d: Likewise.
	* gas/testsuite/gas/mips/mips.exp: Add new tests.

ld/testsuite/

	* ld-mips-elf/abiflags-strip1-ph.d: New.
	* ld-mips-elf/abiflags-strip2-ph.d: Likewise.
	* ld-mips-elf/abiflags-strip3-ph.d: Likewise.
	* ld-mips-elf/abiflags-strip4-ph.d: Likewise.
	* ld-mips-elf/abiflags-strip5-ph.d: Likewise.
	* ld-mips-elf/abiflags-strip6-ph.d: Likewise.
	* ld-mips-elf/abiflags-strip7-ph.d: Likewise.
	* ld-mips-elf/abiflags-strip8-ph.d: Likewise.
	* ld-mips-elf/abiflags-strip9-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-n32-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-n64-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-06.d: Likewise.
	* ld-mips-elf/attr-gnu-4-07.d: Likewise.
	* ld-mips-elf/attr-gnu-4-08.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-n32-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-n64-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-16.d: Likewise.
	* ld-mips-elf/attr-gnu-4-17.d: Likewise.
	* ld-mips-elf/attr-gnu-4-18.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-n32-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-n64-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-26.d: Likewise.
	* ld-mips-elf/attr-gnu-4-27.d: Likewise.
	* ld-mips-elf/attr-gnu-4-28.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-n32-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-n64-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-36.d: Likewise.
	* ld-mips-elf/attr-gnu-4-37.d: Likewise.
	* ld-mips-elf/attr-gnu-4-38.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-46.d: Likewise.
	* ld-mips-elf/attr-gnu-4-47.d: Likewise.
	* ld-mips-elf/attr-gnu-4-48.d: Likewise.
	* ld-mips-elf/attr-gnu-4-5-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-50.d: Likewise.
	* ld-mips-elf/attr-gnu-4-52.d: Likewise.
	* ld-mips-elf/attr-gnu-4-53.d: Likewise.
	* ld-mips-elf/attr-gnu-4-54.d: Likewise.
	* ld-mips-elf/attr-gnu-4-55.d: Likewise.
	* ld-mips-elf/attr-gnu-4-56.d: Likewise.
	* ld-mips-elf/attr-gnu-4-57.d: Likewise.
	* ld-mips-elf/attr-gnu-4-58.d: Likewise.
	* ld-mips-elf/attr-gnu-4-6-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-6.s: Likewise.
	* ld-mips-elf/attr-gnu-4-60.d: Likewise.
	* ld-mips-elf/attr-gnu-4-61.d: Likewise.
	* ld-mips-elf/attr-gnu-4-62.d: Likewise.
	* ld-mips-elf/attr-gnu-4-63.d: Likewise.
	* ld-mips-elf/attr-gnu-4-64.d: Likewise.
	* ld-mips-elf/attr-gnu-4-65.d: Likewise.
	* ld-mips-elf/attr-gnu-4-66.d: Likewise.
	* ld-mips-elf/attr-gnu-4-67.d: Likewise.
	* ld-mips-elf/attr-gnu-4-68.d: Likewise.
	* ld-mips-elf/attr-gnu-4-7-ph.d: Likewise.
	* ld-mips-elf/attr-gnu-4-7.s: Likewise.
	* ld-mips-elf/attr-gnu-4-70.d: Likewise.
	* ld-mips-elf/attr-gnu-4-71.d: Likewise.
	* ld-mips-elf/attr-gnu-4-72.d: Likewise.
	* ld-mips-elf/attr-gnu-4-73.d: Likewise.
	* ld-mips-elf/attr-gnu-4-74.d: Likewise.
	* ld-mips-elf/attr-gnu-4-75.d: Likewise.
	* ld-mips-elf/attr-gnu-4-76.d: Likewise.
	* ld-mips-elf/attr-gnu-4-77.d: Likewise.
	* ld-mips-elf/attr-gnu-4-78.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8.s: Likewise.
	* ld-mips-elf/attr-gnu-4-81.d: Likewise.
	* ld-mips-elf/empty.s: Likewise.
	* ld-mips-elf/attr-gnu-4-00.d: Adjust expected output.
	* ld-mips-elf/attr-gnu-4-01.d: Likewise.
	* ld-mips-elf/attr-gnu-4-02.d: Likewise.
	* ld-mips-elf/attr-gnu-4-03.d: Likewise.
	* ld-mips-elf/attr-gnu-4-04.d: Likewise.
	* ld-mips-elf/attr-gnu-4-05.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-14.d: Likewise.
	* ld-mips-elf/attr-gnu-4-15.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2.s: Likewise.
	* ld-mips-elf/attr-gnu-4-20.d: Likewise.
	* ld-mips-elf/attr-gnu-4-22.d: Likewise.
	* ld-mips-elf/attr-gnu-4-24.d: Likewise.
	* ld-mips-elf/attr-gnu-4-25.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3.s: Likewise.
	* ld-mips-elf/attr-gnu-4-30.d: Likewise.
	* ld-mips-elf/attr-gnu-4-33.d: Likewise.
	* ld-mips-elf/attr-gnu-4-34.d: Likewise.
	* ld-mips-elf/attr-gnu-4-35.d: Likewise.
	* ld-mips-elf/attr-gnu-4-40.d: Likewise.
	* ld-mips-elf/attr-gnu-4-41.d: Likewise.
	* ld-mips-elf/attr-gnu-4-42.d: Likewise.
	* ld-mips-elf/attr-gnu-4-43.d: Likewise.
	* ld-mips-elf/attr-gnu-4-44.d: Likewise.
	* ld-mips-elf/attr-gnu-4-45.d: Likewise.
	* ld-mips-elf/attr-gnu-4-5.s: Likewise.
	* ld-mips-elf/attr-gnu-4-51.d: Likewise.
	* ld-mips-elf/attr-gnu-8-00.d: Likewise.
	* ld-mips-elf/attr-gnu-8-01.d: Likewise.
	* ld-mips-elf/attr-gnu-8-02.d: Likewise.
	* ld-mips-elf/attr-gnu-8-10.d: Likewise.
	* ld-mips-elf/attr-gnu-8-11.d: Likewise.
	* ld-mips-elf/attr-gnu-8-20.d: Likewise.
	* ld-mips-elf/attr-gnu-8-22.d: Likewise.
	* ld-mips-elf/jalx-2.dd: Likewise.
	* ld-mips-elf/mips16-pic-1.gd: Likewise.
	* ld-mips-elf/mips16-pic-2.gd: Likewise.
	* ld-mips-elf/mips16-pic-3.gd: Likewise.
	* ld-mips-elf/mips16-pic-4a.gd: Likewise.
	* ld-mips-elf/multi-got-no-shared.d: Likewise.
	* ld-mips-elf/nan-2008.d: Likewise.
	* ld-mips-elf/nan-legacy.d: Rework test.
	* ld-mips-elf/pic-and-nonpic-3a.gd: Likewise.
	* ld-mips-elf/pic-and-nonpic-3b.gd: Likewise.
	* ld-mips-elf/pic-and-nonpic-5b.gd: Likewise.
	* ld-mips-elf/pic-and-nonpic-6.ld: Likewise.
	* ld-mips-elf/rel32-n32.d: Likewise.
	* ld-mips-elf/rel32-o32.d: Likewise.
	* ld-mips-elf/rel64.d: Likewise.
	* ld-mips-elf/tls-multi-got-1.r: Likewise.
	* ld-elf/group.ld: Discard .MIPS.abiflags and .gnu.attributes.
	* ld-elf/orphan-region.ld: Likewise.
	* ld-elf/orphan.ld: Likewise.
	* ld-mips-elf/compressed-plt-1.ld: Likewise.
	* ld-mips-elf/dyn-sec64.ld: Likewise.
	* ld-mips-elf/got-dump-1.ld: Likewise.
	* ld-mips-elf/got-dump-2.ld: Likewise.
	* ld-mips-elf/got-page-1.ld: Likewise.
	* ld-mips-elf/mips-dyn.ld: Likewise.
	* ld-mips-elf/mips-lib.ld: Likewise.
	* ld-mips-elf/pic-and-nonpic-3a.ld: Likewise.
	* ld-mips-elf/pic-and-nonpic-3b.ld: Likewise.
	* ld-mips-elf/pic-and-nonpic-4b.ld: Likewise.
	* ld-mips-elf/pic-and-nonpic-5b.ld: Likewise.
	* ld-mips-elf/region1.t: Likewise.
	* ld-mips-elf/stub-dynsym-1.ld: Likewise.
	* ld-mips-elf/tls-hidden3.ld: Likewise.
	* ld-mips-elf/vxworks1.ld: Likewise.
	* ld-scripts/overlay-size.t: Likewise.
	* ld-mips-elf/elf-rel-got-n32-embed.d: Remove .MIPS.abiflags from
	objects.
	* ld-mips-elf/elf-rel-got-n32.d: Likewise.
	* ld-mips-elf/elf-rel-got-n64-embed.d: Likewise.
	* ld-mips-elf/elf-rel-got-n64-linux.d: Likewise.
	* ld-mips-elf/elf-rel-got-n64.d: Likewise.
	* ld-mips-elf/elf-rel-xgot-n32.d: Likewise.
	* ld-mips-elf/elf-rel-xgot-n32-embed.d: Likewise.
	* ld-mips-elf/elf-rel-xgot-n64.d: Likewise.
	* ld-mips-elf/elf-rel-xgot-n64-linux.d: Likewise.
	* ld-mips-elf/elf-rel-xgot-n64-embed.d: Likewise.
	* ld-mips-elf/mips-elf.exp: Add new tests.
2014-07-29 11:27:59 +01:00

326 lines
12 KiB
Makefile

#name: MIPS ELF got reloc n64
#as: -march=from-abi -EB -64 -KPIC
#objcopy_objects: -R .MIPS.abiflags
#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
.*: +file format elf64-.*mips.*
Disassembly of section \.MIPS\.options:
00000000100000e8 <\.MIPS\.options>:
100000e8: 01280000 .*
100000ec: 00000000 .*
100000f0: 92020022 .*
\.\.\.
1000010c: 10018600 .*
Disassembly of section \.text:
0000000010000110 <fn>:
10000110: df858020 ld a1,-32736\(gp\)
10000114: df858020 ld a1,-32736\(gp\)
10000118: 64a5000c daddiu a1,a1,12
1000011c: df858020 ld a1,-32736\(gp\)
10000120: 3c010001 lui at,0x1
10000124: 3421e240 ori at,at,0xe240
10000128: 00a1282d daddu a1,a1,at
1000012c: df858020 ld a1,-32736\(gp\)
10000130: 00b1282d daddu a1,a1,s1
10000134: df858020 ld a1,-32736\(gp\)
10000138: 64a5000c daddiu a1,a1,12
1000013c: 00b1282d daddu a1,a1,s1
10000140: df858020 ld a1,-32736\(gp\)
10000144: 3c010001 lui at,0x1
10000148: 3421e240 ori at,at,0xe240
1000014c: 00a1282d daddu a1,a1,at
10000150: 00b1282d daddu a1,a1,s1
10000154: df858028 ld a1,-32728\(gp\)
10000158: dca5055c ld a1,1372\(a1\)
1000015c: df858028 ld a1,-32728\(gp\)
10000160: dca50568 ld a1,1384\(a1\)
10000164: df858028 ld a1,-32728\(gp\)
10000168: 00b1282d daddu a1,a1,s1
1000016c: dca5055c ld a1,1372\(a1\)
10000170: df858028 ld a1,-32728\(gp\)
10000174: 00b1282d daddu a1,a1,s1
10000178: dca50568 ld a1,1384\(a1\)
1000017c: df818028 ld at,-32728\(gp\)
10000180: 0025082d daddu at,at,a1
10000184: dc25057e ld a1,1406\(at\)
10000188: df818028 ld at,-32728\(gp\)
1000018c: 0025082d daddu at,at,a1
10000190: fc250594 sd a1,1428\(at\)
10000194: df818020 ld at,-32736\(gp\)
10000198: 88250000 lwl a1,0\(at\)
1000019c: 98250003 lwr a1,3\(at\)
100001a0: df818020 ld at,-32736\(gp\)
100001a4: 6421000c daddiu at,at,12
100001a8: 88250000 lwl a1,0\(at\)
100001ac: 98250003 lwr a1,3\(at\)
100001b0: df818020 ld at,-32736\(gp\)
100001b4: 0031082d daddu at,at,s1
100001b8: 88250000 lwl a1,0\(at\)
100001bc: 98250003 lwr a1,3\(at\)
100001c0: df818020 ld at,-32736\(gp\)
100001c4: 6421000c daddiu at,at,12
100001c8: 0031082d daddu at,at,s1
100001cc: 88250000 lwl a1,0\(at\)
100001d0: 98250003 lwr a1,3\(at\)
100001d4: df818020 ld at,-32736\(gp\)
100001d8: 64210022 daddiu at,at,34
100001dc: 0025082d daddu at,at,a1
100001e0: 88250000 lwl a1,0\(at\)
100001e4: 98250003 lwr a1,3\(at\)
100001e8: df818020 ld at,-32736\(gp\)
100001ec: 64210038 daddiu at,at,56
100001f0: 0025082d daddu at,at,a1
100001f4: a8250000 swl a1,0\(at\)
100001f8: b8250003 swr a1,3\(at\)
100001fc: df858020 ld a1,-32736\(gp\)
10000200: df858030 ld a1,-32720\(gp\)
10000204: df858038 ld a1,-32712\(gp\)
10000208: df858020 ld a1,-32736\(gp\)
1000020c: 00b1282d daddu a1,a1,s1
10000210: df858030 ld a1,-32720\(gp\)
10000214: 00b1282d daddu a1,a1,s1
10000218: df858038 ld a1,-32712\(gp\)
1000021c: 00b1282d daddu a1,a1,s1
10000220: df858028 ld a1,-32728\(gp\)
10000224: dca5055c ld a1,1372\(a1\)
10000228: df858028 ld a1,-32728\(gp\)
1000022c: dca50568 ld a1,1384\(a1\)
10000230: df858028 ld a1,-32728\(gp\)
10000234: 00b1282d daddu a1,a1,s1
10000238: dca5055c ld a1,1372\(a1\)
1000023c: df858028 ld a1,-32728\(gp\)
10000240: 00b1282d daddu a1,a1,s1
10000244: dca50568 ld a1,1384\(a1\)
10000248: df818028 ld at,-32728\(gp\)
1000024c: 0025082d daddu at,at,a1
10000250: dc25057e ld a1,1406\(at\)
10000254: df818028 ld at,-32728\(gp\)
10000258: 0025082d daddu at,at,a1
1000025c: fc250594 sd a1,1428\(at\)
10000260: df818020 ld at,-32736\(gp\)
10000264: 88250000 lwl a1,0\(at\)
10000268: 98250003 lwr a1,3\(at\)
1000026c: df818030 ld at,-32720\(gp\)
10000270: 88250000 lwl a1,0\(at\)
10000274: 98250003 lwr a1,3\(at\)
10000278: df818020 ld at,-32736\(gp\)
1000027c: 0031082d daddu at,at,s1
10000280: 88250000 lwl a1,0\(at\)
10000284: 98250003 lwr a1,3\(at\)
10000288: df818030 ld at,-32720\(gp\)
1000028c: 0031082d daddu at,at,s1
10000290: 88250000 lwl a1,0\(at\)
10000294: 98250003 lwr a1,3\(at\)
10000298: df818040 ld at,-32704\(gp\)
1000029c: 0025082d daddu at,at,a1
100002a0: 88250000 lwl a1,0\(at\)
100002a4: 98250003 lwr a1,3\(at\)
100002a8: df818048 ld at,-32696\(gp\)
100002ac: 0025082d daddu at,at,a1
100002b0: a8250000 swl a1,0\(at\)
100002b4: b8250003 swr a1,3\(at\)
100002b8: df858050 ld a1,-32688\(gp\)
100002bc: df858050 ld a1,-32688\(gp\)
100002c0: df998050 ld t9,-32688\(gp\)
100002c4: df998050 ld t9,-32688\(gp\)
100002c8: df998050 ld t9,-32688\(gp\)
100002cc: 0411ff90 bal 10000110 <fn>
100002d0: 00000000 nop
100002d4: df998050 ld t9,-32688\(gp\)
100002d8: 0411ff8d bal 10000110 <fn>
100002dc: 00000000 nop
100002e0: df858058 ld a1,-32680\(gp\)
100002e4: df858058 ld a1,-32680\(gp\)
100002e8: 64a5000c daddiu a1,a1,12
100002ec: df858058 ld a1,-32680\(gp\)
100002f0: 3c010001 lui at,0x1
100002f4: 3421e240 ori at,at,0xe240
100002f8: 00a1282d daddu a1,a1,at
100002fc: df858058 ld a1,-32680\(gp\)
10000300: 00b1282d daddu a1,a1,s1
10000304: df858058 ld a1,-32680\(gp\)
10000308: 64a5000c daddiu a1,a1,12
1000030c: 00b1282d daddu a1,a1,s1
10000310: df858058 ld a1,-32680\(gp\)
10000314: 3c010001 lui at,0x1
10000318: 3421e240 ori at,at,0xe240
1000031c: 00a1282d daddu a1,a1,at
10000320: 00b1282d daddu a1,a1,s1
10000324: df858028 ld a1,-32728\(gp\)
10000328: dca505d4 ld a1,1492\(a1\)
1000032c: df858028 ld a1,-32728\(gp\)
10000330: dca505e0 ld a1,1504\(a1\)
10000334: df858028 ld a1,-32728\(gp\)
10000338: 00b1282d daddu a1,a1,s1
1000033c: dca505d4 ld a1,1492\(a1\)
10000340: df858028 ld a1,-32728\(gp\)
10000344: 00b1282d daddu a1,a1,s1
10000348: dca505e0 ld a1,1504\(a1\)
1000034c: df818028 ld at,-32728\(gp\)
10000350: 0025082d daddu at,at,a1
10000354: dc2505f6 ld a1,1526\(at\)
10000358: df818028 ld at,-32728\(gp\)
1000035c: 0025082d daddu at,at,a1
10000360: fc25060c sd a1,1548\(at\)
10000364: df818058 ld at,-32680\(gp\)
10000368: 88250000 lwl a1,0\(at\)
1000036c: 98250003 lwr a1,3\(at\)
10000370: df818058 ld at,-32680\(gp\)
10000374: 6421000c daddiu at,at,12
10000378: 88250000 lwl a1,0\(at\)
1000037c: 98250003 lwr a1,3\(at\)
10000380: df818058 ld at,-32680\(gp\)
10000384: 0031082d daddu at,at,s1
10000388: 88250000 lwl a1,0\(at\)
1000038c: 98250003 lwr a1,3\(at\)
10000390: df818058 ld at,-32680\(gp\)
10000394: 6421000c daddiu at,at,12
10000398: 0031082d daddu at,at,s1
1000039c: 88250000 lwl a1,0\(at\)
100003a0: 98250003 lwr a1,3\(at\)
100003a4: df818058 ld at,-32680\(gp\)
100003a8: 64210022 daddiu at,at,34
100003ac: 0025082d daddu at,at,a1
100003b0: 88250000 lwl a1,0\(at\)
100003b4: 98250003 lwr a1,3\(at\)
100003b8: df818058 ld at,-32680\(gp\)
100003bc: 64210038 daddiu at,at,56
100003c0: 0025082d daddu at,at,a1
100003c4: a8250000 swl a1,0\(at\)
100003c8: b8250003 swr a1,3\(at\)
100003cc: df858058 ld a1,-32680\(gp\)
100003d0: df858060 ld a1,-32672\(gp\)
100003d4: df858068 ld a1,-32664\(gp\)
100003d8: df858058 ld a1,-32680\(gp\)
100003dc: 00b1282d daddu a1,a1,s1
100003e0: df858060 ld a1,-32672\(gp\)
100003e4: 00b1282d daddu a1,a1,s1
100003e8: df858068 ld a1,-32664\(gp\)
100003ec: 00b1282d daddu a1,a1,s1
100003f0: df858028 ld a1,-32728\(gp\)
100003f4: dca505d4 ld a1,1492\(a1\)
100003f8: df858028 ld a1,-32728\(gp\)
100003fc: dca505e0 ld a1,1504\(a1\)
10000400: df858028 ld a1,-32728\(gp\)
10000404: 00b1282d daddu a1,a1,s1
10000408: dca505d4 ld a1,1492\(a1\)
1000040c: df858028 ld a1,-32728\(gp\)
10000410: 00b1282d daddu a1,a1,s1
10000414: dca505e0 ld a1,1504\(a1\)
10000418: df818028 ld at,-32728\(gp\)
1000041c: 0025082d daddu at,at,a1
10000420: dc2505f6 ld a1,1526\(at\)
10000424: df818028 ld at,-32728\(gp\)
10000428: 0025082d daddu at,at,a1
1000042c: fc25060c sd a1,1548\(at\)
10000430: df818058 ld at,-32680\(gp\)
10000434: 88250000 lwl a1,0\(at\)
10000438: 98250003 lwr a1,3\(at\)
1000043c: df818060 ld at,-32672\(gp\)
10000440: 88250000 lwl a1,0\(at\)
10000444: 98250003 lwr a1,3\(at\)
10000448: df818058 ld at,-32680\(gp\)
1000044c: 0031082d daddu at,at,s1
10000450: 88250000 lwl a1,0\(at\)
10000454: 98250003 lwr a1,3\(at\)
10000458: df818060 ld at,-32672\(gp\)
1000045c: 0031082d daddu at,at,s1
10000460: 88250000 lwl a1,0\(at\)
10000464: 98250003 lwr a1,3\(at\)
10000468: df818070 ld at,-32656\(gp\)
1000046c: 0025082d daddu at,at,a1
10000470: 88250000 lwl a1,0\(at\)
10000474: 98250003 lwr a1,3\(at\)
10000478: df818078 ld at,-32648\(gp\)
1000047c: 0025082d daddu at,at,a1
10000480: a8250000 swl a1,0\(at\)
10000484: b8250003 swr a1,3\(at\)
10000488: df858080 ld a1,-32640\(gp\)
1000048c: df858080 ld a1,-32640\(gp\)
10000490: df998080 ld t9,-32640\(gp\)
10000494: df998080 ld t9,-32640\(gp\)
10000498: df998080 ld t9,-32640\(gp\)
1000049c: 0411001d bal 10000514 <fn2>
100004a0: 00000000 nop
100004a4: df998080 ld t9,-32640\(gp\)
100004a8: 0411001a bal 10000514 <fn2>
100004ac: 00000000 nop
100004b0: 1000ff17 b 10000110 <fn>
100004b4: df858020 ld a1,-32736\(gp\)
100004b8: df858028 ld a1,-32728\(gp\)
100004bc: 10000015 b 10000514 <fn2>
100004c0: dca505d4 ld a1,1492\(a1\)
100004c4: 1000ff12 b 10000110 <fn>
100004c8: df858020 ld a1,-32736\(gp\)
100004cc: df858060 ld a1,-32672\(gp\)
100004d0: 10000010 b 10000514 <fn2>
100004d4: 00000000 nop
100004d8: df858038 ld a1,-32712\(gp\)
100004dc: 1000ff0c b 10000110 <fn>
100004e0: 00000000 nop
100004e4: df858028 ld a1,-32728\(gp\)
100004e8: 1000000a b 10000514 <fn2>
100004ec: dca505d4 ld a1,1492\(a1\)
100004f0: df858028 ld a1,-32728\(gp\)
100004f4: 1000ff06 b 10000110 <fn>
100004f8: dca50568 ld a1,1384\(a1\)
100004fc: df818028 ld at,-32728\(gp\)
10000500: 0025082d daddu at,at,a1
10000504: 10000003 b 10000514 <fn2>
10000508: dc2505f6 ld a1,1526\(at\)
\.\.\.
0000000010000514 <fn2>:
\.\.\.
Disassembly of section \.data:
0000000010010520 <_fdata>:
\.\.\.
000000001001055c <dg1>:
\.\.\.
0000000010010598 <sp2>:
\.\.\.
00000000100105d4 <dg2>:
\.\.\.
Disassembly of section \.got:
0000000010010610 <_GLOBAL_OFFSET_TABLE_>:
\.\.\.
10010618: 80000000 .*
\.\.\.
10010624: 1001055c .*
10010628: 00000000 .*
1001062c: 10010000 .*
10010630: 00000000 .*
10010634: 10010568 .*
10010638: 00000000 .*
1001063c: 1002e79c .*
10010640: 00000000 .*
10010644: 1001057e .*
10010648: 00000000 .*
1001064c: 10010594 .*
10010650: 00000000 .*
10010654: 10000110 .*
10010658: 00000000 .*
1001065c: 100105d4 .*
10010660: 00000000 .*
10010664: 100105e0 .*
10010668: 00000000 .*
1001066c: 1002e814 .*
10010670: 00000000 .*
10010674: 100105f6 .*
10010678: 00000000 .*
1001067c: 1001060c .*
10010680: 00000000 .*
10010684: 10000514 .*
10010688: 00000000 .*
\.\.\.