|
11 | 11 | #include "llvm/ADT/StringRef.h" |
12 | 12 | #include "llvm/MC/MCAsmBackend.h" |
13 | 13 | #include "llvm/MC/MCCodeEmitter.h" |
| 14 | +#include "llvm/MC/MCContext.h" |
14 | 15 | #include "llvm/MC/MCObjectStreamer.h" |
15 | 16 | #include "llvm/MC/MCObjectWriter.h" |
| 17 | +#include "llvm/MC/MCTargetOptions.h" |
16 | 18 | #include "llvm/Support/raw_ostream.h" |
17 | 19 | #include <cassert> |
18 | 20 | #include <vector> |
@@ -86,19 +88,28 @@ MCStreamer *Target::createMCObjectStreamer( |
86 | 88 | std::move(Emitter), STI); |
87 | 89 | } |
88 | 90 |
|
| 91 | +MCStreamer *Target::createAsmStreamer(MCContext &Ctx, |
| 92 | + std::unique_ptr<formatted_raw_ostream> OS, |
| 93 | + MCInstPrinter *IP, |
| 94 | + std::unique_ptr<MCCodeEmitter> CE, |
| 95 | + std::unique_ptr<MCAsmBackend> TAB) const { |
| 96 | + formatted_raw_ostream &OSRef = *OS; |
| 97 | + MCStreamer *S = llvm::createAsmStreamer(Ctx, std::move(OS), false, false, IP, |
| 98 | + std::move(CE), std::move(TAB), false); |
| 99 | + auto *TO = Ctx.getTargetOptions(); |
| 100 | + createAsmTargetStreamer(*S, OSRef, IP, TO && TO->AsmVerbose); |
| 101 | + return S; |
| 102 | +} |
| 103 | + |
89 | 104 | MCStreamer *Target::createAsmStreamer(MCContext &Ctx, |
90 | 105 | std::unique_ptr<formatted_raw_ostream> OS, |
91 | 106 | bool IsVerboseAsm, bool UseDwarfDirectory, |
92 | | - MCInstPrinter *InstPrint, |
| 107 | + MCInstPrinter *IP, |
93 | 108 | std::unique_ptr<MCCodeEmitter> &&CE, |
94 | 109 | std::unique_ptr<MCAsmBackend> &&TAB, |
95 | 110 | bool ShowInst) const { |
96 | | - formatted_raw_ostream &OSRef = *OS; |
97 | | - MCStreamer *S = llvm::createAsmStreamer( |
98 | | - Ctx, std::move(OS), IsVerboseAsm, UseDwarfDirectory, InstPrint, |
99 | | - std::move(CE), std::move(TAB), ShowInst); |
100 | | - createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm); |
101 | | - return S; |
| 111 | + return createAsmStreamer(Ctx, std::move(OS), IP, std::move(CE), |
| 112 | + std::move(TAB)); |
102 | 113 | } |
103 | 114 |
|
104 | 115 | iterator_range<TargetRegistry::iterator> TargetRegistry::targets() { |
|
0 commit comments