diff options
author | Daniel Sanders <daniel.sanders@imgtec.com> | 2016-05-06 14:37:24 +0000 |
---|---|---|
committer | Daniel Sanders <daniel.sanders@imgtec.com> | 2016-05-06 14:37:24 +0000 |
commit | 8de3d3cad6d17a0118584ddceaad587c77f869d8 (patch) | |
tree | 38a2bafb823759476aaac9de55f6b836752ebfe8 /llvm/lib/Target/Mips/MipsTargetStreamer.h | |
parent | 2801d32c0740eefaa6ba71a0ab4de16e192c5cdb (diff) | |
download | bcm5719-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.h | 5 |
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; |