diff options
Diffstat (limited to 'llvm/lib/MC/MCDisassembler/Disassembler.cpp')
| -rw-r--r-- | llvm/lib/MC/MCDisassembler/Disassembler.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCDisassembler/Disassembler.cpp b/llvm/lib/MC/MCDisassembler/Disassembler.cpp index 5e5a163c2902..f5d6c6bb5618 100644 --- a/llvm/lib/MC/MCDisassembler/Disassembler.cpp +++ b/llvm/lib/MC/MCDisassembler/Disassembler.cpp @@ -277,6 +277,12 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes, SmallVector<char, 64> InsnStr; raw_svector_ostream OS(InsnStr); formatted_raw_ostream FormattedOS(OS); + + if (DC->getOptions() & LLVMDisassembler_Option_Color) { + FormattedOS.enable_colors(true); + IP->setUseColor(true); + } + IP->printInst(&Inst, PC, AnnotationsStr, *DC->getSubtargetInfo(), FormattedOS); @@ -343,5 +349,10 @@ int LLVMSetDisasmOptions(LLVMDisasmContextRef DCR, uint64_t Options){ DC->addOptions(LLVMDisassembler_Option_PrintLatency); Options &= ~LLVMDisassembler_Option_PrintLatency; } + if (Options & LLVMDisassembler_Option_Color) { + LLVMDisasmContext *DC = static_cast<LLVMDisasmContext *>(DCR); + DC->addOptions(LLVMDisassembler_Option_Color); + Options &= ~LLVMDisassembler_Option_Color; + } return (Options == 0); } |
