diff options
Diffstat (limited to 'llvm/tools/llvm-objdump/MachODump.cpp')
-rw-r--r-- | llvm/tools/llvm-objdump/MachODump.cpp | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index 42b82ae5a9d..9d8161937b4 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -776,6 +776,7 @@ static void PrintRType(const uint64_t cputype, const unsigned r_type) { outs() << arm_r_types[r_type]; break; case MachO::CPU_TYPE_ARM64: + case MachO::CPU_TYPE_ARM64_32: outs() << arm64_r_types[r_type]; break; default: @@ -951,7 +952,8 @@ static void PrintRelocationEntries(const MachOObjectFile *O, // plain: symbolnum/value if (cputype == MachO::CPU_TYPE_ARM && r_type == MachO::ARM_RELOC_PAIR) outs() << format("other_half = 0x%04x\n", (unsigned int)r_address); - else if (cputype == MachO::CPU_TYPE_ARM64 && + else if ((cputype == MachO::CPU_TYPE_ARM64 || + cputype == MachO::CPU_TYPE_ARM64_32) && r_type == MachO::ARM64_RELOC_ADDEND) outs() << format("addend = 0x%06x\n", (unsigned int)r_symbolnum); else { @@ -2040,6 +2042,17 @@ static void printCPUType(uint32_t cputype, uint32_t cpusubtype) { break; } break; + case MachO::CPU_TYPE_ARM64_32: + switch (cpusubtype & ~MachO::CPU_SUBTYPE_MASK) { + case MachO::CPU_SUBTYPE_ARM64_32_V8: + outs() << " cputype CPU_TYPE_ARM64_32\n"; + outs() << " cpusubtype CPU_SUBTYPE_ARM64_32_V8\n"; + break; + default: + printUnknownCPUType(cputype, cpusubtype); + break; + } + break; default: printUnknownCPUType(cputype, cpusubtype); break; @@ -8118,6 +8131,17 @@ static void PrintMachHeader(uint32_t magic, uint32_t cputype, break; } break; + case MachO::CPU_TYPE_ARM64_32: + outs() << " ARM64_32"; + switch (cpusubtype & ~MachO::CPU_SUBTYPE_MASK) { + case MachO::CPU_SUBTYPE_ARM64_32_V8: + outs() << " V8"; + break; + default: + outs() << format(" %10d", cpusubtype & ~MachO::CPU_SUBTYPE_MASK); + break; + } + break; case MachO::CPU_TYPE_POWERPC: outs() << " PPC"; switch (cpusubtype & ~MachO::CPU_SUBTYPE_MASK) { @@ -9681,7 +9705,8 @@ static void PrintThreadCommand(MachO::thread_command t, const char *Ptr, begin += count * sizeof(uint32_t); } } - } else if (cputype == MachO::CPU_TYPE_ARM64) { + } else if (cputype == MachO::CPU_TYPE_ARM64 || + cputype == MachO::CPU_TYPE_ARM64_32) { while (begin < end) { if (end - begin > (ptrdiff_t)sizeof(uint32_t)) { memcpy((char *)&flavor, begin, sizeof(uint32_t)); |