blob: bb0b0d71da539b8c32ee6fcda286b5f550f5bd28 [file] [log] [blame]
Alexei Starovoitove4c8c802015-01-24 17:51:26 +00001//===-- BPFInstPrinter.h - Convert BPF MCInst to asm 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// This class prints a BPF MCInst to a .s file.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_LIB_TARGET_BPF_INSTPRINTER_BPFINSTPRINTER_H
15#define LLVM_LIB_TARGET_BPF_INSTPRINTER_BPFINSTPRINTER_H
16
17#include "llvm/MC/MCInstPrinter.h"
18
19namespace llvm {
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000020class BPFInstPrinter : public MCInstPrinter {
21public:
22 BPFInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII,
23 const MCRegisterInfo &MRI)
24 : MCInstPrinter(MAI, MII, MRI) {}
25
Akira Hatanakab46d0232015-03-27 20:36:02 +000026 void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot,
27 const MCSubtargetInfo &STI) override;
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000028 void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O,
29 const char *Modifier = nullptr);
30 void printMemOperand(const MCInst *MI, int OpNo, raw_ostream &O,
31 const char *Modifier = nullptr);
32 void printImm64Operand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
Yonghong Songce967382017-11-16 19:15:36 +000033 void printBrTargetOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000034
35 // Autogenerated by tblgen.
36 void printInstruction(const MCInst *MI, raw_ostream &O);
37 static const char *getRegisterName(unsigned RegNo);
38};
Alexander Kornienkof00654e2015-06-23 09:49:53 +000039}
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000040
41#endif