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