summaryrefslogtreecommitdiffstats
path: root/lib/MC
Commit message (Collapse)AuthorAgeFilesLines
* use EmitLinkage for functions as well as globals. One outputChris Lattner2010-01-261-1/+1
| | | | | | | | | | change is that we now use ".linkonce discard" for global variables instead of ".linkonce samesize". These should be the same, just less strict. If anyone is interested in mcizing MCSection for COFF targets, this should be easy to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94623 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate SetDirective, and replace it with HasSetDirective.Chris Lattner2010-01-263-3/+1
| | | | | | | | | | | | | 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
* Emit .comm alignment in bytes but .align in powers of 2 for ARM ELF.Rafael Espindola2010-01-264-2/+4
| | | | | | | | Original patch by Sandeep Patel and updated by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94582 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate MCAsmInfo::NeedsSet: we now just use .set on any platformChris Lattner2010-01-262-2/+0
| | | | | | | that has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94581 91177308-0d34-0410-b5e6-96231b3b80d8
* mcstreamerize gprel32 emission.Chris Lattner2010-01-253-12/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94452 91177308-0d34-0410-b5e6-96231b3b80d8
* rename MAI::PICJumpTableDirective to MAI::GPRel32Directive toChris Lattner2010-01-251-1/+1
| | | | | | | make it clear what it is, instead of how it is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94448 91177308-0d34-0410-b5e6-96231b3b80d8
* remove JumpTableDirective, it is always null.Chris Lattner2010-01-251-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94445 91177308-0d34-0410-b5e6-96231b3b80d8
* wirte up .file and .file to the mc asmparser.Chris Lattner2010-01-251-3/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94438 91177308-0d34-0410-b5e6-96231b3b80d8
* mcstreamerize .file and .file. This also fixes an issue where theChris Lattner2010-01-253-30/+66
| | | | | | | | normal form of .file would fail if the filename had a weird character in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94437 91177308-0d34-0410-b5e6-96231b3b80d8
* emit ELF .type directives through MCStreamer instead of doing it textually.Chris Lattner2010-01-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94436 91177308-0d34-0410-b5e6-96231b3b80d8
* add symbol attribute support for the ELF .type directive.Chris Lattner2010-01-252-1/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94435 91177308-0d34-0410-b5e6-96231b3b80d8
* emit the .size directive for global variables on ELF throughChris Lattner2010-01-253-1/+10
| | | | | | | mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94416 91177308-0d34-0410-b5e6-96231b3b80d8
* all supported target now have aligned common support.Chris Lattner2010-01-252-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94413 91177308-0d34-0410-b5e6-96231b3b80d8
* coff targets support alignment on .commChris Lattner2010-01-251-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94410 91177308-0d34-0410-b5e6-96231b3b80d8
* make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner2010-01-242-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94378 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a parsing problem on instructions like:Chris Lattner2010-01-241-4/+3
| | | | | | | | | | movw $8, (_cost_table_-L97$pb)+66(%eax) After the parens, we could still have a binop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94345 91177308-0d34-0410-b5e6-96231b3b80d8
* mcize lcomm, simplify .comm, extend both to support 64-bit sizes.Chris Lattner2010-01-235-9/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94299 91177308-0d34-0410-b5e6-96231b3b80d8
* resolve a fixme: the "nonexecutable stack directive" is actuallyChris Lattner2010-01-232-1/+2
| | | | | | | | | | 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
* mcize visibility directives.Chris Lattner2010-01-233-6/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94295 91177308-0d34-0410-b5e6-96231b3b80d8
* move the various directive enums out of the MCStreamer classChris Lattner2010-01-234-66/+56
| | | | | | | into a new MCDirectives.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94294 91177308-0d34-0410-b5e6-96231b3b80d8
* mcstreamerize .no_dead_strip and .reference for static ctors/dtors.Chris Lattner2010-01-233-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94290 91177308-0d34-0410-b5e6-96231b3b80d8
* mcize jump table and constant pool entry labels, .local on elf,Chris Lattner2010-01-231-1/+2
| | | | | | | and some .weak directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94284 91177308-0d34-0410-b5e6-96231b3b80d8
* teach MCAsmStreamer::EmitBytes to use .ascii and .ascizChris Lattner2010-01-231-3/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94259 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes to fix buffering that I forgot to commit with previous patch.Chris Lattner2010-01-221-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94222 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert some more random-comment-printing stuff to use Chris Lattner2010-01-221-0/+5
| | | | | | | | AddComment and GetCommentOS. Add a blank line between globals (even in non-verbose mode) to make the assembly more readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94202 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new MCAsmStreamer::GetCommentOS method to simplify stuffChris Lattner2010-01-222-10/+39
| | | | | | | that doesn't want to use twines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94199 91177308-0d34-0410-b5e6-96231b3b80d8
* rename addComment -> AddComment for consistency.Chris Lattner2010-01-221-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94190 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify some uses of str(n)cmp with StringRef.Benjamin Kramer2010-01-221-7/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94189 91177308-0d34-0410-b5e6-96231b3b80d8
* add comment support to the rest of the directives.Chris Lattner2010-01-221-14/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94168 91177308-0d34-0410-b5e6-96231b3b80d8
* stop using strtoll, it gives windows heartburn.Chris Lattner2010-01-221-8/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94167 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the ability for MCStreamer to emit comments on the same line as directives.Chris Lattner2010-01-221-8/+59
| | | | | | | | | | | | | | Switch over the asm-verbose comment for double values to use it. We now get: _x: .long 343597384 ## double 1.231200e+02 .long 1079953326 For example, note that the comment is on the same line as the .long. Woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94166 91177308-0d34-0410-b5e6-96231b3b80d8
* pass "-fasm-verbose" into createAsmStreamer.Chris Lattner2010-01-221-8/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94165 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop building RTTI information for *most* llvm libraries. NotableChris Lattner2010-01-222-0/+2
| | | | | | | | | | | | | missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94164 91177308-0d34-0410-b5e6-96231b3b80d8
* move some files out of the llvm-mc tool into the MCParser library soChris Lattner2010-01-222-0/+2085
| | | | | | | other tools can link it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94131 91177308-0d34-0410-b5e6-96231b3b80d8
* forgot to svn add these, doh.Chris Lattner2010-01-222-0/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94130 91177308-0d34-0410-b5e6-96231b3b80d8
* create a new MCParser library and move some stuff into it.Chris Lattner2010-01-225-7/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94129 91177308-0d34-0410-b5e6-96231b3b80d8
* don't forget to initialize an instance variable!Chris Lattner2010-01-201-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94021 91177308-0d34-0410-b5e6-96231b3b80d8
* use getGlobalDirective(), don't hardcode .globl. PR6093Chris Lattner2010-01-201-13/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94006 91177308-0d34-0410-b5e6-96231b3b80d8
* make mcasmstreamer handle expanding 8 byte integer constants to Chris Lattner2010-01-201-3/+12
| | | | | | | | | 4-byte constants if .quad isn't supported. Switch a bunch of methods used by the dwarf writer to use OutStreamer.EmitIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93987 91177308-0d34-0410-b5e6-96231b3b80d8
* give createAsmStreamer an 'isLittleEndian' argument.Chris Lattner2010-01-201-3/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93986 91177308-0d34-0410-b5e6-96231b3b80d8
* revert 93934, removing the MCAsmInfo endianness bit. I can'tChris Lattner2010-01-203-5/+3
| | | | | | | | 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
* give MCAsmInfo a 'has little endian' bit. This is unfortunate, butChris Lattner2010-01-193-3/+5
| | | | | | | | | | 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
* add a new EmitIntValue method that MCStreamer impls can optionally defineChris Lattner2010-01-192-6/+36
| | | | | | | and that clients can use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93923 91177308-0d34-0410-b5e6-96231b3b80d8
* Promoted the getTok() method to MCAsmParser so thatSean Callanan2010-01-191-1/+5
| | | | | | | | the two token accessor functions are declared consistently. Modified the clients of MCAsmParser to reflect this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93916 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize mcasmstreamer data emission APIs to take an address spaceChris Lattner2010-01-194-33/+41
| | | | | | | identifier. There is no way to work around it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93896 91177308-0d34-0410-b5e6-96231b3b80d8
* mcstreamerize AsmPrinter::EmitZeros, at least when emitting to the Chris Lattner2010-01-191-0/+2
| | | | | | | default address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93890 91177308-0d34-0410-b5e6-96231b3b80d8
* add an MCAsmStreamer::EmitFill specialization of EmitFill thatChris Lattner2010-01-191-0/+15
| | | | | | | | emits one directive instead of N. Not doing this would be a significant regression on the # bytes generated by .fill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93889 91177308-0d34-0410-b5e6-96231b3b80d8
* add a "MCStreamer::EmitFill" method, and move the default implementationChris Lattner2010-01-191-0/+9
| | | | | | | (which just iteratively emits bytes) to MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93888 91177308-0d34-0410-b5e6-96231b3b80d8
* remove MAI::ZeroDirectiveSuffix, which is only used by MASM,Chris Lattner2010-01-191-1/+0
| | | | | | | which we don't support anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93886 91177308-0d34-0410-b5e6-96231b3b80d8
* stop using the .lcomm pseudoop on darwin, instead, directly use theChris Lattner2010-01-192-3/+2
| | | | | | | | .zerofill directive. Streamerize its generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93868 91177308-0d34-0410-b5e6-96231b3b80d8