summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp5
-rw-r--r--llvm/test/MC/Mips/set-arch.s4
2 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
index d6400e24316..8165f8f466f 100644
--- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
@@ -7175,8 +7175,8 @@ bool MipsAsmParser::parseSetArchDirective() {
return reportParseError("unexpected token, expected equals sign");
Parser.Lex();
- StringRef Arch;
- if (Parser.parseIdentifier(Arch))
+ StringRef Arch = getParser().parseStringToEndOfStatement().trim();
+ if (Arch.empty())
return reportParseError("expected arch identifier");
StringRef ArchFeatureName =
@@ -7197,6 +7197,7 @@ bool MipsAsmParser::parseSetArchDirective() {
.Case("mips64r5", "mips64r5")
.Case("mips64r6", "mips64r6")
.Case("octeon", "cnmips")
+ .Case("octeon+", "cnmipsp")
.Case("r4000", "mips3") // This is an implementation of Mips3.
.Default("");
diff --git a/llvm/test/MC/Mips/set-arch.s b/llvm/test/MC/Mips/set-arch.s
index e1123a90d06..64bf3687883 100644
--- a/llvm/test/MC/Mips/set-arch.s
+++ b/llvm/test/MC/Mips/set-arch.s
@@ -38,6 +38,8 @@
mod $2, $4, $6
.set arch=octeon
baddu $9, $6, $7
+ .set arch=octeon+
+ saa $2, ($5)
.set arch=r4000
dadd $2, $2, $2
@@ -65,5 +67,7 @@
# CHECK: mod $2, $4, $6
# CHECK: .set arch=octeon
# CHECK: baddu $9, $6, $7
+# CHECK: .set arch=octeon+
+# CHECK: saa $2, ($5)
# CHECK: .set arch=r4000
# CHECK: dadd $2, $2, $2
OpenPOWER on IntegriCloud