Make llvm-objdump handle both arm and thumb disassembly from the same Mach-O
[oota-llvm.git] / tools / llvm-objdump / llvm-objdump.h
1 //===-- llvm-objdump.h ----------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H
11 #define LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H
12
13 #include "llvm/ADT/StringRef.h"
14 #include "llvm/Support/CommandLine.h"
15 #include "llvm/Support/DataTypes.h"
16 #include "llvm/Support/StringRefMemoryObject.h"
17
18 namespace llvm {
19 namespace object {
20   class COFFObjectFile;
21   class MachOObjectFile;
22   class ObjectFile;
23   class RelocationRef;
24 }
25
26 extern cl::opt<std::string> TripleName;
27 extern cl::opt<std::string> ArchName;
28 extern cl::opt<std::string> MCPU;
29 extern cl::list<std::string> MAttrs;
30
31 // Various helper functions.
32 bool error(std::error_code ec);
33 bool RelocAddressLess(object::RelocationRef a, object::RelocationRef b);
34 void DumpBytes(StringRef bytes);
35 void DisassembleInputMachO(StringRef Filename);
36 void printCOFFUnwindInfo(const object::COFFObjectFile* o);
37 void printMachOUnwindInfo(const object::MachOObjectFile* o);
38
39 void printELFFileHeader(const object::ObjectFile *o);
40 void printCOFFFileHeader(const object::ObjectFile *o);
41
42 } // end namespace llvm
43
44 #endif