1251607Sdim//===-- SystemZAsmPrinter.h - SystemZ LLVM assembly printer ----*- C++ -*--===//
2251607Sdim//
3251607Sdim//                     The LLVM Compiler Infrastructure
4251607Sdim//
5251607Sdim// This file is distributed under the University of Illinois Open Source
6251607Sdim// License. See LICENSE.TXT for details.
7251607Sdim//
8251607Sdim//===----------------------------------------------------------------------===//
9251607Sdim
10280031Sdim#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZASMPRINTER_H
11280031Sdim#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZASMPRINTER_H
12251607Sdim
13251607Sdim#include "SystemZTargetMachine.h"
14251607Sdim#include "llvm/CodeGen/AsmPrinter.h"
15251607Sdim#include "llvm/Support/Compiler.h"
16251607Sdim
17251607Sdimnamespace llvm {
18251607Sdimclass MCStreamer;
19251607Sdimclass MachineBasicBlock;
20251607Sdimclass MachineInstr;
21251607Sdimclass Module;
22251607Sdimclass raw_ostream;
23251607Sdim
24251607Sdimclass LLVM_LIBRARY_VISIBILITY SystemZAsmPrinter : public AsmPrinter {
25251607Sdimpublic:
26288943Sdim  SystemZAsmPrinter(TargetMachine &TM, std::unique_ptr<MCStreamer> Streamer)
27288943Sdim      : AsmPrinter(TM, std::move(Streamer)) {}
28251607Sdim
29251607Sdim  // Override AsmPrinter.
30276479Sdim  const char *getPassName() const override {
31251607Sdim    return "SystemZ Assembly Printer";
32251607Sdim  }
33276479Sdim  void EmitInstruction(const MachineInstr *MI) override;
34276479Sdim  void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV) override;
35276479Sdim  bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
36276479Sdim                       unsigned AsmVariant, const char *ExtraCode,
37276479Sdim                       raw_ostream &OS) override;
38276479Sdim  bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
39276479Sdim                             unsigned AsmVariant, const char *ExtraCode,
40276479Sdim                             raw_ostream &OS) override;
41251607Sdim};
42251607Sdim} // end namespace llvm
43251607Sdim
44251607Sdim#endif
45