diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ExecutionEngine/JIT/JITEmitter.cpp | 5 | ||||
-rw-r--r-- | lib/System/Disassembler.cpp | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/JIT/JITEmitter.cpp b/lib/ExecutionEngine/JIT/JITEmitter.cpp index a52ce86d6d..99dd0c9a4d 100644 --- a/lib/ExecutionEngine/JIT/JITEmitter.cpp +++ b/lib/ExecutionEngine/JIT/JITEmitter.cpp @@ -876,8 +876,9 @@ bool JITEmitter::finishFunction(MachineFunction &F) { Relocations.clear(); #ifndef NDEBUG - DOUT << "Disassembled code:\n" - << sys::disassembleBuffer(FnStart, FnEnd-FnStart, (uintptr_t)FnStart); + if (sys::hasDisassembler()) + DOUT << "Disassembled code:\n" + << sys::disassembleBuffer(FnStart, FnEnd-FnStart, (uintptr_t)FnStart); #endif return false; diff --git a/lib/System/Disassembler.cpp b/lib/System/Disassembler.cpp index 30d3fb7fcc..4aec698022 100644 --- a/lib/System/Disassembler.cpp +++ b/lib/System/Disassembler.cpp @@ -26,6 +26,16 @@ using namespace llvm; +bool llvm::sys::hasDisassembler(void) +{ +#if defined (__i386__) || defined (__amd64__) || defined (__x86_64__) + // We have option to enable udis86 library. + return true; +#else + return false; +#endif +} + std::string llvm::sys::disassembleBuffer(uint8_t* start, size_t length, uint64_t pc) { std::stringstream res; |