summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
diff options
context:
space:
mode:
authorJack Carter <jack.carter@imgtec.com>2013-11-19 20:53:28 +0000
committerJack Carter <jack.carter@imgtec.com>2013-11-19 20:53:28 +0000
commit6ef6cc5c40fd13cca42fd267d62fdba80a6c75a9 (patch)
treee23e23a7ec54a930c1f5568846a09c11fd23ccf0 /llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
parentef6909df4c36850053b5c3e852e4e05e98aa9f03 (diff)
downloadbcm5719-llvm-6ef6cc5c40fd13cca42fd267d62fdba80a6c75a9.tar.gz
bcm5719-llvm-6ef6cc5c40fd13cca42fd267d62fdba80a6c75a9.zip
reverts 195057 per request
llvm-svn: 195152
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp')
-rw-r--r--llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
index 04692a53c9e..5e90bbc635a 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
@@ -20,11 +20,33 @@
using namespace llvm;
+static cl::opt<bool> PrintHackDirectives("print-hack-directives",
+ cl::init(false), cl::Hidden);
+
// pin vtable to this file
void MipsTargetStreamer::anchor() {}
-void MipsTargetAsmStreamer::emitMipsHackELFFlags(unsigned Flags) { return; }
-void MipsTargetAsmStreamer::emitSymSTO(MCSymbol *Sym, unsigned Val) { return; }
+MipsTargetAsmStreamer::MipsTargetAsmStreamer(formatted_raw_ostream &OS)
+ : OS(OS) {}
+
+void MipsTargetAsmStreamer::emitMipsHackELFFlags(unsigned Flags) {
+ if (!PrintHackDirectives)
+ return;
+
+ OS << "\t.mips_hack_elf_flags 0x";
+ OS.write_hex(Flags);
+ OS << '\n';
+}
+void MipsTargetAsmStreamer::emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val) {
+ if (!PrintHackDirectives)
+ return;
+
+ OS << "\t.mips_hack_stocg ";
+ OS << Sym->getName();
+ OS << ", ";
+ OS << Val;
+ OS << '\n';
+}
MCELFStreamer &MipsTargetELFStreamer::getStreamer() {
return static_cast<MCELFStreamer &>(*Streamer);
@@ -36,7 +58,7 @@ void MipsTargetELFStreamer::emitMipsHackELFFlags(unsigned Flags) {
}
// Set a symbol's STO flags
-void MipsTargetELFStreamer::emitSymSTO(MCSymbol *Sym, unsigned Val) {
+void MipsTargetELFStreamer::emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val) {
MCSymbolData &Data = getStreamer().getOrCreateSymbolData(Sym);
// The "other" values are stored in the last 6 bits of the second byte
// The traditional defines for STO values assume the full byte and thus
OpenPOWER on IntegriCloud