diff options
author | Jim Grosbach <grosbach@apple.com> | 2012-02-10 02:21:49 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2012-02-10 02:21:49 +0000 |
commit | e009860049c0062fc1c708e46c7d868a84e3a41f (patch) | |
tree | 5f2cef9f64e3f9accddd5e7dcae4649e8dcb6c2c | |
parent | 9f10ac63a3a2a74ac381a05d8ba0f7b1b455a6b6 (diff) | |
download | external_llvm-e009860049c0062fc1c708e46c7d868a84e3a41f.zip external_llvm-e009860049c0062fc1c708e46c7d868a84e3a41f.tar.gz external_llvm-e009860049c0062fc1c708e46c7d868a84e3a41f.tar.bz2 |
ARM on darwin, v6 implies the presence of VFP for the assembler.
rdar://10838899
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150222 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp index e86f48e..bc6d8f9 100644 --- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp +++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp @@ -66,13 +66,21 @@ std::string ARM_MC::ParseARMTriple(StringRef TT) { // v7a: FeatureNEON, FeatureDB, FeatureDSPThumb2, FeatureT2XtPk ARMArchFeature = "+v7,+neon,+db,+t2dsp,+t2xtpk"; } else if (SubVer == '6') { - if (Len >= Idx+3 && TT[Idx+1] == 't' && TT[Idx+2] == '2') + Triple TheTriple(TT); + if (Len >= Idx+3 && TT[Idx+1] == 't' && TT[Idx+2] == '2') { ARMArchFeature = "+v6t2"; - else if (Len >= Idx+2 && TT[Idx+1] == 'm') + // On darwin, v6 implies VFP. + if (TheTriple.isOSDarwin()) + ARMArchFeature += ",+vfp2"; + } else if (Len >= Idx+2 && TT[Idx+1] == 'm') // v6m: FeatureNoARM, FeatureMClass ARMArchFeature = "+v6t2,+noarm,+mclass"; - else + else { ARMArchFeature = "+v6"; + // On darwin, v6 implies VFP. + if (TheTriple.isOSDarwin()) + ARMArchFeature += ",+vfp2"; + } } else if (SubVer == '5') { if (Len >= Idx+3 && TT[Idx+1] == 't' && TT[Idx+2] == 'e') ARMArchFeature = "+v5te"; |