Skip to content

Commit 13640e5

Browse files
committed
Merging r249165:
------------------------------------------------------------------------ r249165 | rdivacky | 2015-10-02 19:25:25 +0100 (Fri, 02 Oct 2015) | 2 lines Actually switch the arch when we see .arch. PR21695 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252456 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 75e2ec6 commit 13640e5

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

lib/Target/ARM/AsmParser/ARMAsmParser.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "llvm/ADT/SmallVector.h"
1616
#include "llvm/ADT/StringExtras.h"
1717
#include "llvm/ADT/StringSwitch.h"
18+
#include "llvm/ADT/Triple.h"
1819
#include "llvm/ADT/Twine.h"
1920
#include "llvm/MC/MCAsmInfo.h"
2021
#include "llvm/MC/MCAssembler.h"
@@ -9104,6 +9105,10 @@ bool ARMAsmParser::parseDirectiveArch(SMLoc L) {
91049105
return false;
91059106
}
91069107

9108+
Triple T;
9109+
STI.setDefaultFeatures(T.getARMCPUForArch(Arch));
9110+
setAvailableFeatures(ComputeAvailableFeatures(STI.getFeatureBits()));
9111+
91079112
getTargetStreamer().emitArch(ID);
91089113
return false;
91099114
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@ RUN: not llvm-mc -triple arm-gnueabi-linux -filetype asm %s 2>&1 | FileCheck %s
2+
3+
.arch armv6
4+
dsb
5+
@ CHECK: error: instruction requires: data-barriers
6+
7+
.arch armv7
8+
dsb
9+
@ CHECK-NOT: error: instruction requires: data-barriers
10+
11+
.arch invalid_architecture_name
12+
@ CHECK: error: Unknown arch name

0 commit comments

Comments
 (0)