diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86TargetMachine.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86TargetMachine.cpp b/llvm/lib/Target/X86/X86TargetMachine.cpp index 20ce87941c0..21f1ef9cb06 100644 --- a/llvm/lib/Target/X86/X86TargetMachine.cpp +++ b/llvm/lib/Target/X86/X86TargetMachine.cpp @@ -92,9 +92,19 @@ static std::unique_ptr<TargetLoweringObjectFile> createTLOF(const Triple &TT) { return std::make_unique<TargetLoweringObjectFileMachO>(); } + if (TT.isOSFreeBSD()) + return std::make_unique<X86FreeBSDTargetObjectFile>(); + if (TT.isOSLinux() || TT.isOSNaCl() || TT.isOSIAMCU()) + return std::make_unique<X86LinuxNaClTargetObjectFile>(); + if (TT.isOSSolaris()) + return std::make_unique<X86SolarisTargetObjectFile>(); + if (TT.isOSFuchsia()) + return std::make_unique<X86FuchsiaTargetObjectFile>(); + if (TT.isOSBinFormatELF()) + return std::make_unique<X86ELFTargetObjectFile>(); if (TT.isOSBinFormatCOFF()) return std::make_unique<TargetLoweringObjectFileCOFF>(); - return std::make_unique<X86ELFTargetObjectFile>(); + llvm_unreachable("unknown subtarget type"); } static std::string computeDataLayout(const Triple &TT) { |