[mips] [IAS] Preserve microMIPS label marking for objects when assigning.
authorToma Tabacu <toma.tabacu@imgtec.com>
Thu, 16 Apr 2015 13:37:32 +0000 (13:37 +0000)
committerToma Tabacu <toma.tabacu@imgtec.com>
Thu, 16 Apr 2015 13:37:32 +0000 (13:37 +0000)
Summary: Previously, this was only happening for functions, but because of .insn, objects can also be marked now.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D8007

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

lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
test/MC/Mips/micromips-alias.s

index ccc019e86aa2410ab6d342b2de6d4e6ca0a40f6c..cfd56c6a5cd5de796e29ca0e8c820271ccfa7947 100644 (file)
@@ -513,9 +513,8 @@ void MipsTargetELFStreamer::emitAssignment(MCSymbol *Symbol,
   const MCSymbol &RhsSym =
       static_cast<const MCSymbolRefExpr *>(Value)->getSymbol();
   MCSymbolData &Data = getStreamer().getOrCreateSymbolData(&RhsSym);
-  uint8_t Type = MCELF::GetType(Data);
-  if ((Type != ELF::STT_FUNC) ||
-      !(MCELF::getOther(Data) & (ELF::STO_MIPS_MICROMIPS >> 2)))
+
+  if (!(MCELF::getOther(Data) & (ELF::STO_MIPS_MICROMIPS >> 2)))
     return;
 
   MCSymbolData &SymbolData = getStreamer().getOrCreateSymbolData(Symbol);
index c0bf4b3a8e33f80c606e64f23622709847e65cd2..256b3b68aa6165665b223ef6017b7586cfb59341 100644 (file)
@@ -14,3 +14,15 @@ f:
   nop
   .globl bar
 bar = f
+
+# CHECK: Name: foo
+# CHECK: Other: 128
+  .type  o,@object
+  .set   micromips
+o:
+  .insn
+  .word 0x00000000
+  .set   nomicromips
+
+  .globl foo
+foo = o