Allow command-line overrides of the target triple with the Mach-O

disassembler, just like the generic disassembler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149681 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Cameron Zwarich 2012-02-03 06:35:22 +00:00
parent fa5b70e1d8
commit a99350511c

View File

@ -53,27 +53,28 @@ static cl::opt<std::string>
static const Target *GetTarget(const MachOObject *MachOObj) {
// Figure out the target triple.
llvm::Triple TT("unknown-unknown-unknown");
switch (MachOObj->getHeader().CPUType) {
case llvm::MachO::CPUTypeI386:
TT.setArch(Triple::ArchType(Triple::x86));
break;
case llvm::MachO::CPUTypeX86_64:
TT.setArch(Triple::ArchType(Triple::x86_64));
break;
case llvm::MachO::CPUTypeARM:
TT.setArch(Triple::ArchType(Triple::arm));
break;
case llvm::MachO::CPUTypePowerPC:
TT.setArch(Triple::ArchType(Triple::ppc));
break;
case llvm::MachO::CPUTypePowerPC64:
TT.setArch(Triple::ArchType(Triple::ppc64));
break;
if (TripleName.empty()) {
llvm::Triple TT("unknown-unknown-unknown");
switch (MachOObj->getHeader().CPUType) {
case llvm::MachO::CPUTypeI386:
TT.setArch(Triple::ArchType(Triple::x86));
break;
case llvm::MachO::CPUTypeX86_64:
TT.setArch(Triple::ArchType(Triple::x86_64));
break;
case llvm::MachO::CPUTypeARM:
TT.setArch(Triple::ArchType(Triple::arm));
break;
case llvm::MachO::CPUTypePowerPC:
TT.setArch(Triple::ArchType(Triple::ppc));
break;
case llvm::MachO::CPUTypePowerPC64:
TT.setArch(Triple::ArchType(Triple::ppc64));
break;
}
TripleName = TT.str();
}
TripleName = TT.str();
// Get the target specific parser.
std::string Error;
const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error);