Fix a low hanging use of hasRawTextSupport.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 14 Jan 2014 18:57:12 +0000 (18:57 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 14 Jan 2014 18:57:12 +0000 (18:57 +0000)
This also fixes the placement of the function label comment. It was being
placed next to the mips16 directive instead of next to the label.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199245 91177308-0d34-0410-b5e6-96231b3b80d8

16 files changed:
lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
lib/Target/Mips/MipsAsmPrinter.cpp
lib/Target/Mips/MipsTargetStreamer.h
test/CodeGen/Mips/fpneeded.ll
test/CodeGen/Mips/fpnotneeded.ll
test/CodeGen/Mips/helloworld.ll
test/CodeGen/Mips/mips16_32_1.ll
test/CodeGen/Mips/mips16_32_10.ll
test/CodeGen/Mips/mips16_32_3.ll
test/CodeGen/Mips/mips16_32_4.ll
test/CodeGen/Mips/mips16_32_5.ll
test/CodeGen/Mips/mips16_32_6.ll
test/CodeGen/Mips/mips16_32_7.ll
test/CodeGen/Mips/mips16_32_8.ll
test/CodeGen/Mips/mips16_32_9.ll
test/CodeGen/Mips/null.ll

index 48af1a71ca310319a23036a3a596d4a8141f92d1..738fa2b204da521c5cf8ad717124559edcd33df8 100644 (file)
@@ -47,6 +47,18 @@ void MipsTargetAsmStreamer::emitDirectiveSetNoMicroMips() {
   OS << "\t.set\tnomicromips\n";
 }
 
+void MipsTargetAsmStreamer::emitDirectiveSetMips16() {
+  OS << "\t.set\tmips16\n";
+}
+
+void MipsTargetAsmStreamer::emitDirectiveSetNoMips16() {
+  OS << "\t.set\tnomips16\n";
+}
+
+void MipsTargetAsmStreamer::emitDirectiveEnt(const MCSymbol &Symbol) {
+  OS << "\t.ent\t" << Symbol.getName() << '\n';
+}
+
 void MipsTargetAsmStreamer::emitDirectiveAbiCalls() { OS << "\t.abicalls\n"; }
 void MipsTargetAsmStreamer::emitDirectiveOptionPic0() {
   OS << "\t.option\tpic0\n";
@@ -81,6 +93,18 @@ void MipsTargetELFStreamer::emitDirectiveSetNoMicroMips() {
   MicroMipsEnabled = false;
 }
 
+void MipsTargetELFStreamer::emitDirectiveSetMips16() {
+  // FIXME: implement.
+}
+
+void MipsTargetELFStreamer::emitDirectiveSetNoMips16() {
+  // FIXME: implement.
+}
+
+void MipsTargetELFStreamer::emitDirectiveEnt(const MCSymbol &Symbol) {
+  // FIXME: implement.
+}
+
 void MipsTargetELFStreamer::emitDirectiveAbiCalls() {
   MCAssembler &MCA = getStreamer().getAssembler();
   unsigned Flags = MCA.getELFHeaderEFlags();
index 2bd6df7fd3fafd5b26e295ae735f7f2495ade5f7..2f49e74ab8245c51315f10c830c175ee943e0f01 100644 (file)
@@ -265,19 +265,19 @@ const char *MipsAsmPrinter::getCurrentABIString() const {
 }
 
 void MipsAsmPrinter::EmitFunctionEntryLabel() {
+  MipsTargetStreamer &TS = getTargetStreamer();
   if (Subtarget->inMicroMipsMode())
-    getTargetStreamer().emitDirectiveSetMicroMips();
+    TS.emitDirectiveSetMicroMips();
+  // leave out until FSF available gas has micromips changes
+  //  else
+  //    TS.emitDirectiveSetNoMicroMips();
 
-  if (OutStreamer.hasRawTextSupport()) {
-    if (Subtarget->inMips16Mode())
-      OutStreamer.EmitRawText(StringRef("\t.set\tmips16"));
-    else
-      OutStreamer.EmitRawText(StringRef("\t.set\tnomips16"));
-    // leave out until FSF available gas has micromips changes
-    // OutStreamer.EmitRawText(StringRef("\t.set\tnomicromips"));
-    OutStreamer.EmitRawText("\t.ent\t" + Twine(CurrentFnSym->getName()));
-  }
+  if (Subtarget->inMips16Mode())
+    TS.emitDirectiveSetMips16();
+  else
+    TS.emitDirectiveSetNoMips16();
 
+  TS.emitDirectiveEnt(*CurrentFnSym);
   OutStreamer.EmitLabel(CurrentFnSym);
 }
 
index 4d1dd0090da8a09c8b5c9202b01715f498dc66a3..4c0446fc3ced01e520b329b1440e1c1450bf8e0b 100644 (file)
@@ -21,6 +21,9 @@ public:
   virtual void emitMipsHackELFFlags(unsigned Flags) = 0;
   virtual void emitDirectiveSetMicroMips() = 0;
   virtual void emitDirectiveSetNoMicroMips() = 0;
+  virtual void emitDirectiveSetMips16() = 0;
+  virtual void emitDirectiveSetNoMips16() = 0;
+  virtual void emitDirectiveEnt(const MCSymbol &Symbol) = 0;
   virtual void emitDirectiveAbiCalls() = 0;
   virtual void emitDirectiveOptionPic0() = 0;
 };
@@ -34,6 +37,9 @@ public:
   virtual void emitMipsHackELFFlags(unsigned Flags);
   virtual void emitDirectiveSetMicroMips();
   virtual void emitDirectiveSetNoMicroMips();
+  virtual void emitDirectiveSetMips16();
+  virtual void emitDirectiveSetNoMips16();
+  virtual void emitDirectiveEnt(const MCSymbol &Symbol);
   virtual void emitDirectiveAbiCalls();
   virtual void emitDirectiveOptionPic0();
 };
@@ -52,6 +58,9 @@ public:
   virtual void emitMipsHackELFFlags(unsigned Flags);
   virtual void emitDirectiveSetMicroMips();
   virtual void emitDirectiveSetNoMicroMips();
+  virtual void emitDirectiveSetMips16();
+  virtual void emitDirectiveSetNoMips16();
+  virtual void emitDirectiveEnt(const MCSymbol &Symbol);
   virtual void emitDirectiveAbiCalls();
   virtual void emitDirectiveOptionPic0();
 };
