[LLDB][MIPS] Add MIPS32 and MIPS64 core revisions
Patch by Jaydeep Patil Added MIPS32 and MIPS64 core revisions. This would be followed by register context and emulate-instruction for MIPS32. DYLDRendezvous.cpp: On Linux link map struct does not contain extra load offset field. Reviewers: clayborg Subscribers: bhushan, mohit.bhakkad, sagar, lldb-commits. Differential Revision: http://reviews.llvm.org/D9190 llvm-svn: 235574
This commit is contained in:
@@ -286,17 +286,22 @@ static uint32_t
|
||||
mipsVariantFromElfFlags(const elf::elf_word e_flags, uint32_t endian)
|
||||
{
|
||||
const uint32_t mips_arch = e_flags & llvm::ELF::EF_MIPS_ARCH;
|
||||
uint32_t arch_variant = LLDB_INVALID_CPUTYPE;
|
||||
uint32_t arch_variant = ArchSpec::eMIPSSubType_unknown;
|
||||
|
||||
switch (mips_arch)
|
||||
{
|
||||
case llvm::ELF::EF_MIPS_ARCH_32:
|
||||
return (endian == ELFDATA2LSB) ? ArchSpec::eMIPSSubType_mips32el : ArchSpec::eMIPSSubType_mips32;
|
||||
case llvm::ELF::EF_MIPS_ARCH_32R2:
|
||||
return (endian == ELFDATA2LSB) ? ArchSpec::eMIPSSubType_mips32r2el : ArchSpec::eMIPSSubType_mips32r2;
|
||||
case llvm::ELF::EF_MIPS_ARCH_32R6:
|
||||
return (endian == ELFDATA2LSB) ? ArchSpec::eMIPSSubType_mips32r6el : ArchSpec::eMIPSSubType_mips32r6;
|
||||
case llvm::ELF::EF_MIPS_ARCH_64:
|
||||
if (endian == ELFDATA2LSB)
|
||||
arch_variant = llvm::Triple::mips64el;
|
||||
else
|
||||
arch_variant = llvm::Triple::mips64;
|
||||
break;
|
||||
|
||||
return (endian == ELFDATA2LSB) ? ArchSpec::eMIPSSubType_mips64el : ArchSpec::eMIPSSubType_mips64;
|
||||
case llvm::ELF::EF_MIPS_ARCH_64R2:
|
||||
return (endian == ELFDATA2LSB) ? ArchSpec::eMIPSSubType_mips64r2el : ArchSpec::eMIPSSubType_mips64r2;
|
||||
case llvm::ELF::EF_MIPS_ARCH_64R6:
|
||||
return (endian == ELFDATA2LSB) ? ArchSpec::eMIPSSubType_mips64r6el : ArchSpec::eMIPSSubType_mips64r6;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user