[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