LLVM 20.0.0git
VEInstPrinter.h
Go to the documentation of this file.
1//===-- VEInstPrinter.h - Convert VE MCInst to assembly syntax ------------===//
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// This class prints an VE MCInst to a .s file.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_VE_INSTPRINTER_VEINSTPRINTER_H
14#define LLVM_LIB_TARGET_VE_INSTPRINTER_VEINSTPRINTER_H
15
16#include "VEMCTargetDesc.h"
18
19namespace llvm {
20
22public:
24 const MCRegisterInfo &MRI)
25 : MCInstPrinter(MAI, MII, MRI) {}
26
27 void printRegName(raw_ostream &OS, MCRegister Reg) override;
28 void printInst(const MCInst *MI, uint64_t Address, StringRef Annot,
29 const MCSubtargetInfo &STI, raw_ostream &OS) override;
30
31 // Autogenerated by tblgen.
32 std::pair<const char *, uint64_t>
33 getMnemonic(const MCInst &MI) const override;
35 const MCSubtargetInfo &, raw_ostream &);
37 raw_ostream &);
38 static const char *getRegisterName(MCRegister Reg,
39 unsigned AltIdx = VE::NoRegAltName);
40
41 void printOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI,
43 void printMemASXOperand(const MCInst *MI, int OpNum,
44 const MCSubtargetInfo &STI, raw_ostream &OS,
45 const char *Modifier = nullptr);
46 void printMemASOperandASX(const MCInst *MI, int OpNum,
47 const MCSubtargetInfo &STI, raw_ostream &OS,
48 const char *Modifier = nullptr);
49 void printMemASOperandRRM(const MCInst *MI, int OpNum,
50 const MCSubtargetInfo &STI, raw_ostream &OS,
51 const char *Modifier = nullptr);
52 void printMemASOperandHM(const MCInst *MI, int OpNum,
53 const MCSubtargetInfo &STI, raw_ostream &OS,
54 const char *Modifier = nullptr);
55 void printMImmOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI,
57 void printCCOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI,
59 void printRDOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI,
61};
62} // namespace llvm
63
64#endif
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:46
const MCInstrInfo & MII
Definition: MCInstPrinter.h:53
const MCRegisterInfo & MRI
Definition: MCInstPrinter.h:54
const MCAsmInfo & MAI
Definition: MCInstPrinter.h:52
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:185
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:51
void printMImmOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS)
VEInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
Definition: VEInstPrinter.h:23
void printMemASOperandHM(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS, const char *Modifier=nullptr)
void printRegName(raw_ostream &OS, MCRegister Reg) override
Print the assembler register name.
void printMemASOperandRRM(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS, const char *Modifier=nullptr)
bool printAliasInstr(const MCInst *, uint64_t Address, const MCSubtargetInfo &, raw_ostream &)
void printOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS)
void printRDOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS)
void printMemASXOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS, const char *Modifier=nullptr)
void printCCOperand(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS)
static const char * getRegisterName(MCRegister Reg, unsigned AltIdx=VE::NoRegAltName)
void printInst(const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &OS) override
Print the specified MCInst to the specified raw_ostream.
void printInstruction(const MCInst *, uint64_t, const MCSubtargetInfo &, raw_ostream &)
void printMemASOperandASX(const MCInst *MI, int OpNum, const MCSubtargetInfo &STI, raw_ostream &OS, const char *Modifier=nullptr)
std::pair< const char *, uint64_t > getMnemonic(const MCInst &MI) const 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