diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 125 |
1 files changed, 63 insertions, 62 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 312f071676d..5b242c3705b 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -7210,130 +7210,131 @@ bool MipsAsmParser::parseDirectiveNaN() { } bool MipsAsmParser::parseDirectiveSet() { - MCAsmParser &Parser = getParser(); - // Get the next token. - const AsmToken &Tok = Parser.getTok(); + const AsmToken &Tok = getParser().getTok(); + StringRef IdVal = Tok.getString(); + SMLoc Loc = Tok.getLoc(); - if (Tok.getString() == "noat") { + if (IdVal == "noat") return parseSetNoAtDirective(); - } else if (Tok.getString() == "at") { + if (IdVal == "at") return parseSetAtDirective(); - } else if (Tok.getString() == "arch") { + if (IdVal == "arch") return parseSetArchDirective(); - } else if (Tok.getString() == "bopt") { - Warning(Tok.getLoc(), "'bopt' feature is unsupported"); + if (IdVal == "bopt") { + Warning(Loc, "'bopt' feature is unsupported"); getParser().Lex(); return false; - } else if (Tok.getString() == "nobopt") { + } + if (IdVal == "nobopt") { // We're already running in nobopt mode, so nothing to do. getParser().Lex(); return false; - } else if (Tok.getString() == "fp") { + } + if (IdVal == "fp") return parseSetFpDirective(); - } else if (Tok.getString() == "oddspreg") { + if (IdVal == "oddspreg") return parseSetOddSPRegDirective(); - } else if (Tok.getString() == "nooddspreg") { + if (IdVal == "nooddspreg") return parseSetNoOddSPRegDirective(); - } else if (Tok.getString() == "pop") { + if (IdVal == "pop") return parseSetPopDirective(); - } else if (Tok.getString() == "push") { + if (IdVal == "push") return parseSetPushDirective(); - } else if (Tok.getString() == "reorder") { + if (IdVal == "reorder") return parseSetReorderDirective(); - } else if (Tok.getString() == "noreorder") { + if (IdVal == "noreorder") return parseSetNoReorderDirective(); - } else if (Tok.getString() == "macro") { + if (IdVal == "macro") return parseSetMacroDirective(); - } else if (Tok.getString() == "nomacro") { + if (IdVal == "nomacro") return parseSetNoMacroDirective(); - } else if (Tok.getString() == "mips16") { + if (IdVal == "mips16") return parseSetMips16Directive(); - } else if (Tok.getString() == "nomips16") { + if (IdVal == "nomips16") return parseSetNoMips16Directive(); - } else if (Tok.getString() == "nomicromips") { + if (IdVal == "nomicromips") { clearFeatureBits(Mips::FeatureMicroMips, "micromips"); getTargetStreamer().emitDirectiveSetNoMicroMips(); - Parser.eatToEndOfStatement(); + getParser().eatToEndOfStatement(); return false; - } else if (Tok.getString() == "micromips") { + } + if (IdVal == "micromips") { if (hasMips64r6()) { - Error(Tok.getLoc(), - ".set micromips directive is not supported with MIPS64R6"); + Error(Loc, ".set micromips directive is not supported with MIPS64R6"); return false; } return parseSetFeature(Mips::FeatureMicroMips); - } else if (Tok.getString() == "mips0") { + } + if (IdVal == "mips0") return parseSetMips0Directive(); - } else if (Tok.getString() == "mips1") { + if (IdVal == "mips1") return parseSetFeature(Mips::FeatureMips1); - } else if (Tok.getString() == "mips2") { + if (IdVal == "mips2") return parseSetFeature(Mips::FeatureMips2); - } else if (Tok.getString() == "mips3") { + if (IdVal == "mips3") return parseSetFeature(Mips::FeatureMips3); - } else if (Tok.getString() == "mips4") { + if (IdVal == "mips4") return parseSetFeature(Mips::FeatureMips4); - } else if (Tok.getString() == "mips5") { + if (IdVal == "mips5") return parseSetFeature(Mips::FeatureMips5); - } else if (Tok.getString() == "mips32") { + if (IdVal == "mips32") return parseSetFeature(Mips::FeatureMips32); - } else if (Tok.getString() == "mips32r2") { + if (IdVal == "mips32r2") return parseSetFeature(Mips::FeatureMips32r2); - } else if (Tok.getString() == "mips32r3") { + if (IdVal == "mips32r3") return parseSetFeature(Mips::FeatureMips32r3); - } else if (Tok.getString() == "mips32r5") { + if (IdVal == "mips32r5") return parseSetFeature(Mips::FeatureMips32r5); - } else if (Tok.getString() == "mips32r6") { + if (IdVal == "mips32r6") return parseSetFeature(Mips::FeatureMips32r6); - } else if (Tok.getString() == "mips64") { + if (IdVal == "mips64") return parseSetFeature(Mips::FeatureMips64); - } else if (Tok.getString() == "mips64r2") { + if (IdVal == "mips64r2") return parseSetFeature(Mips::FeatureMips64r2); - } else if (Tok.getString() == "mips64r3") { + if (IdVal == "mips64r3") return parseSetFeature(Mips::FeatureMips64r3); - } else if (Tok.getString() == "mips64r5") { + if (IdVal == "mips64r5") return parseSetFeature(Mips::FeatureMips64r5); - } else if (Tok.getString() == "mips64r6") { + if (IdVal == "mips64r6") { if (inMicroMipsMode()) { - Error(Tok.getLoc(), "MIPS64R6 is not supported with microMIPS"); + Error(Loc, "MIPS64R6 is not supported with microMIPS"); return false; } return parseSetFeature(Mips::FeatureMips64r6); - } else if (Tok.getString() == "dsp") { + } + if (IdVal == "dsp") return parseSetFeature(Mips::FeatureDSP); - } else if (Tok.getString() == "dspr2") { + if (IdVal == "dspr2") return parseSetFeature(Mips::FeatureDSPR2); - } else if (Tok.getString() == "nodsp") { + if (IdVal == "nodsp") return parseSetNoDspDirective(); - } else if (Tok.getString() == "msa") { + if (IdVal == "msa") return parseSetMsaDirective(); - } else if (Tok.getString() == "nomsa") { + if (IdVal == "nomsa") return parseSetNoMsaDirective(); - } else if (Tok.getString() == "mt") { + if (IdVal == "mt") return parseSetMtDirective(); - } else if (Tok.getString() == "nomt") { + if (IdVal == "nomt") return parseSetNoMtDirective(); - } else if (Tok.getString() == "softfloat") { + if (IdVal == "softfloat") return parseSetSoftFloatDirective(); - } else if (Tok.getString() == "hardfloat") { + if (IdVal == "hardfloat") return parseSetHardFloatDirective(); - } else if (Tok.getString() == "crc") { + if (IdVal == "crc") return parseSetFeature(Mips::FeatureCRC); - } else if (Tok.getString() == "nocrc") { + if (IdVal == "nocrc") return parseSetNoCRCDirective(); - } else if (Tok.getString() == "virt") { + if (IdVal == "virt") return parseSetFeature(Mips::FeatureVirt); - } else if (Tok.getString() == "novirt") { + if (IdVal == "novirt") return parseSetNoVirtDirective(); - } else if (Tok.getString() == "ginv") { + if (IdVal == "ginv") return parseSetFeature(Mips::FeatureGINV); - } else if (Tok.getString() == "noginv") { + if (IdVal == "noginv") return parseSetNoGINVDirective(); - } else { - // It is just an identifier, look for an assignment. - return parseSetAssignment(); - } - return true; + // It is just an identifier, look for an assignment. + return parseSetAssignment(); } /// parseDataDirective |

