mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-23 05:29:23 +00:00
ARM Streamer: print out tag names
If using verbose asm, print out the friendly name of the tag if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198663 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8e129852fb
commit
9d76f40575
@ -111,6 +111,7 @@ class ARMELFStreamer;
|
|||||||
class ARMTargetAsmStreamer : public ARMTargetStreamer {
|
class ARMTargetAsmStreamer : public ARMTargetStreamer {
|
||||||
formatted_raw_ostream &OS;
|
formatted_raw_ostream &OS;
|
||||||
MCInstPrinter &InstPrinter;
|
MCInstPrinter &InstPrinter;
|
||||||
|
bool IsVerboseAsm;
|
||||||
|
|
||||||
virtual void emitFnStart();
|
virtual void emitFnStart();
|
||||||
virtual void emitFnEnd();
|
virtual void emitFnEnd();
|
||||||
@ -133,12 +134,14 @@ class ARMTargetAsmStreamer : public ARMTargetStreamer {
|
|||||||
virtual void finishAttributeSection();
|
virtual void finishAttributeSection();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ARMTargetAsmStreamer(formatted_raw_ostream &OS, MCInstPrinter &InstPrinter);
|
ARMTargetAsmStreamer(formatted_raw_ostream &OS, MCInstPrinter &InstPrinter,
|
||||||
|
bool VerboseAsm);
|
||||||
};
|
};
|
||||||
|
|
||||||
ARMTargetAsmStreamer::ARMTargetAsmStreamer(formatted_raw_ostream &OS,
|
ARMTargetAsmStreamer::ARMTargetAsmStreamer(formatted_raw_ostream &OS,
|
||||||
MCInstPrinter &InstPrinter)
|
MCInstPrinter &InstPrinter,
|
||||||
: OS(OS), InstPrinter(InstPrinter) {}
|
bool VerboseAsm)
|
||||||
|
: OS(OS), InstPrinter(InstPrinter), IsVerboseAsm(VerboseAsm) {}
|
||||||
void ARMTargetAsmStreamer::emitFnStart() { OS << "\t.fnstart\n"; }
|
void ARMTargetAsmStreamer::emitFnStart() { OS << "\t.fnstart\n"; }
|
||||||
void ARMTargetAsmStreamer::emitFnEnd() { OS << "\t.fnend\n"; }
|
void ARMTargetAsmStreamer::emitFnEnd() { OS << "\t.fnend\n"; }
|
||||||
void ARMTargetAsmStreamer::emitCantUnwind() { OS << "\t.cantunwind\n"; }
|
void ARMTargetAsmStreamer::emitCantUnwind() { OS << "\t.cantunwind\n"; }
|
||||||
@ -179,7 +182,13 @@ void ARMTargetAsmStreamer::emitRegSave(const SmallVectorImpl<unsigned> &RegList,
|
|||||||
void ARMTargetAsmStreamer::switchVendor(StringRef Vendor) {
|
void ARMTargetAsmStreamer::switchVendor(StringRef Vendor) {
|
||||||
}
|
}
|
||||||
void ARMTargetAsmStreamer::emitAttribute(unsigned Attribute, unsigned Value) {
|
void ARMTargetAsmStreamer::emitAttribute(unsigned Attribute, unsigned Value) {
|
||||||
OS << "\t.eabi_attribute\t" << Attribute << ", " << Twine(Value) << "\n";
|
OS << "\t.eabi_attribute\t" << Attribute << ", " << Twine(Value);
|
||||||
|
if (IsVerboseAsm) {
|
||||||
|
StringRef Name = ARMBuildAttrs::AttrTypeAsString(Attribute);
|
||||||
|
if (!Name.empty())
|
||||||
|
OS << "\t@ " << Name;
|
||||||
|
}
|
||||||
|
OS << "\n";
|
||||||
}
|
}
|
||||||
void ARMTargetAsmStreamer::emitTextAttribute(unsigned Attribute,
|
void ARMTargetAsmStreamer::emitTextAttribute(unsigned Attribute,
|
||||||
StringRef String) {
|
StringRef String) {
|
||||||
@ -189,6 +198,11 @@ void ARMTargetAsmStreamer::emitTextAttribute(unsigned Attribute,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
OS << "\t.eabi_attribute\t" << Attribute << ", \"" << String << "\"";
|
OS << "\t.eabi_attribute\t" << Attribute << ", \"" << String << "\"";
|
||||||
|
if (IsVerboseAsm) {
|
||||||
|
StringRef Name = ARMBuildAttrs::AttrTypeAsString(Attribute);
|
||||||
|
if (!Name.empty())
|
||||||
|
OS << "\t@ " << Name;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
OS << "\n";
|
OS << "\n";
|
||||||
@ -202,6 +216,8 @@ void ARMTargetAsmStreamer::emitIntTextAttribute(unsigned Attribute,
|
|||||||
OS << "\t.eabi_attribute\t" << Attribute << ", " << IntValue;
|
OS << "\t.eabi_attribute\t" << Attribute << ", " << IntValue;
|
||||||
if (!StringValue.empty())
|
if (!StringValue.empty())
|
||||||
OS << ", \"" << StringValue << "\"";
|
OS << ", \"" << StringValue << "\"";
|
||||||
|
if (IsVerboseAsm)
|
||||||
|
OS << "\t@ " << ARMBuildAttrs::AttrTypeAsString(Attribute);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
OS << "\n";
|
OS << "\n";
|
||||||
@ -1177,7 +1193,8 @@ MCStreamer *createMCAsmStreamer(MCContext &Ctx, formatted_raw_ostream &OS,
|
|||||||
bool useDwarfDirectory,
|
bool useDwarfDirectory,
|
||||||
MCInstPrinter *InstPrint, MCCodeEmitter *CE,
|
MCInstPrinter *InstPrint, MCCodeEmitter *CE,
|
||||||
MCAsmBackend *TAB, bool ShowInst) {
|
MCAsmBackend *TAB, bool ShowInst) {
|
||||||
ARMTargetAsmStreamer *S = new ARMTargetAsmStreamer(OS, *InstPrint);
|
ARMTargetAsmStreamer *S = new ARMTargetAsmStreamer(OS, *InstPrint,
|
||||||
|
isVerboseAsm);
|
||||||
|
|
||||||
return llvm::createAsmStreamer(Ctx, S, OS, isVerboseAsm, useLoc, useCFI,
|
return llvm::createAsmStreamer(Ctx, S, OS, isVerboseAsm, useLoc, useCFI,
|
||||||
useDwarfDirectory, InstPrint, CE, TAB,
|
useDwarfDirectory, InstPrint, CE, TAB,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user