LCOV - code coverage report
Current view: top level - include/llvm/MC - MCInstrInfo.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 6 9 66.7 %
Date: 2018-10-20 13:21:21 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===-- llvm/MC/MCInstrInfo.h - Target Instruction Info ---------*- C++ -*-===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : //
      10             : // This file describes the target machine instruction set.
      11             : //
      12             : //===----------------------------------------------------------------------===//
      13             : 
      14             : #ifndef LLVM_MC_MCINSTRINFO_H
      15             : #define LLVM_MC_MCINSTRINFO_H
      16             : 
      17             : #include "llvm/MC/MCInstrDesc.h"
      18             : #include <cassert>
      19             : 
      20             : namespace llvm {
      21             : 
      22             : //---------------------------------------------------------------------------
      23             : /// Interface to description of machine instruction set.
      24             : class MCInstrInfo {
      25             :   const MCInstrDesc *Desc;          // Raw array to allow static init'n
      26             :   const unsigned *InstrNameIndices; // Array for name indices in InstrNameData
      27             :   const char *InstrNameData;        // Instruction name string pool
      28             :   unsigned NumOpcodes;              // Number of entries in the desc array
      29             : 
      30             : public:
      31             :   /// Initialize MCInstrInfo, called by TableGen auto-generated routines.
      32             :   /// *DO NOT USE*.
      33             :   void InitMCInstrInfo(const MCInstrDesc *D, const unsigned *NI, const char *ND,
      34             :                        unsigned NO) {
      35      105135 :     Desc = D;
      36      105135 :     InstrNameIndices = NI;
      37      105135 :     InstrNameData = ND;
      38      105135 :     NumOpcodes = NO;
      39             :   }
      40             : 
      41           0 :   unsigned getNumOpcodes() const { return NumOpcodes; }
      42             : 
      43             :   /// Return the machine instruction descriptor that corresponds to the
      44             :   /// specified instruction opcode.
      45           0 :   const MCInstrDesc &get(unsigned Opcode) const {
      46             :     assert(Opcode < NumOpcodes && "Invalid opcode!");
      47   207445870 :     return Desc[Opcode];
      48             :   }
      49             : 
      50             :   /// Returns the name for the instructions with the given opcode.
      51           0 :   StringRef getName(unsigned Opcode) const {
      52             :     assert(Opcode < NumOpcodes && "Invalid opcode!");
      53    37882278 :     return StringRef(&InstrNameData[InstrNameIndices[Opcode]]);
      54             :   }
      55             : };
      56             : 
      57             : } // End llvm namespace
      58             : 
      59             : #endif

Generated by: LCOV version 1.13