| //===-- llvm/MC/MCInstrInfo.h - Target Instruction Info ---------*- C++ -*-===// | |
| // | |
| // The LLVM Compiler Infrastructure | |
| // | |
| // This file is distributed under the University of Illinois Open Source | |
| // License. See LICENSE.TXT for details. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // | |
| // This file describes the target machine instruction set. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef LLVM_MC_MCINSTRINFO_H | |
| #define LLVM_MC_MCINSTRINFO_H | |
| #include "llvm/MC/MCInstrDesc.h" | |
| #include <cassert> | |
| namespace llvm { | |
| //--------------------------------------------------------------------------- | |
| /// | |
| /// MCInstrInfo - Interface to description of machine instruction set | |
| /// | |
| class MCInstrInfo { | |
| const MCInstrDesc *Desc; // Raw array to allow static init'n | |
| unsigned NumOpcodes; // Number of entries in the desc array | |
| public: | |
| /// InitMCInstrInfo - Initialize MCInstrInfo, called by TableGen | |
| /// auto-generated routines. *DO NOT USE*. | |
| void InitMCInstrInfo(const MCInstrDesc *D, unsigned NO) { | |
| Desc = D; | |
| NumOpcodes = NO; | |
| } | |
| unsigned getNumOpcodes() const { return NumOpcodes; } | |
| /// get - Return the machine instruction descriptor that corresponds to the | |
| /// specified instruction opcode. | |
| /// | |
| const MCInstrDesc &get(unsigned Opcode) const { | |
| assert(Opcode < NumOpcodes && "Invalid opcode!"); | |
| return Desc[Opcode]; | |
| } | |
| }; | |
| } // End llvm namespace | |
| #endif |