Coverage Report

Created: 2018-11-16 02:38

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/MC/MCCodeEmitter.h
Line
Count
Source
1
//===- llvm/MC/MCCodeEmitter.h - Instruction Encoding -----------*- 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
#ifndef LLVM_MC_MCCODEEMITTER_H
11
#define LLVM_MC_MCCODEEMITTER_H
12
13
namespace llvm {
14
15
class MCFixup;
16
class MCInst;
17
class MCSubtargetInfo;
18
class raw_ostream;
19
template<typename T> class SmallVectorImpl;
20
21
/// MCCodeEmitter - Generic instruction encoding interface.
22
class MCCodeEmitter {
23
protected: // Can only create subclasses.
24
  MCCodeEmitter();
25
26
public:
27
  MCCodeEmitter(const MCCodeEmitter &) = delete;
28
  MCCodeEmitter &operator=(const MCCodeEmitter &) = delete;
29
  virtual ~MCCodeEmitter();
30
31
  /// Lifetime management
32
14.3k
  virtual void reset() {}
33
34
  /// EncodeInstruction - Encode the given \p Inst to bytes on the output
35
  /// stream \p OS.
36
  virtual void encodeInstruction(const MCInst &Inst, raw_ostream &OS,
37
                                 SmallVectorImpl<MCFixup> &Fixups,
38
                                 const MCSubtargetInfo &STI) const = 0;
39
};
40
41
} // end namespace llvm
42
43
#endif // LLVM_MC_MCCODEEMITTER_H