aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-02-10 01:41:14 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-02-10 01:41:14 +0000
commit4755a9b945a5c0f89703c84674a08ef649051e31 (patch)
treec328cdb7471dc2ccd99ed4c0827afd02296874db
parent83efe12ce124419eba2ff9dc354fa248d672d7df (diff)
downloadexternal_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.h5
-rw-r--r--lib/MC/MCAsmStreamer.cpp25
-rw-r--r--tools/llvm-mc/llvm-mc.cpp5
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));