diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-12-24 00:03:39 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-12-24 00:03:39 +0000 |
commit | f12eee75d1f8a3e276d03cc0fda95d18097fb08e (patch) | |
tree | d612fa9dcd678697aaf9d13f4578340df7793740 /lib/Target/ARM/AsmParser/ARMAsmLexer.cpp | |
parent | ec3953ff95c6106185fc6509175b86cbdf3958f6 (diff) |
Use a StringSwitch<> instead of a manually constructed string matcher.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122530 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/AsmParser/ARMAsmLexer.cpp')
-rw-r--r-- | lib/Target/ARM/AsmParser/ARMAsmLexer.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/Target/ARM/AsmParser/ARMAsmLexer.cpp b/lib/Target/ARM/AsmParser/ARMAsmLexer.cpp index c93fb248e7..0cc6079410 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmLexer.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmLexer.cpp @@ -13,6 +13,7 @@ #include "llvm/ADT/OwningPtr.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/StringSwitch.h" #include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCParser/MCAsmLexer.h" @@ -128,16 +129,12 @@ AsmToken ARMBaseAsmLexer::LexTokenUAL() { // ip -> r12 // FIXME: Some assemblers support lots of others. Do we want them all? if (!regID) { - if (lowerCase.size() == 3 && lowerCase[0] == 'r' - && lowerCase[1] == '1') { - switch (lowerCase[2]) { - default: break; - case '3': regID = ARM::SP; - case '4': regID = ARM::LR; - case '5': regID = ARM::PC; - } - } else if (lowerCase == "ip") - regID = ARM::R12; + regID = StringSwitch<unsigned>(lowerCase) + .Case("r13", ARM::SP) + .Case("r14", ARM::LR) + .Case("r15", ARM::PC) + .Case("ip", ARM::R12) + .Default(0); } if (regID) { |