]> granicus.if.org Git - llvm/commitdiff
Fix llvm-objdump so it picks a good CPU based for Mach-O files
authorKevin Enderby <enderby@apple.com>
Tue, 24 Jan 2017 23:41:04 +0000 (23:41 +0000)
committerKevin Enderby <enderby@apple.com>
Tue, 24 Jan 2017 23:41:04 +0000 (23:41 +0000)
for CPU_SUBTYPE_ARM_V7S and CPU_SUBTYPE_ARM_V7K.

For these two cpusubtypes they should default to a cortex-a7 CPU
to give proper disassembly without a -mcpu= flag.

rdar://27431703

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292993 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Object/MachOObjectFile.cpp
test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s [new file with mode: 0644]
test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test [new file with mode: 0644]

index ae1ac09716981cdc4460be035aecbf6445b583e4..c0a7518d1e69f0cce8288cf2f34ef153266c5977 100644 (file)
@@ -2454,6 +2454,8 @@ Triple MachOObjectFile::getArchTriple(uint32_t CPUType, uint32_t CPUSubType,
         *ArchFlag = "armv7em";
       return Triple("thumbv7em-apple-darwin");
     case MachO::CPU_SUBTYPE_ARM_V7K:
+      if (McpuDefault)
+        *McpuDefault = "cortex-a7";
       if (ArchFlag)
         *ArchFlag = "armv7k";
       return Triple("armv7k-apple-darwin");
@@ -2464,6 +2466,8 @@ Triple MachOObjectFile::getArchTriple(uint32_t CPUType, uint32_t CPUSubType,
         *ArchFlag = "armv7m";
       return Triple("thumbv7m-apple-darwin");
     case MachO::CPU_SUBTYPE_ARM_V7S:
+      if (McpuDefault)
+        *McpuDefault = "cortex-a7";
       if (ArchFlag)
         *ArchFlag = "armv7s";
       return Triple("armv7s-apple-darwin");
diff --git a/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s b/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s
new file mode 100644 (file)
index 0000000..b877d2d
Binary files /dev/null and b/test/tools/llvm-objdump/ARM/Inputs/divs.macho-armv7s differ
diff --git a/test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test b/test/tools/llvm-objdump/ARM/macho-nomcpu-armv7s.test
new file mode 100644 (file)
index 0000000..ff7daa8
--- /dev/null
@@ -0,0 +1,3 @@
+@ RUN: llvm-objdump -m -d %p/Inputs/divs.macho-armv7s | FileCheck %s
+
+@ CHECK: 10 f0 10 e7 sdiv r0, r0, r0