index dcdebb92e40e2c9e006dd6d614a665b3fedd5977..fdd8e8f707ef44898357c05b2767e256f940b4d7 100644 (file)
@@ -10,7 +10,7 @@ entry:
   ret float 1.000000e+00
 }
 
-; 32:  .set    nomips16                  # @fv
+; 32:  .set    nomips16
 ; 32:  .ent    fv
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -26,7 +26,7 @@ entry:
   ret double 2.000000e+00
 }
 
-; 32:  .set    nomips16                  # @dv
+; 32:  .set    nomips16
 ; 32:  .ent    dv
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -44,7 +44,7 @@ entry:
   ret void
 }
 
-; 32:  .set    nomips16                  # @vf
+; 32:  .set    nomips16
 ; 32:  .ent    vf
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -62,7 +62,7 @@ entry:
   ret void
 }
 
-; 32:  .set    nomips16                  # @vd
+; 32:  .set    nomips16
 ; 32:  .ent    vd
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -83,7 +83,7 @@ entry:
   ret void
 }
 
-; 32:  .set    nomips16                  # @foo1
+; 32:  .set    nomips16
 ; 32:  .ent    foo1
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -102,7 +102,7 @@ entry:
 }
 
 
-; 32:  .set    nomips16                  # @foo2
+; 32:  .set    nomips16
 ; 32:  .ent    foo2
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -120,7 +120,7 @@ entry:
   ret void
 }
 
-; 32:  .set    nomips16                  # @foo3
+; 32:  .set    nomips16
 ; 32:  .ent    foo3
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -138,7 +138,7 @@ entry:
   ret void
 }
 
-; 32:  .set    mips16                  # @vv
+; 32:  .set    mips16
 ; 32:  .ent    vv
 
 ; 32:  save    {{.+}}
index 6a4363c58136f870f94831cfef23acebfef1f893..e12d7baacdbb0267a26b955a769f3d3990bb9f3a 100644 (file)
@@ -10,7 +10,7 @@ entry:
   ret void
 }
 
