From 30e52d00c894667744db879017c4a6ef2326008b Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Fri, 22 Apr 2016 00:05:07 -0400 Subject: [PATCH] Get rid of the .size stuff in the assembly output and format the instructions better. --- lib/Target/WDC65816/MCTargetDesc/WDC65816MCAsmInfo.cpp | 3 +++ .../WDC65816/MCTargetDesc/WDC65816TargetStreamer.cpp | 9 +++++++++ .../WDC65816/MCTargetDesc/WDC65816TargetStreamer.h | 4 ++++ lib/Target/WDC65816/WDC65816AsmPrinter.cpp | 5 ++--- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/Target/WDC65816/MCTargetDesc/WDC65816MCAsmInfo.cpp b/lib/Target/WDC65816/MCTargetDesc/WDC65816MCAsmInfo.cpp index 9c14bec0..ffa950ce 100644 --- a/lib/Target/WDC65816/MCTargetDesc/WDC65816MCAsmInfo.cpp +++ b/lib/Target/WDC65816/MCTargetDesc/WDC65816MCAsmInfo.cpp @@ -27,6 +27,9 @@ WDC65816MCAsmInfo::WDC65816MCAsmInfo(StringRef TT) { // Disable the ".file " parameter HasSingleParameterDotFile = false; + // Diable the ".size" parameter + HasDotTypeDotSizeDirective = false; + #if 0 // WDC_TODO - Do I need any of this? Data16bitsDirective = "\t.half\t"; Data32bitsDirective = "\t.word\t"; diff --git a/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.cpp b/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.cpp index 705b32c6..8f920194 100644 --- a/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.cpp +++ b/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.cpp @@ -71,3 +71,12 @@ void WDC65816TargetAsmStreamer::EmitSegEndDirective(void) OS << "end"; OS << '\n'; } + + +void WDC65816TargetAsmStreamer::EmitInstruction(StringRef instruction) +{ + instruction = instruction.ltrim(); + OS << indent; + OS << instruction; + OS << '\n'; +} diff --git a/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.h b/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.h index 7f1b19ce..cb3dd328 100644 --- a/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.h +++ b/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.h @@ -24,6 +24,8 @@ namespace llvm { virtual void EmitKeepDirective(StringRef filename) = 0; virtual void EmitSegStartDirective(StringRef filename) = 0; virtual void EmitSegEndDirective(void) = 0; + + virtual void EmitInstruction(StringRef instruction) = 0; }; class WDC65816TargetAsmStreamer : public WDC65816TargetStreamer { @@ -40,6 +42,8 @@ namespace llvm { virtual void EmitKeepDirective(StringRef filename); virtual void EmitSegStartDirective(StringRef filename); virtual void EmitSegEndDirective(void); + + virtual void EmitInstruction(StringRef instruction); }; } diff --git a/lib/Target/WDC65816/WDC65816AsmPrinter.cpp b/lib/Target/WDC65816/WDC65816AsmPrinter.cpp index 7e6442da..d2dbe4cf 100644 --- a/lib/Target/WDC65816/WDC65816AsmPrinter.cpp +++ b/lib/Target/WDC65816/WDC65816AsmPrinter.cpp @@ -61,9 +61,8 @@ namespace { raw_svector_ostream OS(Str); printInstruction(MI, OS); - StringRef instrString = OS.str().ltrim(); - - OutStreamer.EmitRawText(" " + instrString); + WDC65816TargetStreamer &streamer = getTargetStreamer(); + streamer.EmitInstruction(OS.str()); } };