136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines//===-- SparcInstPrinter.h - Convert Sparc MCInst to assembly syntax ------===// 236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// The LLVM Compiler Infrastructure 436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// This file is distributed under the University of Illinois Open Source 636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// License. See LICENSE.TXT for details. 736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines//===----------------------------------------------------------------------===// 936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// This class prints an Sparc MCInst to a .s file. 1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines//===----------------------------------------------------------------------===// 1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 1437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#ifndef LLVM_LIB_TARGET_SPARC_INSTPRINTER_SPARCINSTPRINTER_H 1537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines#define LLVM_LIB_TARGET_SPARC_INSTPRINTER_SPARCINSTPRINTER_H 1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines#include "llvm/MC/MCInstPrinter.h" 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesnamespace llvm { 2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass SparcInstPrinter : public MCInstPrinter { 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinespublic: 230c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar SparcInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, 240c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar const MCRegisterInfo &MRI) 250c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar : MCInstPrinter(MAI, MII, MRI) {} 2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 27dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines void printRegName(raw_ostream &OS, unsigned RegNo) const override; 280c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot, 290c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar const MCSubtargetInfo &STI) override; 300c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar bool printSparcAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, 310c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar raw_ostream &OS); 320c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar bool isV9(const MCSubtargetInfo &STI) const; 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines // Autogenerated by tblgen. 350c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar void printInstruction(const MCInst *MI, const MCSubtargetInfo &STI, 360c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar raw_ostream &O); 370c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar bool printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, 380c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar raw_ostream &O); 39dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines void printCustomAliasOperand(const MCInst *MI, unsigned OpIdx, 400c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar unsigned PrintMethodIdx, 410c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar const MCSubtargetInfo &STI, raw_ostream &O); 4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines static const char *getRegisterName(unsigned RegNo); 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 440c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar void printOperand(const MCInst *MI, int opNum, const MCSubtargetInfo &STI, 450c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar raw_ostream &OS); 460c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar void printMemOperand(const MCInst *MI, int opNum, const MCSubtargetInfo &STI, 470c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar raw_ostream &OS, const char *Modifier = nullptr); 480c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar void printCCOperand(const MCInst *MI, int opNum, const MCSubtargetInfo &STI, 490c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar raw_ostream &OS); 500c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar bool printGetPCX(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, 510c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar raw_ostream &OS); 5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines}; 5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines} // end namespace llvm 5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines#endif 56