summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@freebsd.org>2015-10-02 18:25:25 +0000
committerRoman Divacky <rdivacky@freebsd.org>2015-10-02 18:25:25 +0000
commit4b5507a037af420b28600a792bab1e6850b5cc73 (patch)
tree1071977ed81774ffecb015cdedc5bfd5ab7ab8a7 /llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
parent8d67b8e05375f13d03bff615788e8bedbd97892d (diff)
downloadbcm5719-llvm-4b5507a037af420b28600a792bab1e6850b5cc73.tar.gz
bcm5719-llvm-4b5507a037af420b28600a792bab1e6850b5cc73.zip
Actually switch the arch when we see .arch. PR21695
llvm-svn: 249165
Diffstat (limited to 'llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp')
-rw-r--r--llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index 68188b13137..b0bde037b91 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -15,6 +15,7 @@
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
+#include "llvm/ADT/Triple.h"
#include "llvm/ADT/Twine.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCAssembler.h"
@@ -9023,6 +9024,10 @@ bool ARMAsmParser::parseDirectiveArch(SMLoc L) {
return false;
}
+ Triple T;
+ STI.setDefaultFeatures(T.getARMCPUForArch(Arch));
+ setAvailableFeatures(ComputeAvailableFeatures(STI.getFeatureBits()));
+
getTargetStreamer().emitArch(ID);
return false;
}
OpenPOWER on IntegriCloud