LLVM 19.0.0git
XCoreInstPrinter.h
Go to the documentation of this file.
1//== XCoreInstPrinter.h - Convert XCore MCInst to assembly syntax -*- 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/// \file
10/// This file contains the declaration of the XCoreInstPrinter class,
11/// which is used to print XCore MCInst to a .s file.
12///
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_XCORE_MCTARGETDESC_XCOREINSTPRINTER_H
16#define LLVM_LIB_TARGET_XCORE_MCTARGETDESC_XCOREINSTPRINTER_H
17
19
20namespace llvm {
21class StringRef;
22
24public:
26 const MCRegisterInfo &MRI)
27 : MCInstPrinter(MAI, MII, MRI) {}
28
29 // Autogenerated by tblgen.
30 std::pair<const char *, uint64_t> getMnemonic(const MCInst *MI) override;
32 static const char *getRegisterName(MCRegister Reg);
33
34 void printRegName(raw_ostream &OS, MCRegister Reg) const override;
35 void printInst(const MCInst *MI, uint64_t Address, StringRef Annot,
36 const MCSubtargetInfo &STI, raw_ostream &O) override;
37
38private:
39 void printInlineJT(const MCInst *MI, int opNum, raw_ostream &O);
40 void printInlineJT32(const MCInst *MI, int opNum, raw_ostream &O);
41 void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
42};
43
44} // end namespace llvm
45
46#endif // LLVM_LIB_TARGET_XCORE_MCTARGETDESC_XCOREINSTPRINTER_H
IRTranslator LLVM IR MI
unsigned Reg
raw_pwrite_stream & OS
This class is intended to be used as a base class for asm properties and features specific to the tar...
Definition: MCAsmInfo.h:56
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
Definition: MCInstPrinter.h:45
const MCInstrInfo & MII
Definition: MCInstPrinter.h:52
const MCRegisterInfo & MRI
Definition: MCInstPrinter.h:53
const MCAsmInfo & MAI
Definition: MCInstPrinter.h:51
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:184
Interface to description of machine instruction set.
Definition: MCInstrInfo.h:26
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Wrapper class representing physical registers. Should be passed by value.
Definition: MCRegister.h:33
Generic base class for all target subtargets.
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
void printRegName(raw_ostream &OS, MCRegister Reg) const override
Print the assembler register name.
static const char * getRegisterName(MCRegister Reg)
XCoreInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
void printInstruction(const MCInst *MI, uint64_t Address, raw_ostream &O)
void printInst(const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &O) override
Print the specified MCInst to the specified raw_ostream.
std::pair< const char *, uint64_t > getMnemonic(const MCInst *MI) override
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by p...
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:52
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18