1a3dcfb130044f306632a5fab43854eda4095a09cChris Lattner//===- Disassembler.h - Text File Disassembler ----------------------------===// 2ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// 3ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// The LLVM Compiler Infrastructure 4ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// 5ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// This file is distributed under the University of Illinois Open Source 6ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// License. See LICENSE.TXT for details. 7ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// 8ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan//===----------------------------------------------------------------------===// 9ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// 10ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// This class implements the disassembler of strings of bytes written in 11ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// hexadecimal, from standard input or from a file. 12ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan// 13ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan//===----------------------------------------------------------------------===// 14ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan 15a3dcfb130044f306632a5fab43854eda4095a09cChris Lattner#ifndef DISASSEMBLER_H 16a3dcfb130044f306632a5fab43854eda4095a09cChris Lattner#define DISASSEMBLER_H 17ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan 18ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan#include <string> 19ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan 20ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanannamespace llvm { 21ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan 22ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callananclass MemoryBuffer; 23a5c177e70a42f48e4885075c4c48aad0816a2817Bill Wendlingclass Target; 24d5826a33a5a7c298a8934541d11cda042028be3bDan Gohmanclass raw_ostream; 25d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Bartonclass SourceMgr; 26d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Bartonclass MCSubtargetInfo; 27d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Bartonclass MCStreamer; 28ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan 29a3dcfb130044f306632a5fab43854eda4095a09cChris Lattnerclass Disassembler { 30ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callananpublic: 31d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Barton static int disassemble(const Target &T, 32d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Barton const std::string &Triple, 33d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Barton MCSubtargetInfo &STI, 34d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Barton MCStreamer &Streamer, 35d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Barton MemoryBuffer &Buffer, 36d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Barton SourceMgr &SM, 37d5826a33a5a7c298a8934541d11cda042028be3bDan Gohman raw_ostream &Out); 38f5bf3cf7e2a0ff1ca884a83a8b56b5a57f8a5c80Jim Grosbach 39668b15467be158a5f0e0c4a5e1ec232da021892cSean Callanan static int disassembleEnhanced(const std::string &tripleString, 40d5826a33a5a7c298a8934541d11cda042028be3bDan Gohman MemoryBuffer &buffer, 41d0c478d95f440b4db76279fe47d6cf734a28fa9aRichard Barton SourceMgr &SM, 42d5826a33a5a7c298a8934541d11cda042028be3bDan Gohman raw_ostream &Out); 43ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan}; 44f5bf3cf7e2a0ff1ca884a83a8b56b5a57f8a5c80Jim Grosbach 45ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan} // namespace llvm 46ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan 47ba847da571354e13f1caa3699ee06b2d57df9fe9Sean Callanan#endif 48