1//===--- Targets.cpp - Implement -arch option and targets -----------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 405 unchanged lines hidden (view full) --- 414 case llvm::Triple::thumbeb: 415 Builder.defineMacro("__ARM_DWARF_EH__"); 416 break; 417 } 418 } 419public: 420 NetBSDTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) { 421 this->UserLabelPrefix = ""; |
422 this->MCountName = "_mcount"; |
423 } 424}; 425 426// OpenBSD Target 427template<typename Target> 428class OpenBSDTargetInfo : public OSTargetInfo<Target> { 429protected: 430 void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, --- 484 unchanged lines hidden (view full) --- 915 const char *getClobbers() const override { 916 return ""; 917 } 918 int getEHDataRegisterNumber(unsigned RegNo) const override { 919 if (RegNo == 0) return 3; 920 if (RegNo == 1) return 4; 921 return -1; 922 } |
923 924 bool hasSjLjLowering() const override { 925 return true; 926 } |
927}; 928 929const Builtin::Info PPCTargetInfo::BuiltinInfo[] = { 930#define BUILTIN(ID, TYPE, ATTRS) { #ID, TYPE, ATTRS, 0, ALL_LANGUAGES }, 931#define LIBBUILTIN(ID, TYPE, ATTRS, HEADER) { #ID, TYPE, ATTRS, HEADER,\ 932 ALL_LANGUAGES }, 933#include "clang/Basic/BuiltinsPPC.def" 934}; --- 1246 unchanged lines hidden (view full) --- 2181 CC == CC_C || 2182 CC == CC_X86Pascal || 2183 CC == CC_IntelOclBicc) ? CCCR_OK : CCCR_Warning; 2184 } 2185 2186 CallingConv getDefaultCallingConv(CallingConvMethodType MT) const override { 2187 return MT == CCMT_Member ? CC_X86ThisCall : CC_C; 2188 } |
2189 2190 bool hasSjLjLowering() const override { 2191 return true; 2192 } |
2193}; 2194 2195bool X86TargetInfo::setFPMath(StringRef Name) { 2196 if (Name == "387") { 2197 FPMath = FP_387; 2198 return true; 2199 } 2200 if (Name == "sse") { --- 1157 unchanged lines hidden (view full) --- 3358namespace { 3359// x86-32 Windows target 3360class WindowsX86_32TargetInfo : public WindowsTargetInfo<X86_32TargetInfo> { 3361public: 3362 WindowsX86_32TargetInfo(const llvm::Triple &Triple) 3363 : WindowsTargetInfo<X86_32TargetInfo>(Triple) { 3364 WCharType = UnsignedShort; 3365 DoubleAlign = LongLongAlign = 64; |
3366 bool IsWinCOFF = 3367 getTriple().isOSWindows() && getTriple().isOSBinFormatCOFF(); 3368 DescriptionString = IsWinCOFF ? "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32" 3369 : "e-m:e-p:32:32-i64:64-f80:32-n8:16:32-S32"; |
3370 } 3371 void getTargetDefines(const LangOptions &Opts, 3372 MacroBuilder &Builder) const override { 3373 WindowsTargetInfo<X86_32TargetInfo>::getTargetDefines(Opts, Builder); 3374 } 3375}; 3376 3377// x86-32 Windows Visual Studio target --- 2257 unchanged lines hidden (view full) --- 5635 bool HasFP64; 5636 std::string ABI; 5637 5638public: 5639 MipsTargetInfoBase(const llvm::Triple &Triple, const std::string &ABIStr, 5640 const std::string &CPUStr) 5641 : TargetInfo(Triple), CPU(CPUStr), IsMips16(false), IsMicromips(false), 5642 IsNan2008(false), IsSingleFloat(false), FloatABI(HardFloat), |
5643 DspRev(NoDSP), HasMSA(false), HasFP64(false), ABI(ABIStr) { 5644 TheCXXABI.set(TargetCXXABI::GenericMIPS); 5645 } |
5646 5647 bool isNaN2008Default() const { 5648 return CPU == "mips32r6" || CPU == "mips64r6"; 5649 } 5650 5651 bool isFP64Default() const { 5652 return CPU == "mips32r6" || ABI == "n32" || ABI == "n64" || ABI == "64"; 5653 } --- 1017 unchanged lines hidden (view full) --- 6671 default: 6672 return new PPC64TargetInfo(Triple); 6673 } 6674 6675 case llvm::Triple::ppc64le: 6676 switch (os) { 6677 case llvm::Triple::Linux: 6678 return new LinuxTargetInfo<PPC64TargetInfo>(Triple); |
6679 case llvm::Triple::NetBSD: 6680 return new NetBSDTargetInfo<PPC64TargetInfo>(Triple); |
6681 default: 6682 return new PPC64TargetInfo(Triple); 6683 } 6684 6685 case llvm::Triple::nvptx: 6686 return new NVPTX32TargetInfo(Triple); 6687 case llvm::Triple::nvptx64: 6688 return new NVPTX64TargetInfo(Triple); --- 206 unchanged lines hidden --- |