diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-11-20 06:21:08 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-11-20 06:21:08 +0000 |
commit | a87a147ee7bb9adb4caea631ff0ba7e66bb9b0b5 (patch) | |
tree | 64257ce0ac3ead38c1335b7b267f2ba54a9d7a2a /lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp | |
parent | 3773bef110790fbeeb386b083bdf8ad16bbceb91 (diff) | |
download | external_llvm-a87a147ee7bb9adb4caea631ff0ba7e66bb9b0b5.zip external_llvm-a87a147ee7bb9adb4caea631ff0ba7e66bb9b0b5.tar.gz external_llvm-a87a147ee7bb9adb4caea631ff0ba7e66bb9b0b5.tar.bz2 |
Merging r195152:
------------------------------------------------------------------------
r195152 | jacksprat | 2013-11-19 12:53:28 -0800 (Tue, 19 Nov 2013) | 1 line
reverts 195057 per request
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195220 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp')
-rw-r--r-- | lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp b/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp index 04692a5..5e90bbc 100644 --- a/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp +++ b/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 |