summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MipsTargetStreamer.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-01-14 04:25:13 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-01-14 04:25:13 +0000
commit3c733ea0649665b81947de596d410a5c4f42f5f4 (patch)
tree5ca3a0eb19cf878d00fbd4cb086834685b00a4be /lib/Target/Mips/MipsTargetStreamer.h
parentdfa550a1761a85417d0e42c8cd17cd08e753388b (diff)
downloadllvm-3c733ea0649665b81947de596d410a5c4f42f5f4.tar.gz
llvm-3c733ea0649665b81947de596d410a5c4f42f5f4.tar.bz2
llvm-3c733ea0649665b81947de596d410a5c4f42f5f4.tar.xz
Replace .mips_hack_stocg with ".set micromips" and ".set nomicromips".
This matches what gnu as does and implementing this is easier than arguing about it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199181 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MipsTargetStreamer.h')
-rw-r--r--lib/Target/Mips/MipsTargetStreamer.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/Target/Mips/MipsTargetStreamer.h b/lib/Target/Mips/MipsTargetStreamer.h
index 8c53cb5bc2..4d1dd0090d 100644
--- a/lib/Target/Mips/MipsTargetStreamer.h
+++ b/lib/Target/Mips/MipsTargetStreamer.h
@@ -19,7 +19,8 @@ class MipsTargetStreamer : public MCTargetStreamer {
public:
virtual void emitMipsHackELFFlags(unsigned Flags) = 0;
- virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val) = 0;
+ virtual void emitDirectiveSetMicroMips() = 0;
+ virtual void emitDirectiveSetNoMicroMips() = 0;
virtual void emitDirectiveAbiCalls() = 0;
virtual void emitDirectiveOptionPic0() = 0;
};
@@ -31,19 +32,26 @@ class MipsTargetAsmStreamer : public MipsTargetStreamer {
public:
MipsTargetAsmStreamer(formatted_raw_ostream &OS);
virtual void emitMipsHackELFFlags(unsigned Flags);
- virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val);
+ virtual void emitDirectiveSetMicroMips();
+ virtual void emitDirectiveSetNoMicroMips();
virtual void emitDirectiveAbiCalls();
virtual void emitDirectiveOptionPic0();
};
// This part is for ELF object output
class MipsTargetELFStreamer : public MipsTargetStreamer {
+ bool MicroMipsEnabled;
public:
+ bool isMicroMipsEnabled() const { return MicroMipsEnabled; }
MCELFStreamer &getStreamer();
MipsTargetELFStreamer();
+
+ virtual void emitLabel(MCSymbol *Symbol) LLVM_OVERRIDE;
+
// FIXME: emitMipsHackELFFlags() will be removed from this class.
virtual void emitMipsHackELFFlags(unsigned Flags);
- virtual void emitMipsHackSTOCG(MCSymbol *Sym, unsigned Val);
+ virtual void emitDirectiveSetMicroMips();
+ virtual void emitDirectiveSetNoMicroMips();
virtual void emitDirectiveAbiCalls();
virtual void emitDirectiveOptionPic0();
};