OSDN Git Service

Unify duplicated functions.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 24 Jan 2014 16:13:20 +0000 (16:13 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 24 Jan 2014 16:13:20 +0000 (16:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200014 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/AsmParser/MipsAsmParser.cpp
lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
lib/Target/Mips/MipsTargetStreamer.h

index 5a687f2..594ff4f 100644 (file)
@@ -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;
 }
index 786edf5..6b57dff 100644 (file)
@@ -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);
-}
index 5b7591c..d6d0bf1 100644 (file)
@@ -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