mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	direct inclusion edge from System to Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //===-- llvm/MC/MCDisassembler.h - Disassembler interface -------*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| #ifndef MCDISASSEMBLER_H
 | |
| #define MCDISASSEMBLER_H
 | |
| 
 | |
| #include "llvm/System/DataTypes.h"
 | |
| 
 | |
| namespace llvm {
 | |
|   
 | |
| class MCInst;
 | |
| class MemoryObject;
 | |
| class raw_ostream;
 | |
| 
 | |
| /// MCDisassembler - Superclass for all disassemblers.  Consumes a memory region
 | |
| ///   and provides an array of assembly instructions.
 | |
| class MCDisassembler {
 | |
| public:
 | |
|   /// Constructor     - Performs initial setup for the disassembler.
 | |
|   MCDisassembler() {}
 | |
|   
 | |
|   virtual ~MCDisassembler();
 | |
|   
 | |
|   /// getInstruction  - Returns the disassembly of a single instruction.
 | |
|   ///
 | |
|   /// @param instr    - An MCInst to populate with the contents of the 
 | |
|   ///                   instruction.
 | |
|   /// @param size     - A value to populate with the size of the instruction, or
 | |
|   ///                   the number of bytes consumed while attempting to decode
 | |
|   ///                   an invalid instruction.
 | |
|   /// @param region   - The memory object to use as a source for machine code.
 | |
|   /// @param address  - The address, in the memory space of region, of the first
 | |
|   ///                   byte of the instruction.
 | |
|   /// @param vStream  - The stream to print warnings and diagnostic messages on.
 | |
|   /// @return         - True if the instruction is valid; false otherwise.
 | |
|   virtual bool          getInstruction(MCInst& instr,
 | |
|                                        uint64_t& size,
 | |
|                                        const MemoryObject ®ion,
 | |
|                                        uint64_t address,
 | |
|                                        raw_ostream &vStream) const = 0;
 | |
| };  
 | |
| 
 | |
| } // namespace llvm
 | |
| 
 | |
| #endif
 |