summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDwarf.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Avoid some uses of .uleb128. This is a small speedup and more importantlyRafael Espindola2011-04-291-17/+22
| | | | | | | lets this code be used when producing assembly code for old assemblers without uleb support. llvm-svn: 130544
* Last bit by bit compatibility patch to MCDwarf.cpp: If a FDE with no LSDA isRafael Espindola2011-04-291-5/+20
| | | | | | assigned to a CIE that requires one, just output a 0. llvm-svn: 130472
* Add an alternative implementation of CIE and FDE emission that outputs themRafael Espindola2011-04-291-0/+58
| | | | | | in the same order as the one in CodeGen. llvm-svn: 130471
* Add the getExprForFDESymbol method that responsible for computing theRafael Espindola2011-04-281-12/+9
| | | | | | expressions used in the FDE to refer to symbols. llvm-svn: 130437
* Add a getExprForPersonalitySymbol method to MCAsmInfo. Use it whenRafael Espindola2011-04-281-1/+14
| | | | | | converting the symbol passed to .cfi_personality into bytes is the file. llvm-svn: 130400
* Mark the EH symbol global or weak if the corresponding function is.Rafael Espindola2011-04-281-0/+1
| | | | llvm-svn: 130397
* Add a small temporary hack for producing identical eh_frame sections on OS X.Rafael Espindola2011-04-281-5/+12
| | | | | | | This removes one of the main advantages of moving eh_frame to MC, but makes the transition a lot easier to debug (run md5). llvm-svn: 130379
* Produce the EH_frame# symbols if needed.Rafael Espindola2011-04-281-2/+11
| | | | llvm-svn: 130378
* Forward isFunctionEHFrameSymbolPrivate. If it is false, produce the foo.ehRafael Espindola2011-04-281-0/+7
| | | | | | symbols. llvm-svn: 130375
* Force some values to be absolute and align based on the FDE pointers size. A ↵Rafael Espindola2011-04-271-6/+6
| | | | | | | | small step towards using .cfi_* on OS X. llvm-svn: 130273
* Delete the other unused variable in this function. Sorry I missed thisChandler Carruth2011-04-221-1/+0
| | | | | | the first time through. llvm-svn: 129969
* Remove an unused variable from a function. This is a likely cut-paste-o.Chandler Carruth2011-04-221-1/+0
| | | | | | | | Silences GCC warning. I wonder why Clang doesn't warn on this... llvm-svn: 129968
* Compute the size of the FDE encoding instead of hard coding it. UpdateRafael Espindola2011-04-221-15/+20
| | | | | | X8664_ELFTargetObjectFile::getFDEEncoding to match reality. llvm-svn: 129959
* Remove unused argument.Rafael Espindola2011-04-211-2/+2
| | | | llvm-svn: 129955
* Don't pass address spaces to EmitULEB128IntValue.Rafael Espindola2011-04-211-3/+3
| | | | llvm-svn: 129953
* Remove LastOffset from the asm parser.Rafael Espindola2011-04-121-2/+6
| | | | llvm-svn: 129378
* Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.Rafael Espindola2011-04-121-71/+103
| | | | llvm-svn: 129362
* Implement .cfi_same_value.Rafael Espindola2011-04-121-0/+6
| | | | llvm-svn: 129361
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-1/+1
| | | | | | and fixes here and there. llvm-svn: 123170
* Make a bunch of symbols internal.Benjamin Kramer2010-12-301-18/+17
| | | | llvm-svn: 122642
* Correctly encode pcrel|indirect.Rafael Espindola2010-12-291-2/+1
| | | | llvm-svn: 122624
* Fix bug when trying to output uint16_t or uint32_t.Rafael Espindola2010-12-291-2/+9
| | | | llvm-svn: 122615
* Implement cfi_def_cfa. Also don't convert to dwarf reg numbers twice. LooksRafael Espindola2010-12-291-14/+25
| | | | | | like 6 is a fixed point of that and so the previous tests were OK :-) llvm-svn: 122614
* Don't produce a "DW_CFA_advance_loc 0".Rafael Espindola2010-12-281-1/+2
| | | | llvm-svn: 122609
* Implement .cfi_remember_state and .cfi_restore_state.Rafael Espindola2010-12-281-42/+68
| | | | llvm-svn: 122602
* Fix warning about size potentially being used uninitializedDuncan Sands2010-12-281-1/+0
| | | | | | when doing a release build. llvm-svn: 122594
* Relax address updates in the eh_frame section.Rafael Espindola2010-12-281-6/+28
| | | | llvm-svn: 122591
* Start adding basic support for emitting the call frame instructions.Rafael Espindola2010-12-281-1/+5
| | | | llvm-svn: 122590
* Add support for .cfi_lsda.Rafael Espindola2010-12-271-45/+114
| | | | llvm-svn: 122584
* Add support for the same encodings of the personality function that gnu asRafael Espindola2010-12-271-6/+45
| | | | | | supports. llvm-svn: 122577
* Fix .cfi_personality on 32 bit systems.Rafael Espindola2010-12-261-1/+1
| | | | llvm-svn: 122570
* Add basic support for .cfi_personality.Rafael Espindola2010-12-261-7/+24
| | | | llvm-svn: 122566
* "Fix" FDE alignment to match what gas does.Rafael Espindola2010-12-171-9/+17
| | | | llvm-svn: 122006
* Fixed version of 121434 with no new memory leaks.Rafael Espindola2010-12-101-12/+198
| | | | llvm-svn: 121471
* Revert my previous patch to make the valgrind bots happy.Rafael Espindola2010-12-101-198/+12
| | | | llvm-svn: 121461
* Initial support for the cfi directives. This is just enough to getRafael Espindola2010-12-091-12/+198
| | | | | | | | | | | f: .cfi_startproc nop .cfi_endproc assembled (on ELF). llvm-svn: 121434
* Use const references.Rafael Espindola2010-12-091-10/+11
| | | | llvm-svn: 121426
* Second try at making direct object emission produce the same resultsRafael Espindola2010-12-061-10/+3
| | | | | | | as llc + llvm-mc. This time ELF is not changed and I tested that llvm-gcc bootstrap on darwin10 using darwin9's assembler and linker. llvm-svn: 121006
* Revert previous two patches while I try to find out how to make bothRafael Espindola2010-12-061-2/+9
| | | | | | linux and darwin assemblers happy :-( llvm-svn: 121004
* Add an EmitAbsValue helper method and use it in cases where we want to be sureRafael Espindola2010-12-061-9/+2
| | | | | | | that no relocations are used (on MochO). Fixes llc producing different output from llc + llvm-mc. llvm-svn: 121000
* Remember the contents of leb and dwarfline fragments when relaxing. This avoidsRafael Espindola2010-12-041-8/+0
| | | | | | having to evaluate the expression again when writing. llvm-svn: 120920
* There are two reasons why we might want to useRafael Espindola2010-12-041-3/+10
| | | | | | | | | | | | | | | | 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-3/+4
| | | | | | | | | | | 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
* First step in fixing MC. Make it clear that we are avoiding a bug in theRafael Espindola2010-12-031-11/+8
| | | | | | | | | | | | | darwin9 linker, what is needed to avoid it and where to get more information. Also make the workaround simpler. Just the regular end_sequence we normally create is more than 4 bytes. Tested by building cctools and ld64 from darwin9 on a darwin10 system and using those. I checked that I was able to reproduce the bootstrap failure when the the workaround was disabled. llvm-svn: 120854
* Try to resolve symbol differences early, and if successful create a plainRafael Espindola2010-12-031-52/+5
| | | | | | | data fragment. This reduces the time to assemble the test in 8711 from 60s to 54s. llvm-svn: 120767
* It may not be an option to skip .debug_line if there are file reference in ↵Devang Patel2010-12-031-1/+19
| | | | | | already emitted debug info. So, for now, emit dummy line table entry to make older linker and assemblers happy. This is not a new behavior, original AsmPrinter emitted similar line table entries. llvm-svn: 120760
* Use set directive for StartMinusEndExpr.Devang Patel2010-12-021-2/+2
| | | | | | This is a fix for llvm-gcc-i386-darwin9 buildbot failure. llvm-svn: 120742
* Remove some #includes.Rafael Espindola2010-11-221-0/+1
| | | | llvm-svn: 119967
* Add a MCLineSectionOrder vector so that we produce the line tables in aRafael Espindola2010-11-191-10/+15
| | | | | | deterministic order. llvm-svn: 119795
* Change some methods in MCDwarf.cpp to be able to handle an arbitraryRafael Espindola2010-11-191-24/+35
| | | | | | | | | | | | MCStreamer instead of just MCObjectStreamer. Address changes cannot be as efficient as we have to use DW_LNE_set_addres, but at least most of the logic is shared. This will be used so that, with CodeGen still using EmitDwarfLocDirective, llvm-gcc is able to produce debug_line sections without needing an assembler that supports .loc. llvm-svn: 119777
OpenPOWER on IntegriCloud