[llvm-commits] [llvm] r122630 - in /llvm/trunk: include/llvm/MC/MCMachOSymbolFlags.h lib/MC/MCMachOStreamer.cpp test/MC/MachO/darwin-Thumb-reloc.s

Daniel Dunbar daniel at zuster.org
Wed Dec 29 06:14:06 PST 2010


Author: ddunbar
Date: Wed Dec 29 08:14:06 2010
New Revision: 122630

URL: http://llvm.org/viewvc/llvm-project?rev=122630&view=rev
Log:
MC/Mach-O/Thumb: Set the thumb bit in the symbol table.

Modified:
    llvm/trunk/include/llvm/MC/MCMachOSymbolFlags.h
    llvm/trunk/lib/MC/MCMachOStreamer.cpp
    llvm/trunk/test/MC/MachO/darwin-Thumb-reloc.s

Modified: llvm/trunk/include/llvm/MC/MCMachOSymbolFlags.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCMachOSymbolFlags.h?rev=122630&r1=122629&r2=122630&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCMachOSymbolFlags.h (original)
+++ llvm/trunk/include/llvm/MC/MCMachOSymbolFlags.h Wed Dec 29 08:14:06 2010
@@ -34,6 +34,7 @@
     SF_ReferenceTypePrivateUndefinedLazy    = 0x0005,
 
     // Other 'desc' flags.
+    SF_ThumbFunc                            = 0x0008,
     SF_NoDeadStrip                          = 0x0020,
     SF_WeakReference                        = 0x0040,
     SF_WeakDefinition                       = 0x0080,

Modified: llvm/trunk/lib/MC/MCMachOStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCMachOStreamer.cpp?rev=122630&r1=122629&r2=122630&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCMachOStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCMachOStreamer.cpp Wed Dec 29 08:14:06 2010
@@ -140,12 +140,16 @@
   }
 }
 
-void MCMachOStreamer::EmitThumbFunc(MCSymbol *Func) {
+void MCMachOStreamer::EmitThumbFunc(MCSymbol *Symbol) {
   // FIXME: Flag the function ISA as thumb with DW_AT_APPLE_isa.
 
   // Remember that the function is a thumb function. Fixup and relocation
   // values will need adjusted.
-  getAssembler().setIsThumbFunc(Func);
+  getAssembler().setIsThumbFunc(Symbol);
+
+  // Mark the thumb bit on the symbol.
+  MCSymbolData &SD = getAssembler().getOrCreateSymbolData(*Symbol);
+  SD.setFlags(SD.getFlags() | SF_ThumbFunc);
 }
 
 void MCMachOStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) {

Modified: llvm/trunk/test/MC/MachO/darwin-Thumb-reloc.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/darwin-Thumb-reloc.s?rev=122630&r1=122629&r2=122630&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/darwin-Thumb-reloc.s (original)
+++ llvm/trunk/test/MC/MachO/darwin-Thumb-reloc.s Wed Dec 29 08:14:06 2010
@@ -98,7 +98,7 @@
 @ CHECK:    (('n_strx', 1)
 @ CHECK:     ('n_type', 0xf)
 @ CHECK:     ('n_sect', 1)
-@ CHECK-FIXME:     ('n_desc', 8)
+@ CHECK:     ('n_desc', 8)
 @ CHECK:     ('n_value', 0)
 @ CHECK:     ('_string', '_main')
 @ CHECK:    ),





More information about the llvm-commits mailing list