summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/AsmParser
diff options
context:
space:
mode:
authorArtyom Skrobov <Artyom.Skrobov@arm.com>2013-11-08 09:16:31 +0000
committerArtyom Skrobov <Artyom.Skrobov@arm.com>2013-11-08 09:16:31 +0000
commit1b91231347c00bf1be46bdd5b27ae8c45fdc0d0c (patch)
treec74e477718e03fe715ab1666071fb75cc97c01ee /lib/Target/ARM/AsmParser
parent5f7259180c59b2830bf206b44439be32ffa9161e (diff)
downloadllvm-1b91231347c00bf1be46bdd5b27ae8c45fdc0d0c.tar.gz
llvm-1b91231347c00bf1be46bdd5b27ae8c45fdc0d0c.tar.bz2
llvm-1b91231347c00bf1be46bdd5b27ae8c45fdc0d0c.tar.xz
[ARM] In ARMAsmParser, MatchCoprocessorOperandName() permitted p10 and p11 as operands for coprocessor instructions, resulting in encodings that clash with FP/NEON instruction encodings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194253 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/AsmParser')
-rw-r--r--lib/Target/ARM/AsmParser/ARMAsmParser.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index ba6075e91d..c56fc9cfb7 100644
--- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -2872,8 +2872,9 @@ static int MatchCoprocessorOperandName(StringRef Name, char CoprocOp) {
return -1;
switch (Name[2]) {
default: return -1;
- case '0': return 10;
- case '1': return 11;
+ // p10 and p11 are invalid for coproc instructions (reserved for FP/NEON)
+ case '0': return CoprocOp == 'p'? -1: 10;
+ case '1': return CoprocOp == 'p'? -1: 11;
case '2': return 12;
case '3': return 13;
case '4': return 14;