aboutsummaryrefslogtreecommitdiff
path: root/lib/MC
AgeCommit message (Collapse)Author
2011-05-01GCC uses a different encoding of pointers in the FDE when usingRafael Espindola
-fno-dwarf2-cfi-asm. Implement the same behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130637 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-01Simplify the handling of pcrel relocations on ELF. Now we do the right thingRafael Espindola
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130634 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Revert the previous patch while I figure out how to make llvm-gccRafael Espindola
less agressive about disabling cfi on linux :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130626 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Enable CFI on OS X.Rafael Espindola
Currently the output should be almost identical to the one produced by CodeGen to make the transition easier. The only two differences I know of are: * Some files get an extra advance loc of size 0. This will be fixed when relaxations are enabled. * The optimization of declaring an EH symbol as an external variable is not implemented. This is a subset of adding the nounwind attribute, so we if really this at -O0 we should probably do it at the IL level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130623 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Implement MCAsmStreamer::EmitEHSymAttributes. Doing this in the asm streamerRafael Espindola
is a bit ugly, but doing it on the base MCStreamer would be redundant with the object streamer which does it using SD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Handle PrivateExtern eh symbols.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130609 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Add all the plumbing needed for MC to expand cfi to the old tables inRafael Espindola
the final assembly. It is the same technique used when targeting assemblers that don't support .loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130587 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Implement MCAsmStreamer::EmitDwarfAdvanceFrameAddr.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130585 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Avoid some uses of .uleb128. This is a small speedup and more importantlyRafael Espindola
lets this code be used when producing assembly code for old assemblers without uleb support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Implement MCAsmStreamer::EmitCFIDefCfa.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130543 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29MCAsmLayout: Add support for computing the symbol offset of variables. NotDaniel Dunbar
currently used, because variables don't get reported as being "defined". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130524 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29MC: Change variable symbols to be recognized as defined, by assigning their ↵Daniel Dunbar
sections based on FindAssociatedSection(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130523 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29MC/Mach-O: Update getSymbolAddress() to support evaluation of variables.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130522 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29MC/Mach-O: Allow emission of relocations for variables in some more cases.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130520 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29MC/Mach-O: Find section ordinal's by looking at the symbol, instead of ↵Daniel Dunbar
assuming they are present in a fragment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130519 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Hoist MCLineEntry construction AsmPrinter so that anyone who derives from ↵Devang Patel
AsmPrinter can have line number entries. PR 9810 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130518 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29MCExpr: Add FindAssociatedSection, which attempts to mirror the 'as' semanticsDaniel Dunbar
that associate sections with expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130517 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29MC/AsmParser: Generalize a check.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130515 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Last bit by bit compatibility patch to MCDwarf.cpp: If a FDE with no LSDA isRafael Espindola
assigned to a CIE that requires one, just output a 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130472 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Add an alternative implementation of CIE and FDE emission that outputs themRafael Espindola
in the same order as the one in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130471 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Add the getExprForFDESymbol method that responsible for computing theRafael Espindola
expressions used in the FDE to refer to symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130437 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Add a getExprForPersonalitySymbol method to MCAsmInfo. Use it whenRafael Espindola
converting the symbol passed to .cfi_personality into bytes is the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130400 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Mark the EH symbol global or weak if the corresponding function is.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130397 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Add a small temporary hack for producing identical eh_frame sections on OS X.Rafael Espindola
This removes one of the main advantages of moving eh_frame to MC, but makes the transition a lot easier to debug (run md5). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130379 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Produce the EH_frame# symbols if needed.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130378 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Forward isFunctionEHFrameSymbolPrivate. If it is false, produce the foo.ehRafael Espindola
symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130375 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-27Factor a bit of code to MCStreamer::EmitLabel. Keep track of the lastRafael Espindola
non private symbol. This will be use for handling foo: .cfi_startproc ... On OS X where we have to create a foo.eh symbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130305 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-27Force some values to be absolute and align based on the FDE pointers size. A ↵Rafael Espindola
small step towards using .cfi_* on OS X. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130273 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26No relocation produces a SLEB or ULEB, make sure they are handled in MC.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130181 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24Give MC/MCDisassembler/Disassembler.h a header guard.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130096 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-23Remove unused STL header includes.Jay Foad
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-22Delete the other unused variable in this function. Sorry I missed thisChandler Carruth
the first time through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129969 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-22Remove an unused variable from a function. This is a likely cut-paste-o.Chandler Carruth
Silences GCC warning. I wonder why Clang doesn't warn on this... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129968 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-22Compute the size of the FDE encoding instead of hard coding it. UpdateRafael Espindola
X8664_ELFTargetObjectFile::getFDEEncoding to match reality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129959 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-21Remove unused argument.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129955 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-21Don't pass address spaces to EmitULEB128IntValue.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129953 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-21Fix relative relocations. This is sufficient for running the rust testsuite withRafael Espindola
MC :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129923 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-20Behave like gnu as when a relocation crosses sections.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129850 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-20Made the MC disassembler check before accessingSean Callanan
MCInst operands for ARM. This allows it to be more tolerant of malformed MCInsts or incorrect instruction metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129840 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18malloc elimination: it's a bad idea to use raw_svector_ostream on aEli Friedman
small heap-allocated SmallString because it unconditionally forces a malloc. (Revised version of r129688, with the necessary flush() call.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129716 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18Reduce clutter in asm output. Do not emit source location as comment for ↵Devang Patel
each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129715 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18Revert r129688; it's breaking buildbots.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129689 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18More malloc elimination: it's a bad idea to use raw_svector_ostream on aEli Friedman
small heap-allocated SmallString because it unconditionally forces a malloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129688 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18Make the StringMaps attached to MCContext use the MCContext's allocator; Eli Friedman
reduces the number of calls to malloc(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129687 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15Fix a ton of comment typos found by codespell. Patch byChris Lattner
Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-12Be consistent about being virtual and returning void in the cfi methods.Rafael Espindola
Implement the ones that were missing in the asm streamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129413 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-12Remove LastOffset from the asm parser.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129378 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-12Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129362 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-12Implement .cfi_same_value.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129361 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-12Match case for invalid constant error messages and add a newEric Christopher
test for invalid hexadecimals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129326 91177308-0d34-0410-b5e6-96231b3b80d8