[LLVMdev] AsmParser for backend
Ulrich Weigand
Ulrich.Weigand at de.ibm.com
Tue Feb 5 06:20:28 PST 2013
Jonathan <gamma_chen at yahoo.com.tw> wrote:
> I try to create a backend to support AsmParser, but it hasn't the red
part
> as below. I find the Mips has this. Do you know how to make it appear?
>
> Jonathan
>
> #ifdef GET_ASSEMBLER_HEADER
> #undef GET_ASSEMBLER_HEADER
> // This should be included into the middle of the declaration of
> // your subclasses implementation of MCTargetAsmParser.
> unsigned ComputeAvailableFeatures(uint64_t FeatureBits) const;
> void convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode,
> const SmallVectorImpl<MCParsedAsmOperand*>
&Operands);
> void convertToMapAndConstraints(unsigned Kind,
> const
> SmallVectorImpl<MCParsedAsmOperand*> &Operands);
> bool mnemonicIsValid(StringRef Mnemonic);
> unsigned MatchInstructionImpl(
> const
> SmallVectorImpl<MCParsedAsmOperand*> &Operands,
> MCInst &Inst,
> unsigned &ErrorInfo, bool
matchingInlineAsm,
> unsigned VariantID = 0);
>
> enum OperandMatchResultTy {
> MatchOperand_Success, // operand matched successfully
> MatchOperand_NoMatch, // operand did not match
> MatchOperand_ParseFail // operand matched but had errors
> };
> OperandMatchResultTy MatchOperandParserImpl(
> SmallVectorImpl<MCParsedAsmOperand*> &Operands,
> StringRef Mnemonic);
> OperandMatchResultTy tryCustomParseOperand(
> SmallVectorImpl<MCParsedAsmOperand*> &Operands,
> unsigned MCK);
>
> #endif // GET_ASSEMBLER_HEADER_INFO
My understanding is that this will be generated automatically
if any instruction has an operand that needs a custom parser
(i.e. one that has been defined using the ParserMethod attribute).
Bye,
Ulrich
More information about the llvm-dev
mailing list