1 //===-- MipsAsmParser.cpp - Parse Mips assembly to MCInst instructions ----===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "MCTargetDesc/MipsMCTargetDesc.h"
11 #include "llvm/MC/MCParser/MCAsmLexer.h"
12 #include "llvm/MC/MCTargetAsmParser.h"
13 #include "llvm/Support/TargetRegistry.h"
18 class MipsAsmParser : public MCTargetAsmParser {
19 bool MatchAndEmitInstruction(SMLoc IDLoc,
20 SmallVectorImpl<MCParsedAsmOperand*> &Operands,
23 bool ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc);
25 bool ParseInstruction(StringRef Name, SMLoc NameLoc,
26 SmallVectorImpl<MCParsedAsmOperand*> &Operands);
28 bool ParseDirective(AsmToken DirectiveID);
31 MipsAsmParser(MCSubtargetInfo &sti, MCAsmParser &parser)
32 : MCTargetAsmParser() {
39 MatchAndEmitInstruction(SMLoc IDLoc,
40 SmallVectorImpl<MCParsedAsmOperand*> &Operands,
46 ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) {
51 ParseInstruction(StringRef Name, SMLoc NameLoc,
52 SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
57 ParseDirective(AsmToken DirectiveID) {
61 extern "C" void LLVMInitializeMipsAsmParser() {
62 RegisterMCAsmParser<MipsAsmParser> X(TheMipsTarget);
63 RegisterMCAsmParser<MipsAsmParser> Y(TheMipselTarget);
64 RegisterMCAsmParser<MipsAsmParser> A(TheMips64Target);
65 RegisterMCAsmParser<MipsAsmParser> B(TheMips64elTarget);