This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2][gold] Mips: Add support for .MIPS.abiflags and .gnu.attributes sections.


> elfcpp/
>         * elfcpp.h (SHT_MIPS_ABIFLAGS): New enum constant.
>         * mips.h (EF_MIPS_FP64, EF_MIPS_NAN2008): New enum constants for
>         processor-specific flags.
>         (E_MIPS_MACH_5900): New enum constant for machine variant.
>         (AFL_REG_NONE, AFL_REG_32, AFL_REG_64, AFL_REG_128): New enum
>         constants.
>         (AFL_ASE_DSP, AFL_ASE_DSPR2, AFL_ASE_EVA, AFL_ASE_MCU,
>         AFL_ASE_MDMX, AFL_ASE_MIPS3D, AFL_ASE_MT, AFL_ASE_SMARTMIPS,
>         AFL_ASE_VIRT, AFL_ASE_MSA, AFL_ASE_MIPS16, AFL_ASE_MICROMIPS,
>         AFL_ASE_XPA): Likewise.
>         (AFL_EXT_XLR, AFL_EXT_OCTEON2, AFL_EXT_OCTEONP,
>         AFL_EXT_LOONGSON_3A, AFL_EXT_OCTEON, AFL_EXT_5900, AFL_EXT_4650,
>         AFL_EXT_4010, AFL_EXT_4100, AFL_EXT_3900, AFL_EXT_10000,
>         AFL_EXT_SB1, AFL_EXT_4111, AFL_EXT_4120, AFL_EXT_5400,
>         AFL_EXT_5500, AFL_EXT_LOONGSON_2E, AFL_EXT_LOONGSON_2F,
>         AFL_EXT_OCTEON3): Likewise.
>         (Tag_GNU_MIPS_ABI_FP, Tag_GNU_MIPS_ABI_MSA): Likewise.
>         (Val_GNU_MIPS_ABI_FP_ANY, Val_GNU_MIPS_ABI_FP_DOUBLE,
>         Val_GNU_MIPS_ABI_FP_SINGLE, Val_GNU_MIPS_ABI_FP_SOFT,
>         Val_GNU_MIPS_ABI_FP_OLD_64,Val_GNU_MIPS_ABI_FP_XX,
>         Val_GNU_MIPS_ABI_FP_64, Val_GNU_MIPS_ABI_FP_64A,
>         Val_GNU_MIPS_ABI_FP_NAN2008, Val_GNU_MIPS_ABI_MSA_ANY,
>         Val_GNU_MIPS_ABI_MSA_128): Likewise.
>         (AFL_FLAGS1_ODDSPREG): New enum constant.
> gold/
>         * mips.cc (struct Mips_abiflags): New struct.
>         (Mips_relobj::Mips_relobj): Initialize attributes_section_data_
>         and abiflags_.
>         (Mips_relobj::~Mips_relobj): Delete object pointed by
>         attributes_section_data_.
>         (Mips_relobj::abiflags): New method.
>         (Mips_relobj::attributes_section_data): Likewise.
>         (Mips_relobj::attributes_section_data_): New data member.
>         (Mips_relobj::abiflags_): Likewise.
>         (class Mips_output_section_abiflags): New class.
>         (Target_mips::Target_mips): Initialize attributes_section_data_,
>         abiflags_ and has_abiflags_section_.
>         (Target_mips::do_should_include_section): Don't emit input
>         .MIPS.abiflags sections to output .MIPS.abiflags.
>         (Target_mips::Mips_mach): Add new enum constants.
>         (Target_mips::mips_isa_ext_mach): New method.
>         (Target_mips::mips_isa_ext): Likewise.
>         (Target_mips::update_abiflags_isa): Likewise.
>         (Target_mips::infer_abiflags): Likewise.
>         (Target_mips::create_abiflags): Likewise.
>         (Target_mips::fp_abi_string): Likewise.
>         (Target_mips::select_fp_abi): Likewise.
>         (Target_mips::merge_obj_attributes): Likewise.
>         (Target_mips::merge_obj_abiflags): Likewise.
>         (Target_mips::level_rev): Likewise.
>         (Target_mips::merge_obj_e_flags): Rename from
>         merge_processor_specific_flags. Remove dyn_obj argument,
>         call update_abiflags_isa when needed, compare NaN encodings and
>         compare FP64 state.
>         (Target_mips::add_machine_extensions): Add two machine extensions
>         and fix one.
>         (Target_mips::attributes_section_data_): New data member.
>         (Target_mips::abiflags_): Likewise.
>         (Target_mips::has_abiflags_section_): Likewise.
>         (Mips_relobj::do_read_symbols): Read .gnu.attributes and
>         .MIPS.abiflags sections if they exists.
>         (Target_mips::elf_mips_mach): Add E_MIPS_MACH_5900 and
>         E_MIPS_MACH_OCTEON3 support.
>         (Target_mips::do_adjust_elf_header): Setup EI_ABIVERSION flag.
>         (Target_mips::do_finalize_sections): Merge .gnu.attributes and
>         .MIPS.abiflags sections from input. Create these sections if
>         needed.
>         (Target_mips::elf_mips_mach_name): Add E_MIPS_MACH_5900 and
>         E_MIPS_MACH_OCTEON3 support, and change strings for
>         E_MIPS_MACH_LS2E, E_MIPS_MACH_LS2F and E_MIPS_MACH_LS3A just
>         to match bfd.

I've committed this patch on your behalf.

Thanks!

-cary


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]