summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCAsmInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Emit the ctors in the proper order on ARM/EABI.Anton Korobeynikov2011-12-031-1/+0
| | | | | | | | Maybe some targets should use this as well. Patch by Evgeniy Stepanov! llvm-svn: 145781
* Teach our Dwarf emission to use the string pool.Nick Lewycky2011-10-271-0/+1
| | | | llvm-svn: 143097
* Disable code/data region symbols on ELF targets, where different mapping ↵Owen Anderson2011-10-141-1/+1
| | | | | | symbols are used for ARM/Thumb mode code. This should only be re-enabled once we have a solution to properly distinguish these. llvm-svn: 141984
* Teach the MC to output code/data region marker labels in MachO and ELF ↵Owen Anderson2011-10-041-0/+6
| | | | | | modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment. llvm-svn: 141135
* Darwin wants ctors/dtors to be ordered the other way round to linux.Duncan Sands2011-09-021-0/+1
| | | | llvm-svn: 139015
* Don't drop alignment info on local common symbols.Benjamin Kramer2011-09-011-1/+1
| | | | | | | | | | | - On COFF the .lcomm directive has an alignment argument. - On ELF we fall back to .local + .comm Based on a patch by NAKAMURA Takumi. Fixes PR9337, PR9483 and PR10128. llvm-svn: 138976
* Support .code32 and .code64 in X86 assembler.Evan Cheng2011-07-271-0/+3
| | | | llvm-svn: 136197
* Move some parts of TargetAsmInfo down to MCAsmInfo. This is not the greatestEvan Cheng2011-07-151-0/+3
| | | | | | | solution but it is a small step towards removing the horror that is TargetAsmInfo. llvm-svn: 135237
* This patch adds a flag in MCAsmInfo that indicates whether dwarf registerAkira Hatanaka2011-07-071-0/+1
| | | | | | | | | | numbers should be printed instead of symbolic register names in MCAsmStreamer::EmitRegisterName. This is necessary because some versions of GNU assembler won't accept code in which symbolic register names are used in cfi directives. There is no change in behavior unless the flag is explicitly set to true by a backend. llvm-svn: 134635
* Rename DwarfRequiresRelocationForStmtList toRafael Espindola2011-05-101-1/+1
| | | | | | DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList. llvm-svn: 131148
* Dead code elimination.Rafael Espindola2011-05-061-1/+0
| | | | llvm-svn: 130984
* Don't produce a __debug_frame.Rafael Espindola2011-05-051-1/+1
| | | | | | | I tested both gdb on a bootstrapped clang and and the gdb testsuite on OS X (snow leopard) and both are happy using __eh_frame. llvm-svn: 130937
* Producing a DW_FORM_addr for DW_AT_stmt_list is probably correct, butRafael Espindola2011-05-041-1/+1
| | | | | | | | | | | it is both inefficient and unexpected by dwarfdump. Change to a DW_FORM_data4. While in here, change the predicate name to reflect that the position is not really absolute (it is an offset), just that the linker needs a relocation. llvm-svn: 130846
* Simplify the handling of pcrel relocations on ELF. Now we do the right thingRafael Espindola2011-05-011-2/+14
| | | | | | | | | | for all symbol differences and can drop the old EmitPCRelSymbolValue method. This also make getExprForFDESymbol on ELF equal to the one on MachO, and it can be made non-virtual. llvm-svn: 130634
* Add the getExprForFDESymbol method that responsible for computing theRafael Espindola2011-04-281-0/+6
| | | | | | expressions used in the FDE to refer to symbols. llvm-svn: 130437
* Add a getExprForPersonalitySymbol method to MCAsmInfo. Use it whenRafael Espindola2011-04-281-0/+8
| | | | | | converting the symbol passed to .cfi_personality into bytes is the file. llvm-svn: 130400
* Clean up assembly statement separator support.Jim Grosbach2011-03-241-1/+1
| | | | | | | | The MC asm lexer wasn't honoring a non-default (anything but ';') statement separator. Fix that, and generalize a bit to support multi-character statement separators. llvm-svn: 128227
* Omit private_extern declarations of extern symbols; followup toStuart Hastings2011-02-231-0/+1
| | | | | | r124468. Patch by Rafael Avila de Espindola! llvm-svn: 126297
* Rename NeedsSetToChangeDiffSize to HasAggressiveSymbolFolding which is a muchRafael Espindola2010-12-221-1/+1
| | | | | | better name and matches what is used in the MachO writer. llvm-svn: 122443
* There are two reasons why we might want to useRafael Espindola2010-12-041-0/+1
| | | | | | | | | | | | | | | | foo = a - b .long foo instead of just .long a - b First, on darwin9 64 bits the assembler produces the wrong result. Second, if "a" is the end of the section all darwin assemblers (9, 10 and mc) will not consider a - b to be a constant but will if the dummy foo is created. Split how we handle these cases. The first one is something MC should take care of. The second one has to be handled by the caller. llvm-svn: 120889
* Next step: Only pad debug_line when the target is darwin. Add a FIXME to avoidRafael Espindola2010-12-041-0/+1
| | | | | | | | | | | doing that if the target is darwin10 or newer. This fixes *) Direct object emission was producing objects without the workaround on darwin9. *) Assembly printing was producing objects with the workaround on linux. llvm-svn: 120866
* Merge System into Support.Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120298
* Added support for the Mach-O .symbol_resolver directive. rdar://8673046Kevin Enderby2010-11-191-0/+1
| | | | llvm-svn: 119816
* Change CodeGen to use .loc directives. This produces a lot more readable outputRafael Espindola2010-11-181-1/+0
| | | | | | | | and testing is easier. A good example is the unknown-location.ll test that now can just look for ".loc 1 0 0". We also don't use a DW_LNE_set_address for every address change anymore. llvm-svn: 119613
* allow target-specific label suffixes, patch by Yuri Gribov!Chris Lattner2010-09-221-0/+1
| | | | llvm-svn: 114592
* Fix .debug_range for linux. Patch by Krister Wombell.Devang Patel2010-09-021-0/+1
| | | | llvm-svn: 112830
* Use absolute label for DW_AT_stmt_list if a target does not prefer offset here.Devang Patel2010-08-311-0/+1
| | | | | | This patch was developed on top of original patch by Artur Pietrek. llvm-svn: 112678
* Revert some unneeded parts of the change in r107886 for theKevin Enderby2010-07-081-1/+0
| | | | | | | | | .weak_def_can_be_hidden directive. Chris pointed out that the MCAsmInfo.h/.cpp chunks aren't needed for this until the compiler starts generating these. And when that happens it will be more convenient for it to be a bool than a const char*. llvm-svn: 107906
* Added the darwin .weak_def_can_be_hidden directive.Kevin Enderby2010-07-081-0/+1
| | | | llvm-svn: 107886
* Revert r107205 and r107207.Bill Wendling2010-06-291-1/+0
| | | | llvm-svn: 107215
* Introducing the "linker_weak" linkage type. This will be used for Objective-CBill Wendling2010-06-291-0/+1
| | | | | | | | | | | | | | | | | | | metadata types which should be marked as "weak", but which the linker will remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". llvm-svn: 107205
* Partial code for emitting thread local bss data.Eric Christopher2010-05-201-0/+1
| | | | llvm-svn: 104197
* Add support for assemblers that don't support periods in a nameMon P Wang2010-04-291-0/+1
| | | | llvm-svn: 102594
* eliminate the magic AbsoluteDebugSectionOffsets MAI hook,Chris Lattner2010-04-041-1/+0
| | | | | | | | | which is really a property of the section being referenced. Add a predicate to MCSection to replace it. Yay for reduction in magic. llvm-svn: 100367
* isAbsoluteEHSectionOffsets always returns false, eliminate it Chris Lattner2010-04-041-1/+0
| | | | | | and substitute false at the one call site. llvm-svn: 100354
* move fastcall/stdcall mangling up into Mangler.Chris Lattner2010-03-121-0/+1
| | | | llvm-svn: 98384
* move three lowering hooks from MAI to TLOF and make one of themChris Lattner2010-03-101-3/+0
| | | | | | | semantic instead of syntactic. This completes MCization of darwin/x86[-64]! llvm-svn: 98145
* MC: Change default comment column to 40 characters.Daniel Dunbar2010-02-051-1/+1
| | | | llvm-svn: 95378
* Eliminate SetDirective, and replace it with HasSetDirective.Chris Lattner2010-01-261-1/+1
| | | | | | | | | | | Default HasSetDirective to true, since most targets have it. The targets that claim to not have it probably do, or it is spelled differently. These include Blackfin, Mips, Alpha, and PIC16. All of these except pic16 are normal ELF targets, so they almost certainly have it. llvm-svn: 94585
* Emit .comm alignment in bytes but .align in powers of 2 for ARM ELF.Rafael Espindola2010-01-261-0/+1
| | | | | | Original patch by Sandeep Patel and updated by me. llvm-svn: 94582
* eliminate MCAsmInfo::NeedsSet: we now just use .set on any platformChris Lattner2010-01-261-1/+0
| | | | | | that has it. llvm-svn: 94581
* rename MAI::PICJumpTableDirective to MAI::GPRel32Directive toChris Lattner2010-01-251-1/+1
| | | | | | make it clear what it is, instead of how it is used. llvm-svn: 94448
* remove JumpTableDirective, it is always null.Chris Lattner2010-01-251-1/+0
| | | | llvm-svn: 94445
* all supported target now have aligned common support.Chris Lattner2010-01-251-1/+0
| | | | llvm-svn: 94413
* mcize lcomm, simplify .comm, extend both to support 64-bit sizes.Chris Lattner2010-01-231-2/+1
| | | | llvm-svn: 94299
* resolve a fixme: the "nonexecutable stack directive" is actuallyChris Lattner2010-01-231-1/+1
| | | | | | | | | a .section. Switch to it with SwitchSection. However, I think that this directive should be safe on any ELF target. If so, we should hoist it up out of the X86 and SystemZ targets. llvm-svn: 94298
* mcize visibility directives.Chris Lattner2010-01-231-3/+2
| | | | llvm-svn: 94295
* mcstreamerize .no_dead_strip and .reference for static ctors/dtors.Chris Lattner2010-01-231-1/+1
| | | | llvm-svn: 94290
* revert 93934, removing the MCAsmInfo endianness bit. I can'tChris Lattner2010-01-201-2/+1
| | | | | | | stomache MCAsmInfo having this, and I found a better solution to this layering issue. llvm-svn: 93985
* give MCAsmInfo a 'has little endian' bit. This is unfortunate, butChris Lattner2010-01-191-1/+2
| | | | | | | | | I really want clients of the streamer to be able to say "emit this 64-bit integer" and have it get broken down right by the streamer. I may change this in the future, we'll see how it works out. llvm-svn: 93934
OpenPOWER on IntegriCloud