diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-02-10 01:41:14 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-02-10 01:41:14 +0000 |
commit | 4755a9b945a5c0f89703c84674a08ef649051e31 (patch) | |
tree | c328cdb7471dc2ccd99ed4c0827afd02296874db | |
parent | 83efe12ce124419eba2ff9dc354fa248d672d7df (diff) | |
download | external_llvm-4755a9b945a5c0f89703c84674a08ef649051e31.zip external_llvm-4755a9b945a5c0f89703c84674a08ef649051e31.tar.gz external_llvm-4755a9b945a5c0f89703c84674a08ef649051e31.tar.bz2 |
llvm-mc: Remove --show-fixups and always show as part of --show-encoding.
Also, fix a silly memory leak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95752 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCStreamer.h | 5 | ||||
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 25 | ||||
-rw-r--r-- | tools/llvm-mc/llvm-mc.cpp | 5 |
3 files changed, 8 insertions, 27 deletions
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index 69c1267..624d9a6 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -278,15 +278,12 @@ namespace llvm { /// /// \param ShowInst - Whether to show the MCInst representation inline with /// the assembly. - /// - /// \param ShowFixups - Whether to show the fixups in an encoded instruction. MCStreamer *createAsmStreamer(MCContext &Ctx, formatted_raw_ostream &OS, const MCAsmInfo &MAI, bool isLittleEndian, bool isVerboseAsm, MCInstPrinter *InstPrint = 0, MCCodeEmitter *CE = 0, - bool ShowInst = false, - bool ShowFixups = false); + bool ShowInst = false); // FIXME: These two may end up getting rolled into a single // createObjectStreamer interface, which implements the assembler backend, and diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index f4fe725..3e3d1e5 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -37,18 +37,17 @@ class MCAsmStreamer : public MCStreamer { unsigned IsLittleEndian : 1; unsigned IsVerboseAsm : 1; - unsigned ShowFixups : 1; unsigned ShowInst : 1; public: MCAsmStreamer(MCContext &Context, formatted_raw_ostream &os, const MCAsmInfo &mai, bool isLittleEndian, bool isVerboseAsm, MCInstPrinter *printer, - MCCodeEmitter *emitter, bool showInst, bool showFixups) + MCCodeEmitter *emitter, bool showInst) : MCStreamer(Context), OS(os), MAI(mai), InstPrinter(printer), Emitter(emitter), CommentStream(CommentToEmit), IsLittleEndian(isLittleEndian), IsVerboseAsm(isVerboseAsm), - ShowFixups(showFixups), ShowInst(showInst) { + ShowInst(showInst) { if (InstPrinter && IsVerboseAsm) InstPrinter->setCommentStream(CommentStream); } @@ -543,22 +542,11 @@ void MCAsmStreamer::AddEncodingComment(const MCInst &Inst) { Emitter->EncodeInstruction(Inst, VecOS, Fixups); VecOS.flush(); - // If we aren't showing fixups, just show the bytes. - if (!ShowFixups) { - OS << "encoding: ["; - for (unsigned i = 0, e = Code.size(); i != e; ++i) { - if (i) - OS << ','; - OS << format("0x%02x", uint8_t(Code[i])); - } - OS << "]\n"; - return; - } - // If we are showing fixups, create symbolic markers in the encoded // representation. We do this by making a per-bit map to the fixup item index, // then trying to display it as nicely as possible. - uint8_t *FixupMap = new uint8_t[Code.size() * 8]; + SmallVector<uint8_t, 64> FixupMap; + FixupMap.resize(Code.size() * 8); for (unsigned i = 0, e = Code.size() * 8; i != e; ++i) FixupMap[i] = 0; @@ -652,8 +640,7 @@ MCStreamer *llvm::createAsmStreamer(MCContext &Context, formatted_raw_ostream &OS, const MCAsmInfo &MAI, bool isLittleEndian, bool isVerboseAsm, MCInstPrinter *IP, - MCCodeEmitter *CE, bool ShowInst, - bool ShowFixups) { + MCCodeEmitter *CE, bool ShowInst) { return new MCAsmStreamer(Context, OS, MAI, isLittleEndian, isVerboseAsm, - IP, CE, ShowInst, ShowFixups); + IP, CE, ShowInst); } diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp index 250d4dc..c05bd52 100644 --- a/tools/llvm-mc/llvm-mc.cpp +++ b/tools/llvm-mc/llvm-mc.cpp @@ -47,9 +47,6 @@ static cl::opt<bool> ShowEncoding("show-encoding", cl::desc("Show instruction encodings")); static cl::opt<bool> -ShowFixups("show-fixups", cl::desc("Show fixups inside encodings")); - -static cl::opt<bool> ShowInst("show-inst", cl::desc("Show internal instruction representation")); static cl::opt<unsigned> @@ -273,7 +270,7 @@ static int AssembleInput(const char *ProgName) { Str.reset(createAsmStreamer(Ctx, *Out, *MAI, TM->getTargetData()->isLittleEndian(), /*asmverbose*/true, IP.get(), CE.get(), - ShowInst, ShowFixups)); + ShowInst)); } else { assert(FileType == OFT_ObjectFile && "Invalid file type!"); CE.reset(TheTarget->createCodeEmitter(*TM)); |