aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86MCAsmInfo.cpp
AgeCommit message (Collapse)Author
2011-07-14Rename createAsmInfo to createMCAsmInfo and move registration code to ↵Evan Cheng
MCTargetDesc to prepare for next round of changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135219 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07Handle fpcr register.Eric Christopher
Part of PR10299 and rdar://9740322 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134653 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-06Dead code elimination.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130984 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-01Add r130623 back now that ELF has been fixed to work with -fno-dwarf2-cfi-asm.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130658 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-01I forgot these files in the previous commit.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130635 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-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-15Add 129518 back with a fix for when we are producing eh just because of ↵Rafael Espindola
debug info. Change ELF systems to use CFI for producing the EH tables. This reduces the size of the clang binary in Debug builds from 690MB to 679MB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129571 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15Revert r129518, "Change ELF systems to use CFI for producing the EH tables. ↵NAKAMURA Takumi
This reduces the" It broke several builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129557 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-14Change ELF systems to use CFI for producing the EH tables. This reduces theRafael Espindola
size of the clang binary in Debug builds from 690MB to 679MB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129518 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-25Roll out r126425 and r126450 to see if it fixes the failures on the buildbots.Cameron Zwarich
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126488 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-24Enable DebugInfo support for COFF object files.Devang Patel
Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126425 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-23Remove duplicated code.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124054 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14Add a possibility to switch between CFI directives- and table-based frame ↵Anton Korobeynikov
description emission. Currently all the backends use table-based stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123476 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-07lib/Target/X86/X86MCAsmInfo.cpp: [PR8741] On Win64, specify explicit ↵NAKAMURA Takumi
PrivateGlobalPrefix as ".L". Or, global symbols @Lxxxx might be treated as temporal symbol by MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121103 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-06Second try at making direct object emission produce the same resultsRafael Espindola
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121006 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04There are two reasons why we might want to useRafael Espindola
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120889 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Revert r120580.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120630 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Disable debug info for x86-darwin9 and earlier until PR 8715 and radar ↵Devang Patel
8709290 are fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120580 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11Remove some explicit arguments to getELFSection. This isRafael Espindola
a leftover from the removal of isExplicit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118774 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-21MC: Add partial x86-64 support to COFF.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111728 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08move elf section uniquing to MCContext. Along the wayChris Lattner
merge XCore's section into MCSectionELF git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100812 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-04eliminate the magic AbsoluteDebugSectionOffsets MAI hook,Chris Lattner
which is really a property of the section being referenced. Add a predicate to MCSection to replace it. Yay for reduction in magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100367 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Work around a bug in the openbsd assembler on i386,Chris Lattner
which doesn't support .quad correctly because it is "really really old". PR6528. Yet another reason the mc assembler should take over ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98205 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-08don't reset defaults.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98004 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Fix TextAlignFillValue in a few placesDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17daniel remembered why this was needed.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96440 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17add a comment explaining why darwin/i386 uses ## as a comment.Chris Lattner
It's not clear why this is really required, but it was explicitly added in r48808 with no real explanation or rdar #. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96438 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Minor warning fixes (semicolons, newline at EOF).Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96343 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Drop winmcasminfo and use normal AT&T COFF for all windows targets.Anton Korobeynikov
Otherwise AT&T asm printer is used with non-compatible MCAsmInfo and there is no way to override this behaviour. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96165 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Eliminate SetDirective, and replace it with HasSetDirective.Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94585 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Remove support for i386 tiger tools for aligned common symbols.Chris Lattner
Previously we would just silently miscompile code that used aligned common's, now at least you'll get a build error. tiger-ppc already triggered the build error because it didn't have a version of this logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94412 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23resolve a fixme: the "nonexecutable stack directive" is actuallyChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94298 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20revert 93934, removing the MCAsmInfo endianness bit. I can'tChris Lattner
stomache MCAsmInfo having this, and I found a better solution to this layering issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93985 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-19give MCAsmInfo a 'has little endian' bit. This is unfortunate, butChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93934 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-19remove MAI::ZeroDirectiveSuffix, which is only used by MASM,Chris Lattner
which we don't support anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93886 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16Big change #1 for personality function references:Chris Lattner
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding fields from MAI: they aren't part of the asm syntax, they are related to the structure of the object file. To replace their functionality, add a new TLOF::getSymbolForDwarfGlobalReference method which asks targets to decide how to reference a global from EH in a pc-relative way. The default implementation just returns the symbol. The default darwin implementation references the symbol through an indirect $non_lazy_ptr stub. The bizarro x86-64 darwin specialization handles the weird "foo@GOTPCREL+4" hack. DwarfException.cpp now uses this to emit the reference to the symbol in the right way, and this also eliminates another horrible hack from DwarfException.cpp: - if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL")) - O << "-" << MAI->getPCSymbol(); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81991 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22rename COFFMCAsmInfo -> MCAsmInfoCOFF, likewise for darwin.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8