-; 32:  .set    mips16                  # @vv
+; 32:  .set    mips16
 ; 32:  .ent    vv
 
 ; 32:  save    {{.+}}
@@ -23,7 +23,7 @@ entry:
   ret i32 %0
 }
 
-; 32:  .set    mips16                  # @iv
+; 32:  .set    mips16
 ; 32:  .ent    iv
 
 ; 32:  save    {{.+}}
@@ -39,7 +39,7 @@ entry:
   ret void
 }
 
-; 32:  .set    mips16                  # @vif
+; 32:  .set    mips16
 ; 32:  .ent    vif
 
 ; 32:  save    {{.+}}
@@ -52,7 +52,7 @@ entry:
   ret void
 }
 
-; 32:  .set    mips16                  # @foo
+; 32:  .set    mips16
 ; 32:  .ent    foo
 
 ; 32:  save    {{.+}}
@@ -69,7 +69,7 @@ entry:
   ret float 1.000000e+00
 }
 
-; 32:  .set    nomips16                  # @fv
+; 32:  .set    nomips16
 ; 32:  .ent    fv
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
index 709c12e1c67f2121827489a9687779a3f36925a2..36f4ad6b55c0b56c564e795530182211cf6f194d 100644 (file)
@@ -15,7 +15,7 @@ entry:
   %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0))
   ret i32 0
 
-; SR:  .set    mips16                  # @main
+; SR:  .set    mips16
 
 ; SR32: .set nomips16
 ; SR32: .ent main
index a72cfc84875dbc7cdc9c312e900257e8313847fc..f6096b402f2d7e53e91b7551f5223225ffec5a5f 100644 (file)
@@ -6,7 +6,7 @@ entry:
   ret void
 }
 
-; CHECK:       .set    mips16                  # @foo
+; CHECK:       .set    mips16
 ; CHECK:       .ent    foo
 ; CHECK:       jrc $ra
 ; CHECK:       .end    foo
index 686faa718e08942a859efb37c0ff578d8a1cfdf6..ff9831ed762260ca48c6aa8ecd889fb0b12f1d7c 100644 (file)
@@ -4,7 +4,7 @@ define void @foo() #0 {
 entry:
   ret void
 }
-; 16:  .set    nomips16                  # @foo
+; 16:  .set    nomips16
 ; 16:  .ent    foo
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -21,7 +21,7 @@ entry:
   ret void
 }
 
-; 16:  .set    mips16                  # @nofoo
+; 16:  .set    mips16
 ; 16:  .ent    nofoo
 
 ; 16:  jrc $ra
@@ -32,7 +32,7 @@ entry:
   ret i32 0
 }
 
-; 16:  .set    nomips16                  # @main
+; 16:  .set    nomips16
 ; 16:  .ent    main
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
index 4ad427f0df7fc9b6e2eb1de9a0b9897c6d158ccd..c5a29a0b8fdbf5a06ffe999e067b6e6b291a743f 100644 (file)
@@ -6,11 +6,11 @@ entry:
   ret void
 }
 
-; 16:  .set    mips16                  # @foo
+; 16:  .set    mips16
 ; 16:  .ent    foo
 ; 16:  jrc $ra
 ; 16:  .end    foo
-; 32:  .set    mips16                  # @foo
+; 32:  .set    mips16
 ; 32:  .ent    foo
 ; 32:  jrc $ra
 ; 32:  .end    foo
@@ -19,7 +19,7 @@ entry:
   ret void
 }
 
-; 16:  .set    nomips16                  # @nofoo
+; 16:  .set    nomips16
 ; 16:  .ent    nofoo
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -30,7 +30,7 @@ entry:
 ; 16:  .set    macro
 ; 16:  .set    reorder
 ; 16:  .end    nofoo
-; 32:  .set    nomips16                  # @nofoo
+; 32:  .set    nomips16
 ; 32:  .ent    nofoo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -46,11 +46,11 @@ entry:
   ret i32 0
 }
 
-; 16:  .set    mips16                  # @main
+; 16:  .set    mips16
 ; 16:  .ent    main
 ; 16:  jrc $ra
 ; 16:  .end    main
