LLVM 19.0.0git
MCCodeEmitter.h
Go to the documentation of this file.
1//===- llvm/MC/MCCodeEmitter.h - Instruction Encoding -----------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_MC_MCCODEEMITTER_H
10#define LLVM_MC_MCCODEEMITTER_H
11
12namespace llvm {
13
14class MCFixup;
15class MCInst;
16class MCSubtargetInfo;
17class raw_ostream;
18template<typename T> class SmallVectorImpl;
19
20/// MCCodeEmitter - Generic instruction encoding interface.
22protected: // Can only create subclasses.
24
25public:
26 MCCodeEmitter(const MCCodeEmitter &) = delete;
28 virtual ~MCCodeEmitter();
29
30 /// Lifetime management
31 virtual void reset() {}
32
33 /// Append the prefixes of given instruction to the code buffer.
34 ///
35 /// \param Inst a single low-level machine instruction.
36 /// \param CB code buffer
37 virtual void emitPrefix(const MCInst &Inst, SmallVectorImpl<char> &CB,
38 const MCSubtargetInfo &STI) const {}
39 /// Encode the given \p Inst to bytes and append to \p CB.
40 virtual void encodeInstruction(const MCInst &Inst, SmallVectorImpl<char> &CB,
42 const MCSubtargetInfo &STI) const = 0;
43};
44
45} // end namespace llvm
46
47#endif // LLVM_MC_MCCODEEMITTER_H
MCCodeEmitter - Generic instruction encoding interface.
Definition: MCCodeEmitter.h:21
virtual void encodeInstruction(const MCInst &Inst, SmallVectorImpl< char > &CB, SmallVectorImpl< MCFixup > &Fixups, const MCSubtargetInfo &STI) const =0
Encode the given Inst to bytes and append to CB.
virtual void reset()
Lifetime management.
Definition: MCCodeEmitter.h:31
MCCodeEmitter & operator=(const MCCodeEmitter &)=delete
virtual ~MCCodeEmitter()
MCCodeEmitter(const MCCodeEmitter &)=delete
virtual void emitPrefix(const MCInst &Inst, SmallVectorImpl< char > &CB, const MCSubtargetInfo &STI) const
Append the prefixes of given instruction to the code buffer.
Definition: MCCodeEmitter.h:37
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:184
Generic base class for all target subtargets.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Definition: SmallVector.h:586
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18