Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Turns out GAS does have Win64 EH directives. (It also supports WinCE EH.) Make | Charles Davis | 2011-05-19 | 1 | -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 Davis | 2011-05-19 | 1 | -13/+23 | |
| | | | | llvm-svn: 131629 | |||||
* | Implement the StartProc and EndProc Win64 EH methods on the base MCStreamer. | Charles Davis | 2011-05-19 | 1 | -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 Davis | 2011-05-18 | 1 | -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 for | Charles Davis | 2011-05-18 | 1 | -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 passed | Charles Davis | 2011-05-16 | 1 | -0/+6 | |
| | | | | | | self-host :). llvm-svn: 131421 | |||||
* | Fix copy-pasto. | Charles Davis | 2011-05-15 | 1 | -1/+1 | |
| | | | | llvm-svn: 131384 | |||||
* | Add stub methods to MCStreamer for emitting Win64 exception-handling | Charles Davis | 2011-05-15 | 1 | -0/+36 | |
| | | | | | | information. llvm-svn: 131382 | |||||
* | Add CFIStartSections to the asm printer. Add an assert that at least | Rafael Espindola | 2011-05-10 | 1 | -0/+1 | |
| | | | | | | one of the sections is created. llvm-svn: 131124 | |||||
* | Add support for producing .deubg_frame sections. | Rafael Espindola | 2011-05-10 | 1 | -1/+4 | |
| | | | | llvm-svn: 131121 | |||||
* | Factor some code into a new EmitFrames method. | Rafael Espindola | 2011-05-10 | 1 | -0/+8 | |
| | | | | llvm-svn: 131119 | |||||
* | Parsing and plumbing for .cfi_sections. | Rafael Espindola | 2011-05-10 | 1 | -1/+7 | |
| | | | | llvm-svn: 131117 | |||||
* | Simplify the handling of pcrel relocations on ELF. Now we do the right thing | Rafael Espindola | 2011-05-01 | 1 | -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 Espindola | 2011-04-30 | 1 | -0/+23 | |
| | | | | llvm-svn: 130585 | |||||
* | Mark the EH symbol global or weak if the corresponding function is. | Rafael Espindola | 2011-04-28 | 1 | -0/+4 | |
| | | | | llvm-svn: 130397 | |||||
* | Factor a bit of code to MCStreamer::EmitLabel. Keep track of the last | Rafael Espindola | 2011-04-27 | 1 | -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 Patel | 2011-04-18 | 1 | -1/+2 | |
| | | | | | | each instruction. llvm-svn: 129715 | |||||
* | Be consistent about being virtual and returning void in the cfi methods. | Rafael Espindola | 2011-04-12 | 1 | -23/+11 | |
| | | | | | | Implement the ones that were missing in the asm streamer. llvm-svn: 129413 | |||||
* | Remove LastOffset from the asm parser. | Rafael Espindola | 2011-04-12 | 1 | -0/+11 | |
| | | | | llvm-svn: 129378 | |||||
* | Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset. | Rafael Espindola | 2011-04-12 | 1 | -0/+11 | |
| | | | | llvm-svn: 129362 | |||||
* | Implement .cfi_same_value. | Rafael Espindola | 2011-04-12 | 1 | -0/+9 | |
| | | | | llvm-svn: 129361 | |||||
* | Preliminary support for ARM frame save directives emission via MI flags. | Anton Korobeynikov | 2011-03-05 | 1 | -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 Korobeynikov | 2011-03-05 | 1 | -0/+25 | |
| | | | | | | mode". llvm-svn: 127099 | |||||
* | Use a vector of pairs to implement the section stack, not two | Joerg Sonnenberger | 2011-02-21 | 1 | -2/+2 | |
| | | | | | | independent vectors. llvm-svn: 126099 | |||||
* | Add support for pushsection and popsection. Patch by Joerg Sonnenberger. | Rafael Espindola | 2011-02-16 | 1 | -2/+3 | |
| | | | | llvm-svn: 125629 | |||||
* | Remove second return. | Rafael Espindola | 2010-12-29 | 1 | -1/+0 | |
| | | | | llvm-svn: 122616 | |||||
* | Implement cfi_def_cfa. Also don't convert to dwarf reg numbers twice. Looks | Rafael Espindola | 2010-12-29 | 1 | -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 Espindola | 2010-12-29 | 1 | -0/+8 | |
| | | | | llvm-svn: 122612 | |||||
* | Initial .cfi_offset implementation. | Rafael Espindola | 2010-12-29 | 1 | -0/+7 | |
| | | | | llvm-svn: 122611 | |||||
* | Implement .cfi_remember_state and .cfi_restore_state. | Rafael Espindola | 2010-12-28 | 1 | -2/+23 | |
| | | | | llvm-svn: 122602 | |||||
* | Start adding basic support for emitting the call frame instructions. | Rafael Espindola | 2010-12-28 | 1 | -1/+8 | |
| | | | | llvm-svn: 122590 | |||||
* | Add support for .cfi_lsda. | Rafael Espindola | 2010-12-27 | 1 | -2/+3 | |
| | | | | llvm-svn: 122584 | |||||
* | Add support for the same encodings of the personality function that gnu as | Rafael Espindola | 2010-12-27 | 1 | -1/+3 | |
| | | | | | | supports. llvm-svn: 122577 | |||||
* | Rename NeedsSetToChangeDiffSize to HasAggressiveSymbolFolding which is a much | Rafael Espindola | 2010-12-22 | 1 | -1/+1 | |
| | | | | | | better name and matches what is used in the MachO writer. llvm-svn: 122443 | |||||
* | Better fix for opt build | Matt Beaumont-Gay | 2010-12-15 | 1 | -3/+2 | |
| | | | | llvm-svn: 121910 | |||||
* | Fix opt -Werror build | Matt Beaumont-Gay | 2010-12-15 | 1 | -0/+1 | |
| | | | | llvm-svn: 121904 | |||||
* | Generalize an assert. | Rafael Espindola | 2010-12-15 | 1 | -1/+2 | |
| | | | | llvm-svn: 121851 | |||||
* | Fixed version of 121434 with no new memory leaks. | Rafael Espindola | 2010-12-10 | 1 | -1/+57 | |
| | | | | llvm-svn: 121471 | |||||
* | Revert my previous patch to make the valgrind bots happy. | Rafael Espindola | 2010-12-10 | 1 | -57/+1 | |
| | | | | llvm-svn: 121461 | |||||
* | Initial support for the cfi directives. This is just enough to get | Rafael Espindola | 2010-12-09 | 1 | -1/+57 | |
| | | | | | | | | | | | f: .cfi_startproc nop .cfi_endproc assembled (on ELF). llvm-svn: 121434 | |||||
* | Add assert to catch an attempt to emit .byte 256 | Devang Patel | 2010-12-09 | 1 | -1/+2 | |
| | | | | llvm-svn: 121402 | |||||
* | Second try at making direct object emission produce the same results | Rafael Espindola | 2010-12-06 | 1 | -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 both | Rafael Espindola | 2010-12-06 | 1 | -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 sure | Rafael Espindola | 2010-12-06 | 1 | -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. The | Rafael Espindola | 2010-12-03 | 1 | -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. This | Rafael Espindola | 2010-12-03 | 1 | -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 plain | Rafael Espindola | 2010-12-03 | 1 | -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 Espindola | 2010-11-28 | 1 | -0/+4 | |
| | | | | llvm-svn: 120243 | |||||
* | Add basic CFI methods to the streamer interface. | Rafael Espindola | 2010-11-22 | 1 | -0/+28 | |
| | | | | llvm-svn: 119972 | |||||
* | Add .loc methods to the streamer. | Rafael Espindola | 2010-11-16 | 1 | -0/+14 | |
| | | | | | | | Next: Add support for the !HasDotLocAndDotFile case to the MCAsmStreamer and then switch codegen to use it. llvm-svn: 119384 |