X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=elfcpp%2Fmips.h;h=7293c9fb18d62cd872dc806ddee4e9ba9a5752f9;hb=488d02fe7729dda5b9414a3942df68e0c316ce53;hp=a7a9799af11aba0ae1b94766de4d78361261057a;hpb=b52717c0e104eb603e8189c3c0d3658ef5d903f5;p=deliverable%2Fbinutils-gdb.git diff --git a/elfcpp/mips.h b/elfcpp/mips.h index a7a9799af1..7293c9fb18 100644 --- a/elfcpp/mips.h +++ b/elfcpp/mips.h @@ -1,6 +1,6 @@ // mips.h -- ELF definitions specific to EM_MIPS -*- C++ -*- -// Copyright (C) 2012-2016 Free Software Foundation, Inc. +// Copyright (C) 2012-2019 Free Software Foundation, Inc. // Written by Sasa Stankovic // and Aleksandar Simeonov . @@ -98,6 +98,12 @@ enum R_MIPS_TLS_TPREL_HI16 = 49, R_MIPS_TLS_TPREL_LO16 = 50, R_MIPS_GLOB_DAT = 51, + R_MIPS_PC21_S2 = 60, + R_MIPS_PC26_S2 = 61, + R_MIPS_PC18_S3 = 62, + R_MIPS_PC19_S2 = 63, + R_MIPS_PCHI16 = 64, + R_MIPS_PCLO16 = 65, // These relocs are used for the mips16. R_MIPS16_26 = 100, R_MIPS16_GPREL = 101, @@ -229,7 +235,9 @@ enum E_MIPS_MACH_9000 = 0x00990000, E_MIPS_MACH_LS2E = 0x00A00000, E_MIPS_MACH_LS2F = 0x00A10000, - E_MIPS_MACH_LS3A = 0x00A20000, + E_MIPS_MACH_GS464 = 0x00A20000, + E_MIPS_MACH_GS464E = 0x00A30000, + E_MIPS_MACH_GS264E = 0x00A40000, }; // MIPS architecture @@ -302,7 +310,9 @@ enum // MICROMIPS ASE. AFL_ASE_MICROMIPS = 0x00000800, // XPA ASE. - AFL_ASE_XPA = 0x00001000 + AFL_ASE_XPA = 0x00001000, + // Loongson EXT ASE. + AFL_ASE_LOONGSON_EXT = 0x00002000 }; // Values for the isa_ext word of an ABI flags structure. @@ -479,6 +489,14 @@ bool abi_n32(elfcpp::Elf_Word e_flags) { return (e_flags & elfcpp::EF_MIPS_ABI2) != 0; } +// Whether the ISA is R6. +bool +r6_isa(elfcpp::Elf_Word e_flags) +{ + return ((e_flags & elfcpp::EF_MIPS_ARCH) == elfcpp::E_MIPS_ARCH_32R6) + || ((e_flags & elfcpp::EF_MIPS_ARCH) == elfcpp::E_MIPS_ARCH_64R6); +} + // Whether the file has microMIPS code. bool is_micromips(elfcpp::Elf_Word e_flags)