diff options
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r-- | lib/Basic/Targets.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 95e300bc53..4f1e6d3555 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -2853,13 +2853,20 @@ static TargetInfo *AllocateTarget(const std::string &T) { } case llvm::Triple::mipsel: - if (os == llvm::Triple::Psp) + switch (os) { + case llvm::Triple::Psp: return new PSPTargetInfo<MipselTargetInfo>(T); - if (os == llvm::Triple::Linux) + case llvm::Triple::Linux: return new LinuxTargetInfo<MipselTargetInfo>(T); - if (os == llvm::Triple::RTEMS) + case llvm::Triple::RTEMS: return new RTEMSTargetInfo<MipselTargetInfo>(T); - return new MipselTargetInfo(T); + case llvm::Triple::FreeBSD: + return new NetBSDTargetInfo<MipselTargetInfo>(T); + case llvm::Triple::NetBSD: + return new NetBSDTargetInfo<MipselTargetInfo>(T); + default: + return new MipsTargetInfo(T); + } case llvm::Triple::ppc: if (Triple.isOSDarwin()) |