ARM: Define __thumb2__ for V6T2 targets and only define

__USING_SJLJ_EXCEPTIONS__ on Darwin.

llvm-svn: 91705
This commit is contained in:
Daniel Dunbar 2009-12-18 19:57:13 +00:00
parent b3fa919c2d
commit c454ecf9d0
1 changed files with 4 additions and 5 deletions

View File

@ -1194,13 +1194,11 @@ public:
ARMTargetInfo(const std::string &TripleStr) ARMTargetInfo(const std::string &TripleStr)
: TargetInfo(TripleStr), ABI("aapcs-linux"), CPU("arm1136j-s") : TargetInfo(TripleStr), ABI("aapcs-linux"), CPU("arm1136j-s")
{ {
llvm::Triple Triple(TripleStr);
SizeType = UnsignedInt; SizeType = UnsignedInt;
PtrDiffType = SignedInt; PtrDiffType = SignedInt;
// FIXME: Should we just treat this as a feature? // FIXME: Should we just treat this as a feature?
IsThumb = Triple.getArchName().startswith("thumb"); IsThumb = getTriple().getArchName().startswith("thumb");
if (IsThumb) { if (IsThumb) {
DescriptionString = ("e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-" DescriptionString = ("e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-"
"i64:64:64-f32:32:32-f64:64:64-" "i64:64:64-f32:32:32-f64:64:64-"
@ -1308,7 +1306,7 @@ public:
if (IsThumb) { if (IsThumb) {
Define(Defs, "__THUMBEL__"); Define(Defs, "__THUMBEL__");
Define(Defs, "__thumb__"); Define(Defs, "__thumb__");
if (CPUArch.startswith("7")) if (CPUArch == "6T2" || CPUArch.startswith("7"))
Define(Defs, "__thumb2__"); Define(Defs, "__thumb2__");
} }
@ -1317,7 +1315,8 @@ public:
// FIXME: This should be conditional on VFP instruction support. // FIXME: This should be conditional on VFP instruction support.
Define(Defs, "__VFP_FP__"); Define(Defs, "__VFP_FP__");
Define(Defs, "__USING_SJLJ_EXCEPTIONS__"); if (getTriple().getOS() == llvm::Triple::Darwin)
Define(Defs, "__USING_SJLJ_EXCEPTIONS__");
} }
virtual void getTargetBuiltins(const Builtin::Info *&Records, virtual void getTargetBuiltins(const Builtin::Info *&Records,
unsigned &NumRecords) const { unsigned &NumRecords) const {