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
This commit is contained in:
Jim Grosbach 2012-02-10 02:21:49 +00:00
parent 9f10ac63a3
commit e009860049

View File

@ -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";