10b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//===-- llvm-objdump.h ----------------------------------------------------===// 20b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// 30b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// The LLVM Compiler Infrastructure 40b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// 50b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// This file is distributed under the University of Illinois Open Source 60b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// License. See LICENSE.TXT for details. 70b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// 80b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//===----------------------------------------------------------------------===// 90b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer 100b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#ifndef LLVM_OBJDUMP_H 110b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#define LLVM_OBJDUMP_H 120b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer 130b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#include "llvm/ADT/StringRef.h" 140b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#include "llvm/Support/CommandLine.h" 150b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#include "llvm/Support/DataTypes.h" 16ef99356dfebb96f6f90efb912c2877214bad060eAhmed Bougacha#include "llvm/Support/StringRefMemoryObject.h" 170b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer 180b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramernamespace llvm { 190b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer 20eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencernamespace object { 21eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer class COFFObjectFile; 22b2c064c6954c9bfa49b7a7e3223df5e7849464c0Michael J. Spencer class ObjectFile; 23eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer class RelocationRef; 24eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer} 25eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencerclass error_code; 26eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer 270b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramerextern cl::opt<std::string> TripleName; 280b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramerextern cl::opt<std::string> ArchName; 290b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer 300b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// Various helper functions. 31eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencerbool error(error_code ec); 32eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencerbool RelocAddressLess(object::RelocationRef a, object::RelocationRef b); 330b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramervoid DumpBytes(StringRef bytes); 340b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramervoid DisassembleInputMachO(StringRef Filename); 35eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencervoid printCOFFUnwindInfo(const object::COFFObjectFile* o); 36b2c064c6954c9bfa49b7a7e3223df5e7849464c0Michael J. Spencervoid printELFFileHeader(const object::ObjectFile *o); 370b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer 380b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer} 390b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer 400b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#endif 41