summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsTargetStreamer.h
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2016-05-06 14:37:24 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2016-05-06 14:37:24 +0000
commit8de3d3cad6d17a0118584ddceaad587c77f869d8 (patch)
tree38a2bafb823759476aaac9de55f6b836752ebfe8 /llvm/lib/Target/Mips/MipsTargetStreamer.h
parent2801d32c0740eefaa6ba71a0ab4de16e192c5cdb (diff)
downloadbcm5719-llvm-8de3d3cad6d17a0118584ddceaad587c77f869d8.tar.gz
bcm5719-llvm-8de3d3cad6d17a0118584ddceaad587c77f869d8.zip
[mips] Fix inconsistent .cprestore behaviour between direct object emission and assembling.
Summary: Direct object emission has an initialization order problem where an InitMCObjectFile is called after MipsTargetELFStreamer determines whether PIC is enabled by default or not. There doesn't seem to be point that initializes all cases so split the responsibility between MipsTargetELFStreamer and MipsAsmPrinter. Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D19728 llvm-svn: 268737
Diffstat (limited to 'llvm/lib/Target/Mips/MipsTargetStreamer.h')
-rw-r--r--llvm/lib/Target/Mips/MipsTargetStreamer.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsTargetStreamer.h b/llvm/lib/Target/Mips/MipsTargetStreamer.h
index a60943b8a41..2b39da6ade5 100644
--- a/llvm/lib/Target/Mips/MipsTargetStreamer.h
+++ b/llvm/lib/Target/Mips/MipsTargetStreamer.h
@@ -24,6 +24,9 @@ struct MipsABIFlagsSection;
class MipsTargetStreamer : public MCTargetStreamer {
public:
MipsTargetStreamer(MCStreamer &S);
+
+ virtual void setPic(bool Value) {}
+
virtual void emitDirectiveSetMicroMips();
virtual void emitDirectiveSetNoMicroMips();
virtual void emitDirectiveSetMips16();
@@ -260,6 +263,8 @@ public:
MCELFStreamer &getStreamer();
MipsTargetELFStreamer(MCStreamer &S, const MCSubtargetInfo &STI);
+ void setPic(bool Value) override { Pic = Value; }
+
void emitLabel(MCSymbol *Symbol) override;
void emitAssignment(MCSymbol *Symbol, const MCExpr *Value) override;
void finish() override;
OpenPOWER on IntegriCloud