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 | ffc02c5ffcdd00f78cab08b8a170dc1bd9afe89b (patch) | |
| tree | 87d59fa8665f21b805ebe98770fd5d31f3d96b4e | |
| parent | edb6f5dca102db69b932c98d51574db9ad4cd520 (diff) | |
| download | bcm5719-llvm-ffc02c5ffcdd00f78cab08b8a170dc1bd9afe89b.tar.gz bcm5719-llvm-ffc02c5ffcdd00f78cab08b8a170dc1bd9afe89b.zip | |
ARM on darwin, v6 implies the presence of VFP for the assembler.
rdar://10838899
llvm-svn: 150222
| -rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp index e86f48e309c..bc6d8f98944 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp +++ b/llvm/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"; |

