diff options
author | Tim Northover <tnorthover@apple.com> | 2016-04-22 23:21:13 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2016-04-22 23:21:13 +0000 |
commit | 9e8eb418e583974c7d24ca3d81f567accd5adbfa (patch) | |
tree | 190ba0bd9001e19d01db501f813692edc77b2140 /llvm/lib/Object/MachOObjectFile.cpp | |
parent | cae0855a62d2dc09fddc581f7a52d10c43b17571 (diff) | |
download | bcm5719-llvm-9e8eb418e583974c7d24ca3d81f567accd5adbfa.tar.gz bcm5719-llvm-9e8eb418e583974c7d24ca3d81f567accd5adbfa.zip |
MachO: remove weird ARM/Thumb interface from MachOObjectFile
Only one consumer (llvm-objdump) actually cared about the fact that there were
two triples. Others were actively working around the fact that the Triple
returned by getArch might have been invalid. As for llvm-objdump, it needs to
be acutely aware of both Triples anyway, so being generic in the exposed API is
no benefit.
Also rename the version of getArch returning a Triple. Users were having to
pass an unwanted nullptr to disambiguate the two, which was nasty.
The only functional change here is that armv7m and armv7em object files no
longer crash llvm-objdump.
llvm-svn: 267249
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/MachOObjectFile.cpp | 64 |
1 files changed, 6 insertions, 58 deletions
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 743166d4bf5..a182c4f5b9b 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -1184,8 +1184,8 @@ Triple::ArchType MachOObjectFile::getArch(uint32_t CPUType) { } } -Triple MachOObjectFile::getArch(uint32_t CPUType, uint32_t CPUSubType, - const char **McpuDefault) { +Triple MachOObjectFile::getArchTriple(uint32_t CPUType, uint32_t CPUSubType, + const char **McpuDefault) { if (McpuDefault) *McpuDefault = nullptr; @@ -1225,13 +1225,13 @@ Triple MachOObjectFile::getArch(uint32_t CPUType, uint32_t CPUSubType, case MachO::CPU_SUBTYPE_ARM_V7EM: if (McpuDefault) *McpuDefault = "cortex-m4"; - return Triple("armv7em-apple-darwin"); + return Triple("thumbv7em-apple-darwin"); case MachO::CPU_SUBTYPE_ARM_V7K: return Triple("armv7k-apple-darwin"); case MachO::CPU_SUBTYPE_ARM_V7M: if (McpuDefault) *McpuDefault = "cortex-m3"; - return Triple("armv7m-apple-darwin"); + return Triple("thumbv7m-apple-darwin"); case MachO::CPU_SUBTYPE_ARM_V7S: return Triple("armv7s-apple-darwin"); default: @@ -1263,56 +1263,6 @@ Triple MachOObjectFile::getArch(uint32_t CPUType, uint32_t CPUSubType, } } -Triple MachOObjectFile::getThumbArch(uint32_t CPUType, uint32_t CPUSubType, - const char **McpuDefault) { - if (McpuDefault) - *McpuDefault = nullptr; - - switch (CPUType) { - case MachO::CPU_TYPE_ARM: - switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) { - case MachO::CPU_SUBTYPE_ARM_V4T: - return Triple("thumbv4t-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V5TEJ: - return Triple("thumbv5e-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_XSCALE: - return Triple("xscale-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V6: - return Triple("thumbv6-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V6M: - if (McpuDefault) - *McpuDefault = "cortex-m0"; - return Triple("thumbv6m-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V7: - return Triple("thumbv7-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V7EM: - if (McpuDefault) - *McpuDefault = "cortex-m4"; - return Triple("thumbv7em-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V7K: - return Triple("thumbv7k-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V7M: - if (McpuDefault) - *McpuDefault = "cortex-m3"; - return Triple("thumbv7m-apple-darwin"); - case MachO::CPU_SUBTYPE_ARM_V7S: - return Triple("thumbv7s-apple-darwin"); - default: - return Triple(); - } - default: - return Triple(); - } -} - -Triple MachOObjectFile::getArch(uint32_t CPUType, uint32_t CPUSubType, - const char **McpuDefault, Triple *ThumbTriple) { - Triple T = MachOObjectFile::getArch(CPUType, CPUSubType, McpuDefault); - *ThumbTriple = MachOObjectFile::getThumbArch(CPUType, CPUSubType, - McpuDefault); - return T; -} - Triple MachOObjectFile::getHostArch() { return Triple(sys::getDefaultTargetTriple()); } @@ -1342,10 +1292,8 @@ unsigned MachOObjectFile::getArch() const { return getArch(getCPUType(this)); } -Triple MachOObjectFile::getArch(const char **McpuDefault, - Triple *ThumbTriple) const { - *ThumbTriple = getThumbArch(Header.cputype, Header.cpusubtype, McpuDefault); - return getArch(Header.cputype, Header.cpusubtype, McpuDefault); +Triple MachOObjectFile::getArchTriple(const char **McpuDefault) const { + return getArchTriple(Header.cputype, Header.cpusubtype, McpuDefault); } relocation_iterator MachOObjectFile::section_rel_begin(unsigned Index) const { |