LCOV - code coverage report
Current view: top level - lib/Target/WebAssembly/InstPrinter - WebAssemblyInstPrinter.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 1 1 100.0 %
Date: 2018-07-13 00:08:38 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // WebAssemblyInstPrinter.h - Print wasm MCInst to assembly syntax -*- 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             : /// \file
      11             : /// This class prints an WebAssembly MCInst to wasm file syntax.
      12             : ///
      13             : //===----------------------------------------------------------------------===//
      14             : 
      15             : #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_INSTPRINTER_WEBASSEMBLYINSTPRINTER_H
      16             : #define LLVM_LIB_TARGET_WEBASSEMBLY_INSTPRINTER_WEBASSEMBLYINSTPRINTER_H
      17             : 
      18             : #include "llvm/ADT/SmallVector.h"
      19             : #include "llvm/BinaryFormat/Wasm.h"
      20             : #include "llvm/MC/MCInstPrinter.h"
      21             : #include "llvm/Support/MachineValueType.h"
      22             : 
      23             : namespace llvm {
      24             : 
      25             : class MCSubtargetInfo;
      26             : 
      27         375 : class WebAssemblyInstPrinter final : public MCInstPrinter {
      28             :   uint64_t ControlFlowCounter;
      29             :   SmallVector<std::pair<uint64_t, bool>, 0> ControlFlowStack;
      30             : 
      31             : public:
      32             :   WebAssemblyInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII,
      33             :                          const MCRegisterInfo &MRI);
      34             : 
      35             :   void printRegName(raw_ostream &OS, unsigned RegNo) const override;
      36             :   void printInst(const MCInst *MI, raw_ostream &OS, StringRef Annot,
      37             :                  const MCSubtargetInfo &STI) override;
      38             : 
      39             :   // Used by tblegen code.
      40             :   void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
      41             :   void printWebAssemblyP2AlignOperand(const MCInst *MI, unsigned OpNo,
      42             :                                       raw_ostream &O);
      43             :   void printWebAssemblySignatureOperand(const MCInst *MI, unsigned OpNo,
      44             :                                         raw_ostream &O);
      45             : 
      46             :   // Autogenerated by tblgen.
      47             :   void printInstruction(const MCInst *MI, raw_ostream &O);
      48             :   static const char *getRegisterName(unsigned RegNo);
      49             : };
      50             : 
      51             : namespace WebAssembly {
      52             : 
      53             : const char *TypeToString(MVT Ty);
      54             : const char *TypeToString(wasm::ValType Type);
      55             : 
      56             : } // end namespace WebAssembly
      57             : 
      58             : } // end namespace llvm
      59             : 
      60             : #endif

Generated by: LCOV version 1.13