diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-12-29 14:14:06 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-12-29 14:14:06 +0000 |
commit | b2624eda5ad0ead99ec5ab7ead47b586c96d1109 (patch) | |
tree | a290f67cbb44544dff0284c119a70db091d5be42 | |
parent | dd061b317711d4165e01f30e8be4798c832819b8 (diff) |
MC/Mach-O/Thumb: Set the thumb bit in the symbol table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122630 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCMachOSymbolFlags.h | 1 | ||||
-rw-r--r-- | lib/MC/MCMachOStreamer.cpp | 8 | ||||
-rw-r--r-- | test/MC/MachO/darwin-Thumb-reloc.s | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/include/llvm/MC/MCMachOSymbolFlags.h b/include/llvm/MC/MCMachOSymbolFlags.h index 7871312455..696436dffa 100644 --- a/include/llvm/MC/MCMachOSymbolFlags.h +++ b/include/llvm/MC/MCMachOSymbolFlags.h @@ -34,6 +34,7 @@ namespace llvm { SF_ReferenceTypePrivateUndefinedLazy = 0x0005, // Other 'desc' flags. + SF_ThumbFunc = 0x0008, SF_NoDeadStrip = 0x0020, SF_WeakReference = 0x0040, SF_WeakDefinition = 0x0080, diff --git a/lib/MC/MCMachOStreamer.cpp b/lib/MC/MCMachOStreamer.cpp index 0e21f4d00c..7e1cda25b6 100644 --- a/lib/MC/MCMachOStreamer.cpp +++ b/lib/MC/MCMachOStreamer.cpp @@ -140,12 +140,16 @@ void MCMachOStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) { } } -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) { diff --git a/test/MC/MachO/darwin-Thumb-reloc.s b/test/MC/MachO/darwin-Thumb-reloc.s index 200b859379..567573d9ef 100644 --- a/test/MC/MachO/darwin-Thumb-reloc.s +++ b/test/MC/MachO/darwin-Thumb-reloc.s @@ -98,7 +98,7 @@ L_.str: @ 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: ), |