-; 32:  .set    nomips16                  # @main
+; 32:  .set    nomips16
 ; 32:  .ent    main
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
index e8100e8237a195dcffec77dc2aea383d5fea26c6..1238363d907e0edb7457e921345d2c2ff4062254 100644 (file)
@@ -6,11 +6,11 @@ entry:
   ret void
 }
 
-; 16:  .set    mips16                  # @foo
+; 16:  .set    mips16
 ; 16:  .ent    foo
 ; 16:  jrc $ra
 ; 16:  .end    foo
-; 32:  .set    mips16                  # @foo
+; 32:  .set    mips16
 ; 32:  .ent    foo
 ; 32:  jrc $ra
 ; 32:  .end    foo
@@ -19,7 +19,7 @@ entry:
   ret void
 }
 
-; 16:  .set    nomips16                  # @nofoo
+; 16:  .set    nomips16
 ; 16:  .ent    nofoo
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -30,7 +30,7 @@ entry:
 ; 16:  .set    macro
 ; 16:  .set    reorder
 ; 16:  .end    nofoo
-; 32:  .set    nomips16                  # @nofoo
+; 32:  .set    nomips16
 ; 32:  .ent    nofoo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -46,11 +46,11 @@ entry:
   ret i32 0
 }
 
-; 16:  .set    mips16                  # @main
+; 16:  .set    mips16
 ; 16:  .ent    main
 ; 16:  jrc $ra
 ; 16:  .end    main
-; 32:  .set    mips16                  # @main
+; 32:  .set    mips16
 ; 32:  .ent    main
 ; 32:  jrc $ra
 ; 32:  .end    main
index 5bdeede5c66d4d95cd15d0041ee0c933cd5a718d..5d4c8a1af563059f8631d2d02f8d24ec5cf0026b 100644 (file)
@@ -6,11 +6,11 @@ entry:
   ret void
 }
 
-; 16:  .set    mips16                  # @foo
+; 16:  .set    mips16
 ; 16:  .ent    foo
 ; 16:  jrc $ra
 ; 16:  .end    foo
-; 32:  .set    mips16                  # @foo
+; 32:  .set    mips16
 ; 32:  .ent    foo
 ; 32:  jrc $ra
 ; 32:  .end    foo
@@ -19,7 +19,7 @@ entry:
   ret void
 }
 
-; 16:  .set    nomips16                  # @nofoo
+; 16:  .set    nomips16
 ; 16:  .ent    nofoo
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -30,7 +30,7 @@ entry:
 ; 16:  .set    macro
 ; 16:  .set    reorder
 ; 16:  .end    nofoo
-; 32:  .set    nomips16                  # @nofoo
+; 32:  .set    nomips16
 ; 32:  .ent    nofoo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -46,7 +46,7 @@ entry:
   ret i32 0
 }
 
-; 16:  .set    nomips16                  # @main
+; 16:  .set    nomips16
 ; 16:  .ent    main
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -58,7 +58,7 @@ entry:
 ; 16:  .set    reorder
 ; 16:  .end    main
 
-; 32:  .set    nomips16                  # @main
+; 32:  .set    nomips16
 ; 32:  .ent    main
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
index 45f71f01ec6553c42eef577aaf7c21d489b0a11e..63323b608bc57932269a7ed4fb34cb1995f1d2ca 100644 (file)
@@ -6,11 +6,11 @@ entry:
   ret void
 }
 
-; 16:  .set    mips16                  # @foo
+; 16:  .set    mips16
 ; 16:  .ent    foo
 ; 16:  jrc $ra
 ; 16:  .end    foo
-; 32:  .set    nomips16                  # @foo
+; 32:  .set    nomips16
 ; 32:  .ent    foo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -26,7 +26,7 @@ entry:
   ret void
 }
 
-; 16:  .set    nomips16                  # @nofoo
+; 16:  .set    nomips16
 ; 16:  .ent    nofoo
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -37,7 +37,7 @@ entry:
 ; 16:  .set    macro
 ; 16:  .set    reorder
 ; 16:  .end    nofoo
