mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	This is just very first approximation how the stuff should be done (e.g. ARM-only for now). More to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127101 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===-- MCInstPrinter.h - Convert an MCInst to target assembly syntax -----===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#ifndef LLVM_MC_MCINSTPRINTER_H
 | 
						|
#define LLVM_MC_MCINSTPRINTER_H
 | 
						|
 | 
						|
namespace llvm {
 | 
						|
class MCInst;
 | 
						|
class raw_ostream;
 | 
						|
class MCAsmInfo;
 | 
						|
class StringRef;
 | 
						|
 | 
						|
/// MCInstPrinter - This is an instance of a target assembly language printer
 | 
						|
/// that converts an MCInst to valid target assembly syntax.
 | 
						|
class MCInstPrinter {
 | 
						|
protected:
 | 
						|
  /// CommentStream - a stream that comments can be emitted to if desired.
 | 
						|
  /// Each comment must end with a newline.  This will be null if verbose
 | 
						|
  /// assembly emission is disable.
 | 
						|
  raw_ostream *CommentStream;
 | 
						|
  const MCAsmInfo &MAI;
 | 
						|
public:
 | 
						|
  MCInstPrinter(const MCAsmInfo &mai)
 | 
						|
    : CommentStream(0), MAI(mai) {}
 | 
						|
 | 
						|
  virtual ~MCInstPrinter();
 | 
						|
 | 
						|
  /// setCommentStream - Specify a stream to emit comments to.
 | 
						|
  void setCommentStream(raw_ostream &OS) { CommentStream = &OS; }
 | 
						|
 | 
						|
  /// printInst - Print the specified MCInst to the specified raw_ostream.
 | 
						|
  ///
 | 
						|
  virtual void printInst(const MCInst *MI, raw_ostream &OS) = 0;
 | 
						|
 | 
						|
  /// getOpcodeName - Return the name of the specified opcode enum (e.g.
 | 
						|
  /// "MOV32ri") or empty if we can't resolve it.
 | 
						|
  virtual StringRef getOpcodeName(unsigned Opcode) const;
 | 
						|
 | 
						|
  /// getRegName - Return the assembler register name.
 | 
						|
  virtual StringRef getRegName(unsigned RegNo) const;
 | 
						|
};
 | 
						|
 | 
						|
} // namespace llvm
 | 
						|
 | 
						|
#endif
 |