Revert "Reapply [MachO] Move getArchTriple impl... with fixes. (#161949)"
This reverts commit 54012102c4a8e8bba9b3b27291dab126e3521544 while I further investigate bot failures. Apparently adding a dependence on BinaryFormat to Object was insufficient to fix the original linker issues.
This commit is contained in:
parent
47361e7e0d
commit
c06aa2e813
@ -17,9 +17,11 @@
|
||||
#include "llvm/Support/DataTypes.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
#include "llvm/Support/SwapByteOrder.h"
|
||||
#include "llvm/TargetParser/Triple.h"
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class Triple;
|
||||
|
||||
namespace MachO {
|
||||
// Enums from <mach-o/loader.h>
|
||||
enum : uint32_t {
|
||||
@ -1708,11 +1710,6 @@ LLVM_ABI Expected<uint32_t> getCPUSubType(const Triple &T,
|
||||
unsigned PtrAuthABIVersion,
|
||||
bool PtrAuthKernelABIVersion);
|
||||
|
||||
LLVM_ABI Triple::ArchType getArch(uint32_t CPUType, uint32_t CPUSubType);
|
||||
LLVM_ABI Triple getArchTriple(uint32_t CPUType, uint32_t CPUSubType,
|
||||
const char **McpuDefault = nullptr,
|
||||
const char **ArchFlag = nullptr);
|
||||
|
||||
struct x86_thread_state32_t {
|
||||
uint32_t eax;
|
||||
uint32_t ebx;
|
||||
|
||||
@ -752,14 +752,10 @@ public:
|
||||
static StringRef guessLibraryShortName(StringRef Name, bool &isFramework,
|
||||
StringRef &Suffix);
|
||||
|
||||
static Triple::ArchType getArch(uint32_t CPUType, uint32_t CPUSubType) {
|
||||
return MachO::getArch(CPUType, CPUSubType);
|
||||
}
|
||||
static Triple::ArchType getArch(uint32_t CPUType, uint32_t CPUSubType);
|
||||
static Triple getArchTriple(uint32_t CPUType, uint32_t CPUSubType,
|
||||
const char **McpuDefault = nullptr,
|
||||
const char **ArchFlag = nullptr) {
|
||||
return MachO::getArchTriple(CPUType, CPUSubType, McpuDefault, ArchFlag);
|
||||
}
|
||||
const char **ArchFlag = nullptr);
|
||||
static bool isValidArch(StringRef ArchFlag);
|
||||
static ArrayRef<StringRef> getValidArchs();
|
||||
static Triple getHostArch();
|
||||
|
||||
@ -123,160 +123,3 @@ Expected<uint32_t> MachO::getCPUSubType(const Triple &T,
|
||||
return CPU_SUBTYPE_ARM64E_WITH_PTRAUTH_VERSION(PtrAuthABIVersion,
|
||||
PtrAuthKernelABIVersion);
|
||||
}
|
||||
|
||||
Triple::ArchType MachO::getArch(uint32_t CPUType, uint32_t CPUSubType) {
|
||||
switch (CPUType) {
|
||||
case MachO::CPU_TYPE_I386:
|
||||
return Triple::x86;
|
||||
case MachO::CPU_TYPE_X86_64:
|
||||
return Triple::x86_64;
|
||||
case MachO::CPU_TYPE_ARM:
|
||||
return Triple::arm;
|
||||
case MachO::CPU_TYPE_ARM64:
|
||||
return Triple::aarch64;
|
||||
case MachO::CPU_TYPE_ARM64_32:
|
||||
return Triple::aarch64_32;
|
||||
case MachO::CPU_TYPE_POWERPC:
|
||||
return Triple::ppc;
|
||||
case MachO::CPU_TYPE_POWERPC64:
|
||||
return Triple::ppc64;
|
||||
default:
|
||||
return Triple::UnknownArch;
|
||||
}
|
||||
}
|
||||
|
||||
Triple MachO::getArchTriple(uint32_t CPUType, uint32_t CPUSubType,
|
||||
const char **McpuDefault, const char **ArchFlag) {
|
||||
if (McpuDefault)
|
||||
*McpuDefault = nullptr;
|
||||
if (ArchFlag)
|
||||
*ArchFlag = nullptr;
|
||||
|
||||
switch (CPUType) {
|
||||
case MachO::CPU_TYPE_I386:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_I386_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "i386";
|
||||
return Triple("i386-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_X86_64:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_X86_64_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "x86_64";
|
||||
return Triple("x86_64-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_X86_64_H:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "x86_64h";
|
||||
return Triple("x86_64h-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_ARM:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_ARM_V4T:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv4t";
|
||||
return Triple("armv4t-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V5TEJ:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv5e";
|
||||
return Triple("armv5e-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_XSCALE:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "xscale";
|
||||
return Triple("xscale-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V6:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv6";
|
||||
return Triple("armv6-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V6M:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cortex-m0";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv6m";
|
||||
return Triple("armv6m-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V7:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv7";
|
||||
return Triple("armv7-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V7EM:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cortex-m4";
|
||||
if (ArchFlag)
|
||||
*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");
|
||||
case MachO::CPU_SUBTYPE_ARM_V7M:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cortex-m3";
|
||||
if (ArchFlag)
|
||||
*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");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_ARM64:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_ARM64_ALL:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cyclone";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "arm64";
|
||||
return Triple("arm64-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM64E:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "apple-a12";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "arm64e";
|
||||
return Triple("arm64e-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_ARM64_32:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_ARM64_32_V8:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cyclone";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "arm64_32";
|
||||
return Triple("arm64_32-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_POWERPC:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_POWERPC_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "ppc";
|
||||
return Triple("ppc-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_POWERPC64:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_POWERPC_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "ppc64";
|
||||
return Triple("ppc64-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,7 +45,6 @@ add_llvm_component_library(LLVMObject
|
||||
|
||||
LINK_COMPONENTS
|
||||
BitReader
|
||||
BinaryFormat
|
||||
Core
|
||||
MC
|
||||
IRReader
|
||||
|
||||
@ -2685,6 +2685,164 @@ StringRef MachOObjectFile::getFileFormatName() const {
|
||||
}
|
||||
}
|
||||
|
||||
Triple::ArchType MachOObjectFile::getArch(uint32_t CPUType, uint32_t CPUSubType) {
|
||||
switch (CPUType) {
|
||||
case MachO::CPU_TYPE_I386:
|
||||
return Triple::x86;
|
||||
case MachO::CPU_TYPE_X86_64:
|
||||
return Triple::x86_64;
|
||||
case MachO::CPU_TYPE_ARM:
|
||||
return Triple::arm;
|
||||
case MachO::CPU_TYPE_ARM64:
|
||||
return Triple::aarch64;
|
||||
case MachO::CPU_TYPE_ARM64_32:
|
||||
return Triple::aarch64_32;
|
||||
case MachO::CPU_TYPE_POWERPC:
|
||||
return Triple::ppc;
|
||||
case MachO::CPU_TYPE_POWERPC64:
|
||||
return Triple::ppc64;
|
||||
default:
|
||||
return Triple::UnknownArch;
|
||||
}
|
||||
}
|
||||
|
||||
Triple MachOObjectFile::getArchTriple(uint32_t CPUType, uint32_t CPUSubType,
|
||||
const char **McpuDefault,
|
||||
const char **ArchFlag) {
|
||||
if (McpuDefault)
|
||||
*McpuDefault = nullptr;
|
||||
if (ArchFlag)
|
||||
*ArchFlag = nullptr;
|
||||
|
||||
switch (CPUType) {
|
||||
case MachO::CPU_TYPE_I386:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_I386_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "i386";
|
||||
return Triple("i386-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_X86_64:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_X86_64_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "x86_64";
|
||||
return Triple("x86_64-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_X86_64_H:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "x86_64h";
|
||||
return Triple("x86_64h-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_ARM:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_ARM_V4T:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv4t";
|
||||
return Triple("armv4t-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V5TEJ:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv5e";
|
||||
return Triple("armv5e-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_XSCALE:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "xscale";
|
||||
return Triple("xscale-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V6:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv6";
|
||||
return Triple("armv6-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V6M:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cortex-m0";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv6m";
|
||||
return Triple("armv6m-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V7:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "armv7";
|
||||
return Triple("armv7-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM_V7EM:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cortex-m4";
|
||||
if (ArchFlag)
|
||||
*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");
|
||||
case MachO::CPU_SUBTYPE_ARM_V7M:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cortex-m3";
|
||||
if (ArchFlag)
|
||||
*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");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_ARM64:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_ARM64_ALL:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cyclone";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "arm64";
|
||||
return Triple("arm64-apple-darwin");
|
||||
case MachO::CPU_SUBTYPE_ARM64E:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "apple-a12";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "arm64e";
|
||||
return Triple("arm64e-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_ARM64_32:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_ARM64_32_V8:
|
||||
if (McpuDefault)
|
||||
*McpuDefault = "cyclone";
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "arm64_32";
|
||||
return Triple("arm64_32-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_POWERPC:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_POWERPC_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "ppc";
|
||||
return Triple("ppc-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
case MachO::CPU_TYPE_POWERPC64:
|
||||
switch (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) {
|
||||
case MachO::CPU_SUBTYPE_POWERPC_ALL:
|
||||
if (ArchFlag)
|
||||
*ArchFlag = "ppc64";
|
||||
return Triple("ppc64-apple-darwin");
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
default:
|
||||
return Triple();
|
||||
}
|
||||
}
|
||||
|
||||
Triple MachOObjectFile::getHostArch() {
|
||||
return Triple(sys::getDefaultTargetTriple());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user