summaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-01-24 16:13:20 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-01-24 16:13:20 +0000
commitc55979b28d529bf88c2e962c8fd12b78b1cf876b (patch)
tree90896ba2fd6f4eb28b87f756aa408c17267fb2da /lib/Target
parent194168da5e21379d05639d070ed345fcaa956a9b (diff)
downloadllvm-c55979b28d529bf88c2e962c8fd12b78b1cf876b.tar.gz
llvm-c55979b28d529bf88c2e962c8fd12b78b1cf876b.tar.bz2
llvm-c55979b28d529bf88c2e962c8fd12b78b1cf876b.tar.xz
Unify duplicated functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200014 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/Mips/AsmParser/MipsAsmParser.cpp2
-rw-r--r--lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp21
-rw-r--r--lib/Target/Mips/MipsTargetStreamer.h3
3 files changed, 5 insertions, 21 deletions
diff --git a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
index 5a687f2ad4..594ff4f441 100644
--- a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+++ b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
@@ -2350,7 +2350,7 @@ bool MipsAsmParser::parseSetMips16Directive() {
reportParseError("unexpected token in statement");
return false;
}
- getTargetStreamer().emitDirectiveSetMips16(true);
+ getTargetStreamer().emitDirectiveSetMips16();
Parser.Lex(); // Consume the EndOfStatement.
return false;
}
diff --git a/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp b/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
index 786edf5d35..6b57dff2c8 100644
--- a/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
+++ b/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
@@ -63,12 +63,6 @@ void MipsTargetAsmStreamer::emitDirectiveAbiCalls() { OS << "\t.abicalls\n"; }
void MipsTargetAsmStreamer::emitDirectiveOptionPic0() {
OS << "\t.option\tpic0\n";
}
-void MipsTargetAsmStreamer::emitDirectiveSetMips16(bool IsMips16) {
- if (IsMips16)
- OS << "\t.set\tmips16\n";
- else
- OS << "\t.set\tnomips16\n";
-}
// This part is for ELF object output.
MipsTargetELFStreamer::MipsTargetELFStreamer() : MicroMipsEnabled(false) {}
@@ -105,7 +99,10 @@ void MipsTargetELFStreamer::emitDirectiveSetNoMicroMips() {
}
void MipsTargetELFStreamer::emitDirectiveSetMips16() {
- // FIXME: implement.
+ MCAssembler &MCA = getStreamer().getAssembler();
+ unsigned Flags = MCA.getELFHeaderEFlags();
+ Flags |= ELF::EF_MIPS_ARCH_ASE_M16;
+ MCA.setELFHeaderEFlags(Flags);
}
void MipsTargetELFStreamer::emitDirectiveSetNoMips16() {
@@ -128,13 +125,3 @@ void MipsTargetELFStreamer::emitDirectiveOptionPic0() {
Flags &= ~ELF::EF_MIPS_PIC;
MCA.setELFHeaderEFlags(Flags);
}
-void MipsTargetELFStreamer::emitDirectiveSetMips16(bool IsMips16) {
- // Don't do anything for .set nomips16
- if (!IsMips16)
- return;
-
- MCAssembler &MCA = getStreamer().getAssembler();
- unsigned Flags = MCA.getELFHeaderEFlags();
- Flags |= ELF::EF_MIPS_ARCH_ASE_M16;
- MCA.setELFHeaderEFlags(Flags);
-}
diff --git a/lib/Target/Mips/MipsTargetStreamer.h b/lib/Target/Mips/MipsTargetStreamer.h
index 5b7591c80e..d6d0bf1a8e 100644
--- a/lib/Target/Mips/MipsTargetStreamer.h
+++ b/lib/Target/Mips/MipsTargetStreamer.h
@@ -26,7 +26,6 @@ public:
virtual void emitDirectiveEnt(const MCSymbol &Symbol) = 0;
virtual void emitDirectiveAbiCalls() = 0;
virtual void emitDirectiveOptionPic0() = 0;
- virtual void emitDirectiveSetMips16(bool IsMips16) = 0;
};
// This part is for ascii assembly output
@@ -43,7 +42,6 @@ public:
virtual void emitDirectiveEnt(const MCSymbol &Symbol);
virtual void emitDirectiveAbiCalls();
virtual void emitDirectiveOptionPic0();
- virtual void emitDirectiveSetMips16(bool IsMips16);
};
// This part is for ELF object output
@@ -66,7 +64,6 @@ public:
virtual void emitDirectiveEnt(const MCSymbol &Symbol);
virtual void emitDirectiveAbiCalls();
virtual void emitDirectiveOptionPic0();
- virtual void emitDirectiveSetMips16(bool IsMips16);
};
}
#endif