summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCStreamer.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Turns out GAS does have Win64 EH directives. (It also supports WinCE EH.) MakeCharles Davis2011-05-191-22/+22
| | | | | | | | | ours compatible with GAS. In retrospect, I should have emailed binutils about this earlier. Thanks to Kai Tietz for pointing out that GAS already had SEH directives. llvm-svn: 131652
* Implement the StartChained and EndChained Win64 EH methods on MCStreamer.Charles Davis2011-05-191-13/+23
| | | | llvm-svn: 131629
* Implement the StartProc and EndProc Win64 EH methods on the base MCStreamer.Charles Davis2011-05-191-8/+29
| | | | | | Based largely on Rafael Espindola's work on CFI. Other methods soon to follow. llvm-svn: 131623
* Add some more Win64 EH directives:Charles Davis2011-05-181-0/+24
| | | | | | | | | | | | | - StartChained and EndChained delimit a chained unwind area, which can contain additional operations to be undone if an exception occurs inside of it. - UnwindOnly declares that this function doesn't handle any exceptions. If it has a handler, it's an unwind handler instead of an exception handler. - Lsda declares the location and size of the LSDA, which in the Win64 EH scheme is kept inside the UNWIND_INFO struct. Windows itself ignores the LSDA; it's used by the Language-Specific Handler (the "Personality Function" from DWARF). llvm-svn: 131572
* While thinking about how to know where the functions' boundaries are forCharles Davis2011-05-181-2/+8
| | | | | | | | | the purposes of the Win64 EH tables, I realized we had no way to tell where the function ends. (MASM bounds functions with PROC and ENDP keywords.) Add a directive to delimit the end of the function, and rename the 'frame' directive to more accurately reflect its duality with the new directive. llvm-svn: 131522
* Add a method I forgot in the last commit. Don't worry, this one passedCharles Davis2011-05-161-0/+6
| | | | | | self-host :). llvm-svn: 131421
* Fix copy-pasto.Charles Davis2011-05-151-1/+1
| | | | llvm-svn: 131384
* Add stub methods to MCStreamer for emitting Win64 exception-handlingCharles Davis2011-05-151-0/+36
| | | | | | information. llvm-svn: 131382
* Add CFIStartSections to the asm printer. Add an assert that at leastRafael Espindola2011-05-101-0/+1
| | | | | | one of the sections is created. llvm-svn: 131124
* Add support for producing .deubg_frame sections.Rafael Espindola2011-05-101-1/+4
| | | | llvm-svn: 131121
* Factor some code into a new EmitFrames method.Rafael Espindola2011-05-101-0/+8
| | | | llvm-svn: 131119
* Parsing and plumbing for .cfi_sections.Rafael Espindola2011-05-101-1/+7
| | | | llvm-svn: 131117
* Simplify the handling of pcrel relocations on ELF. Now we do the right thingRafael Espindola2011-05-011-18/+3
| | | | | | | | | | 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
* Implement MCAsmStreamer::EmitDwarfAdvanceFrameAddr.Rafael Espindola2011-04-301-0/+23
| | | | llvm-svn: 130585
* Mark the EH symbol global or weak if the corresponding function is.Rafael Espindola2011-04-281-0/+4
| | | | llvm-svn: 130397
* Factor a bit of code to MCStreamer::EmitLabel. Keep track of the lastRafael Espindola2011-04-271-0/+12
| | | | | | | | | | | | non private symbol. This will be use for handling foo: .cfi_startproc ... On OS X where we have to create a foo.eh symbol. llvm-svn: 130305
* Reduce clutter in asm output. Do not emit source location as comment for ↵Devang Patel2011-04-181-1/+2
| | | | | | each instruction. llvm-svn: 129715
* Be consistent about being virtual and returning void in the cfi methods.Rafael Espindola2011-04-121-23/+11
| | | | | | Implement the ones that were missing in the asm streamer. llvm-svn: 129413
* Remove LastOffset from the asm parser.Rafael Espindola2011-04-121-0/+11
| | | | llvm-svn: 129378
* Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.Rafael Espindola2011-04-121-0/+11
| | | | llvm-svn: 129362
* Implement .cfi_same_value.Rafael Espindola2011-04-121-0/+9
| | | | llvm-svn: 129361
* Preliminary support for ARM frame save directives emission via MI flags.Anton Korobeynikov2011-03-051-0/+15
| | | | | | | This is just very first approximation how the stuff should be done (e.g. ARM-only for now). More to follow. llvm-svn: 127101
* Some first rudimentary support for ARM EHABI: print exception table in "text ↵Anton Korobeynikov2011-03-051-0/+25
| | | | | | mode". llvm-svn: 127099
* Use a vector of pairs to implement the section stack, not twoJoerg Sonnenberger2011-02-211-2/+2
| | | | | | independent vectors. llvm-svn: 126099
* Add support for pushsection and popsection. Patch by Joerg Sonnenberger.Rafael Espindola2011-02-161-2/+3
| | | | llvm-svn: 125629
* Remove second return.Rafael Espindola2010-12-291-1/+0
| | | | llvm-svn: 122616
* Implement cfi_def_cfa. Also don't convert to dwarf reg numbers twice. LooksRafael Espindola2010-12-291-0/+12
| | | | | | like 6 is a fixed point of that and so the previous tests were OK :-) llvm-svn: 122614
* Implement cfi_def_cfa_register.Rafael Espindola2010-12-291-0/+8
| | | | llvm-svn: 122612
* Initial .cfi_offset implementation.Rafael Espindola2010-12-291-0/+7
| | | | llvm-svn: 122611
* Implement .cfi_remember_state and .cfi_restore_state.Rafael Espindola2010-12-281-2/+23
| | | | llvm-svn: 122602
* Start adding basic support for emitting the call frame instructions.Rafael Espindola2010-12-281-1/+8
| | | | llvm-svn: 122590
* Add support for .cfi_lsda.Rafael Espindola2010-12-271-2/+3
| | | | llvm-svn: 122584
* Add support for the same encodings of the personality function that gnu asRafael Espindola2010-12-271-1/+3
| | | | | | supports. llvm-svn: 122577
* 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
* Better fix for opt buildMatt Beaumont-Gay2010-12-151-3/+2
| | | | llvm-svn: 121910
* Fix opt -Werror buildMatt Beaumont-Gay2010-12-151-0/+1
| | | | llvm-svn: 121904
* Generalize an assert.Rafael Espindola2010-12-151-1/+2
| | | | llvm-svn: 121851
* Fixed version of 121434 with no new memory leaks.Rafael Espindola2010-12-101-1/+57
| | | | llvm-svn: 121471
* Revert my previous patch to make the valgrind bots happy.Rafael Espindola2010-12-101-57/+1
| | | | llvm-svn: 121461
* Initial support for the cfi directives. This is just enough to getRafael Espindola2010-12-091-1/+57
| | | | | | | | | | | f: .cfi_startproc nop .cfi_endproc assembled (on ELF). llvm-svn: 121434
* Add assert to catch an attempt to emit .byte 256Devang Patel2010-12-091-1/+2
| | | | llvm-svn: 121402
* Second try at making direct object emission produce the same resultsRafael Espindola2010-12-061-0/+12
| | | | | | | 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-6/+0
| | | | | | 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-0/+6
| | | | | | | that no relocations are used (on MochO). Fixes llc producing different output from llc + llvm-mc. llvm-svn: 121000
* Make EmitIntValue more efficient and more like what we do for leb128. TheRafael Espindola2010-12-031-1/+6
| | | | | | difference is much smaller (about 0.3s) but significant. llvm-svn: 120787
* Do with uleb the same trick we now do with dwarf line/address advances. ThisRafael Espindola2010-12-031-2/+8
| | | | | | avoids creating leb128 fragments and speeds up the test in PR8711 to 33s. llvm-svn: 120774
* Try to resolve symbol differences early, and if successful create a plainRafael Espindola2010-12-031-0/+11
| | | | | | | data fragment. This reduces the time to assemble the test in 8711 from 60s to 54s. llvm-svn: 120767
* Avoid code duplication in the many unsupported EmitGPRel32Value implementations.Rafael Espindola2010-11-281-0/+4
| | | | llvm-svn: 120243
* Add basic CFI methods to the streamer interface.Rafael Espindola2010-11-221-0/+28
| | | | llvm-svn: 119972
* Add .loc methods to the streamer.Rafael Espindola2010-11-161-0/+14
| | | | | | | Next: Add support for the !HasDotLocAndDotFile case to the MCAsmStreamer and then switch codegen to use it. llvm-svn: 119384
OpenPOWER on IntegriCloud