Convert some easy uses of EmitRawText to TargetStreamer methods.
llvm-svn: 200122
This commit is contained in:
parent
9e8d26f03a
commit
eb0a8af670
|
@ -55,6 +55,34 @@ void MipsTargetAsmStreamer::emitDirectiveSetNoMips16() {
|
||||||
OS << "\t.set\tnomips16\n";
|
OS << "\t.set\tnomips16\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MipsTargetAsmStreamer::emitDirectiveSetReorder() {
|
||||||
|
OS << "\t.set\treorder\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetAsmStreamer::emitDirectiveSetNoReorder() {
|
||||||
|
OS << "\t.set\tnoreorder\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetAsmStreamer::emitDirectiveSetMacro() {
|
||||||
|
OS << "\t.set\tmacro\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetAsmStreamer::emitDirectiveSetNoMacro() {
|
||||||
|
OS << "\t.set\tnomacro\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetAsmStreamer::emitDirectiveSetAt() {
|
||||||
|
OS << "\t.set\tat\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetAsmStreamer::emitDirectiveSetNoAt() {
|
||||||
|
OS << "\t.set\tnoat\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetAsmStreamer::emitDirectiveEnd(StringRef Name) {
|
||||||
|
OS << "\t.end\t" << Name << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
void MipsTargetAsmStreamer::emitDirectiveEnt(const MCSymbol &Symbol) {
|
void MipsTargetAsmStreamer::emitDirectiveEnt(const MCSymbol &Symbol) {
|
||||||
OS << "\t.ent\t" << Symbol.getName() << '\n';
|
OS << "\t.ent\t" << Symbol.getName() << '\n';
|
||||||
}
|
}
|
||||||
|
@ -109,6 +137,34 @@ void MipsTargetELFStreamer::emitDirectiveSetNoMips16() {
|
||||||
// FIXME: implement.
|
// FIXME: implement.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MipsTargetELFStreamer::emitDirectiveSetReorder() {
|
||||||
|
// FIXME: implement.
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetELFStreamer::emitDirectiveSetNoReorder() {
|
||||||
|
// FIXME: implement.
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetELFStreamer::emitDirectiveSetMacro() {
|
||||||
|
// FIXME: implement.
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetELFStreamer::emitDirectiveSetNoMacro() {
|
||||||
|
// FIXME: implement.
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetELFStreamer::emitDirectiveSetAt() {
|
||||||
|
// FIXME: implement.
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetELFStreamer::emitDirectiveSetNoAt() {
|
||||||
|
// FIXME: implement.
|
||||||
|
}
|
||||||
|
|
||||||
|
void MipsTargetELFStreamer::emitDirectiveEnd(StringRef Name) {
|
||||||
|
// FIXME: implement.
|
||||||
|
}
|
||||||
|
|
||||||
void MipsTargetELFStreamer::emitDirectiveEnt(const MCSymbol &Symbol) {
|
void MipsTargetELFStreamer::emitDirectiveEnt(const MCSymbol &Symbol) {
|
||||||
// FIXME: implement.
|
// FIXME: implement.
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,6 +284,8 @@ void MipsAsmPrinter::EmitFunctionEntryLabel() {
|
||||||
/// EmitFunctionBodyStart - Targets can override this to emit stuff before
|
/// EmitFunctionBodyStart - Targets can override this to emit stuff before
|
||||||
/// the first basic block in the function.
|
/// the first basic block in the function.
|
||||||
void MipsAsmPrinter::EmitFunctionBodyStart() {
|
void MipsAsmPrinter::EmitFunctionBodyStart() {
|
||||||
|
MipsTargetStreamer &TS = getTargetStreamer();
|
||||||
|
|
||||||
MCInstLowering.Initialize(&MF->getContext());
|
MCInstLowering.Initialize(&MF->getContext());
|
||||||
|
|
||||||
bool IsNakedFunction =
|
bool IsNakedFunction =
|
||||||
|
@ -299,28 +301,28 @@ void MipsAsmPrinter::EmitFunctionBodyStart() {
|
||||||
if (!IsNakedFunction)
|
if (!IsNakedFunction)
|
||||||
printSavedRegsBitmask(OS);
|
printSavedRegsBitmask(OS);
|
||||||
OutStreamer.EmitRawText(OS.str());
|
OutStreamer.EmitRawText(OS.str());
|
||||||
if (!Subtarget->inMips16Mode()) {
|
}
|
||||||
OutStreamer.EmitRawText(StringRef("\t.set\tnoreorder"));
|
if (!Subtarget->inMips16Mode()) {
|
||||||
OutStreamer.EmitRawText(StringRef("\t.set\tnomacro"));
|
TS.emitDirectiveSetNoReorder();
|
||||||
OutStreamer.EmitRawText(StringRef("\t.set\tnoat"));
|
TS.emitDirectiveSetNoMacro();
|
||||||
}
|
TS.emitDirectiveSetNoAt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// EmitFunctionBodyEnd - Targets can override this to emit stuff after
|
/// EmitFunctionBodyEnd - Targets can override this to emit stuff after
|
||||||
/// the last basic block in the function.
|
/// the last basic block in the function.
|
||||||
void MipsAsmPrinter::EmitFunctionBodyEnd() {
|
void MipsAsmPrinter::EmitFunctionBodyEnd() {
|
||||||
|
MipsTargetStreamer &TS = getTargetStreamer();
|
||||||
|
|
||||||
// There are instruction for this macros, but they must
|
// There are instruction for this macros, but they must
|
||||||
// always be at the function end, and we can't emit and
|
// always be at the function end, and we can't emit and
|
||||||
// break with BB logic.
|
// break with BB logic.
|
||||||
if (OutStreamer.hasRawTextSupport()) {
|
if (!Subtarget->inMips16Mode()) {
|
||||||
if (!Subtarget->inMips16Mode()) {
|
TS.emitDirectiveSetAt();
|
||||||
OutStreamer.EmitRawText(StringRef("\t.set\tat"));
|
TS.emitDirectiveSetMacro();
|
||||||
OutStreamer.EmitRawText(StringRef("\t.set\tmacro"));
|
TS.emitDirectiveSetReorder();
|
||||||
OutStreamer.EmitRawText(StringRef("\t.set\treorder"));
|
|
||||||
}
|
|
||||||
OutStreamer.EmitRawText("\t.end\t" + Twine(CurrentFnSym->getName()));
|
|
||||||
}
|
}
|
||||||
|
TS.emitDirectiveEnd(CurrentFnSym->getName());
|
||||||
// Make sure to terminate any constant pools that were at the end
|
// Make sure to terminate any constant pools that were at the end
|
||||||
// of the function.
|
// of the function.
|
||||||
if (!InConstantPool)
|
if (!InConstantPool)
|
||||||
|
|
|
@ -23,6 +23,15 @@ public:
|
||||||
virtual void emitDirectiveSetNoMicroMips() = 0;
|
virtual void emitDirectiveSetNoMicroMips() = 0;
|
||||||
virtual void emitDirectiveSetMips16() = 0;
|
virtual void emitDirectiveSetMips16() = 0;
|
||||||
virtual void emitDirectiveSetNoMips16() = 0;
|
virtual void emitDirectiveSetNoMips16() = 0;
|
||||||
|
|
||||||
|
virtual void emitDirectiveSetReorder() = 0;
|
||||||
|
virtual void emitDirectiveSetNoReorder() = 0;
|
||||||
|
virtual void emitDirectiveSetMacro() = 0;
|
||||||
|
virtual void emitDirectiveSetNoMacro() = 0;
|
||||||
|
virtual void emitDirectiveSetAt() = 0;
|
||||||
|
virtual void emitDirectiveSetNoAt() = 0;
|
||||||
|
virtual void emitDirectiveEnd(StringRef Name) = 0;
|
||||||
|
|
||||||
virtual void emitDirectiveEnt(const MCSymbol &Symbol) = 0;
|
virtual void emitDirectiveEnt(const MCSymbol &Symbol) = 0;
|
||||||
virtual void emitDirectiveAbiCalls() = 0;
|
virtual void emitDirectiveAbiCalls() = 0;
|
||||||
virtual void emitDirectiveOptionPic0() = 0;
|
virtual void emitDirectiveOptionPic0() = 0;
|
||||||
|
@ -39,6 +48,15 @@ public:
|
||||||
virtual void emitDirectiveSetNoMicroMips();
|
virtual void emitDirectiveSetNoMicroMips();
|
||||||
virtual void emitDirectiveSetMips16();
|
virtual void emitDirectiveSetMips16();
|
||||||
virtual void emitDirectiveSetNoMips16();
|
virtual void emitDirectiveSetNoMips16();
|
||||||
|
|
||||||
|
virtual void emitDirectiveSetReorder();
|
||||||
|
virtual void emitDirectiveSetNoReorder();
|
||||||
|
virtual void emitDirectiveSetMacro();
|
||||||
|
virtual void emitDirectiveSetNoMacro();
|
||||||
|
virtual void emitDirectiveSetAt();
|
||||||
|
virtual void emitDirectiveSetNoAt();
|
||||||
|
virtual void emitDirectiveEnd(StringRef Name);
|
||||||
|
|
||||||
virtual void emitDirectiveEnt(const MCSymbol &Symbol);
|
virtual void emitDirectiveEnt(const MCSymbol &Symbol);
|
||||||
virtual void emitDirectiveAbiCalls();
|
virtual void emitDirectiveAbiCalls();
|
||||||
virtual void emitDirectiveOptionPic0();
|
virtual void emitDirectiveOptionPic0();
|
||||||
|
@ -61,6 +79,15 @@ public:
|
||||||
virtual void emitDirectiveSetNoMicroMips();
|
virtual void emitDirectiveSetNoMicroMips();
|
||||||
virtual void emitDirectiveSetMips16();
|
virtual void emitDirectiveSetMips16();
|
||||||
virtual void emitDirectiveSetNoMips16();
|
virtual void emitDirectiveSetNoMips16();
|
||||||
|
|
||||||
|
virtual void emitDirectiveSetReorder();
|
||||||
|
virtual void emitDirectiveSetNoReorder();
|
||||||
|
virtual void emitDirectiveSetMacro();
|
||||||
|
virtual void emitDirectiveSetNoMacro();
|
||||||
|
virtual void emitDirectiveSetAt();
|
||||||
|
virtual void emitDirectiveSetNoAt();
|
||||||
|
virtual void emitDirectiveEnd(StringRef Name);
|
||||||
|
|
||||||
virtual void emitDirectiveEnt(const MCSymbol &Symbol);
|
virtual void emitDirectiveEnt(const MCSymbol &Symbol);
|
||||||
virtual void emitDirectiveAbiCalls();
|
virtual void emitDirectiveAbiCalls();
|
||||||
virtual void emitDirectiveOptionPic0();
|
virtual void emitDirectiveOptionPic0();
|
||||||
|
|
Loading…
Reference in New Issue