summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2015-04-23 23:16:22 +0000
committerHal Finkel <hfinkel@anl.gov>2015-04-23 23:16:22 +0000
commit4dc8fcc224aafb3394908618241dbf1b9a27a0c0 (patch)
treeddf3ff2f65a98fb77b40ace2cc1e7307a59e1a06 /llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
parent66242d6c5e6a99ed81339d166b0bac7cfbdf1975 (diff)
downloadbcm5719-llvm-4dc8fcc224aafb3394908618241dbf1b9a27a0c0.tar.gz
bcm5719-llvm-4dc8fcc224aafb3394908618241dbf1b9a27a0c0.zip
[PowerPC] Support register name prefixes for vector registers
Match binutils by supporting the optional register name prefix for new vector registers ("vs" for VSX registers and "q" for QPX registers). llvm-svn: 235665
Diffstat (limited to 'llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp')
-rw-r--r--llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
index 9492e1d3f66..b6f10e61079 100644
--- a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
+++ b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
@@ -1219,10 +1219,18 @@ MatchRegisterName(const AsmToken &Tok, unsigned &RegNo, int64_t &IntVal) {
!Name.substr(1).getAsInteger(10, IntVal) && IntVal < 32) {
RegNo = FRegs[IntVal];
return false;
+ } else if (Name.startswith_lower("vs") &&
+ !Name.substr(2).getAsInteger(10, IntVal) && IntVal < 64) {
+ RegNo = VSRegs[IntVal];
+ return false;
} else if (Name.startswith_lower("v") &&
!Name.substr(1).getAsInteger(10, IntVal) && IntVal < 32) {
RegNo = VRegs[IntVal];
return false;
+ } else if (Name.startswith_lower("q") &&
+ !Name.substr(1).getAsInteger(10, IntVal) && IntVal < 32) {
+ RegNo = QFRegs[IntVal];
+ return false;
} else if (Name.startswith_lower("cr") &&
!Name.substr(2).getAsInteger(10, IntVal) && IntVal < 8) {
RegNo = CRRegs[IntVal];
OpenPOWER on IntegriCloud