-; 32:  .set    nomips16                  # @nofoo
+; 32:  .set    nomips16
 ; 32:  .ent    nofoo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -53,7 +53,7 @@ entry:
   ret i32 0
 }
 
-; 16:  .set    nomips16                  # @main
+; 16:  .set    nomips16
 ; 16:  .ent    main
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -65,7 +65,7 @@ entry:
 ; 16:  .set    reorder
 ; 16:  .end    main
 
-; 32:  .set    nomips16                  # @main
+; 32:  .set    nomips16
 ; 32:  .ent    main
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
index e171b367c47e2d409756f84cbefe5de42212fe40..480a23c8b25ea22627bcb1644a311a09828df41e 100644 (file)
@@ -6,11 +6,11 @@ entry:
   ret void
 }
 
-; 16:  .set    mips16                  # @foo
+; 16:  .set    mips16
 ; 16:  .ent    foo
 ; 16:  jrc $ra
 ; 16:  .end    foo
-; 32:  .set    nomips16                  # @foo
+; 32:  .set    nomips16
 ; 32:  .ent    foo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -26,7 +26,7 @@ entry:
   ret void
 }
 
-; 16:  .set    nomips16                  # @nofoo
+; 16:  .set    nomips16
 ; 16:  .ent    nofoo
 ; 16:  .set    noreorder
 ; 16:  .set    nomacro
@@ -37,7 +37,7 @@ entry:
 ; 16:  .set    macro
 ; 16:  .set    reorder
 ; 16:  .end    nofoo
-; 32:  .set    nomips16                  # @nofoo
+; 32:  .set    nomips16
 ; 32:  .ent    nofoo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -53,12 +53,12 @@ entry:
   ret i32 0
 }
 
-; 16:  .set    mips16                  # @main
+; 16:  .set    mips16
 ; 16:  .ent    main
 ; 16:  jrc $ra
 ; 16:  .end    main
 
-; 32:  .set    mips16                  # @main
+; 32:  .set    mips16
 ; 32:  .ent    main
 ; 32:  jrc $ra
 ; 32:  .end    main
index 3c8cc5a4e281949e61659960c08e4783e68a2ab4..2f5bc219cf35e7c96d1de7fe2005f63f8628db1a 100644 (file)
@@ -14,7 +14,7 @@ entry:
   ret void
 }
 
-; 32:  .set    mips16                  # @foo
+; 32:  .set    mips16
 ; 32:  .ent    foo
 ; 32:  jrc $ra
 ; 32:  .end    foo
@@ -32,7 +32,7 @@ entry:
   ret void
 }
 
-; 32:  .set    nomips16                  # @nofoo
+; 32:  .set    nomips16
 ; 32:  .ent    nofoo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -56,7 +56,7 @@ entry:
   ret i32 0
 }
 
-; 32:  .set    nomips16                  # @main
+; 32:  .set    nomips16
 ; 32:  .ent    main
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
index 585a4e8408b48e6698f229000949846a6307437a..8543147bed03c361f07f1b0d6397002f5719b6f7 100644 (file)
@@ -5,7 +5,7 @@ entry:
   ret void
 }
 
-; 32:  .set    mips16                  # @foo
+; 32:  .set    mips16
 ; 32:  .ent    foo
 ; 32:  jrc $ra
 ; 32:  .end    foo
@@ -14,7 +14,7 @@ entry:
   ret void
 }
 
-; 32:  .set    nomips16                  # @nofoo
+; 32:  .set    nomips16
 ; 32:  .ent    nofoo
 ; 32:  .set    noreorder
 ; 32:  .set    nomacro
@@ -30,7 +30,7 @@ entry:
   ret i32 0
 }
 
-; 32:  .set    mips16                  # @main
+; 32:  .set    mips16
 ; 32:  .ent    main
 ; 32:  jrc $ra
 ; 32:  .end    main
index 00c66a9928f620da66e467e2e11295cca5ff3d2a..bc78a27f199c86e485abdc88c0b0badcea09dd78 100644 (file)
@@ -5,7 +5,7 @@ define i32 @main() nounwind {
 entry:
   ret i32 0
 
-; 16:  .set    mips16                  # @main
+; 16:  .set    mips16
 
 
 ; 16:  jrc     $ra