summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix errant printing of [v]ldm instructions that aren't a popJim Grosbach2010-09-211-32/+24
| | | | llvm-svn: 114445
* factor out a simple helper function to create a label for PC-relativeJim Grosbach2010-09-181-19/+17
| | | | | | instructions (PICADD, PICLDR, et.al.) llvm-svn: 114243
* Add MC-inst handling for tPICADDJim Grosbach2010-09-171-0/+26
| | | | llvm-svn: 114237
* Teach the (non-MC) instruction printer to use the cannonical names for push/pop,Jim Grosbach2010-09-171-4/+71
| | | | | | and shift instructions on ARM. Update the tests to match. llvm-svn: 114230
* Hook up verbose asm comment printing for SOImm operands in MC printerJim Grosbach2010-09-171-1/+1
| | | | llvm-svn: 114215
* handle the upper16/lower16 target operand flags on symbol references for MCJim Grosbach2010-09-171-1/+1
| | | | | | instruction lowering. llvm-svn: 114191
* expand PICLDR MC lowering to handle other PICLDR and PICSTR versions.Jim Grosbach2010-09-171-11/+31
| | | | llvm-svn: 114183
* MC-ization of the PICLDR pseudo. Next up, adding the other variantsJim Grosbach2010-09-161-0/+29
| | | | | | (PICLDRB, et. al.) and PICSTR* llvm-svn: 114098
* Remove support for "dregpair" operand modifier, now that it is no longer beingBob Wilson2010-09-161-7/+1
| | | | | | used for anything. llvm-svn: 114067
* move getRegisterNumbering() to out of ARMBaseRegisterInfo into the helperJim Grosbach2010-09-151-1/+1
| | | | | | | | | functions in ARMBaseInfo.h so it can be used in the MC library as well. For anything bigger than this, we may want a means to have a small support library for shared helper functions like this. Cross that bridge when we come to it. llvm-svn: 114016
* Add predicate and 's' bit operands to PICADD instruction lowering.Jim Grosbach2010-09-141-0/+5
| | | | llvm-svn: 113860
* fix comment typoJim Grosbach2010-09-141-1/+1
| | | | llvm-svn: 113856
* Remove trailing whitespaceJim Grosbach2010-09-021-31/+31
| | | | llvm-svn: 112790
* Change ARM VFP VLDM/VSTM instructions to use addressing mode #4, just likeBob Wilson2010-08-271-10/+0
| | | | | | | | | | | | | | | | | | | all the other LDM/STM instructions. This fixes asm printer crashes when compiling with -O0. I've changed one of the NEON tests (vst3.ll) to run with -O0 to check this in the future. Prior to this change VLDM/VSTM used addressing mode #5, but not really. The offset field was used to hold a count of the number of registers being loaded or stored, and the AM5 opcode field was expanded to specify the IA or DB mode, instead of the standard ADD/SUB specifier. Much of the backend was not aware of these special cases. The crashes occured when rewriting a frameindex caused the AM5 offset field to be changed so that it did not have a valid submode. I don't know exactly what changed to expose this now. Maybe we've never done much with -O0 and NEON. Regardless, there's no longer any reason to keep a count of the VLDM/VSTM registers, so we can use addressing mode #4 and clean things up in a lot of places. llvm-svn: 112322
* Rename sat_shift operand to shift_imm, in preparation for using it for otherBob Wilson2010-08-161-3/+3
| | | | | | instructions besides saturate instructions. No functional changes. llvm-svn: 111168
* Cleaned up the for-disassembly-only entries in the arm instruction table so thatJohnny Chen2010-08-121-0/+9
| | | | | | | the memory barrier variants (other than 'SY' full system domain read and write) are treated as one instruction with option operand. llvm-svn: 110951
* Move the ARM SSAT and USAT optional shift amount operand out of theBob Wilson2010-08-111-2/+23
| | | | | | instruction opcode. This also fixes part of PR7792. llvm-svn: 110875
* ARM "rrx" shift operands do not have an immediate. PR7790.Bob Wilson2010-08-051-12/+9
| | | | llvm-svn: 110292
* Implement target specific getDebugValueLocation().Devang Patel2010-08-041-0/+13
| | | | llvm-svn: 110267
* Move newlines before inline jumptables from the asm strings in .td files toBob Wilson2010-07-311-2/+2
| | | | | | | the jtblock_operand print methods. This avoids extra newlines in the disassembler's output. PR7757. llvm-svn: 109948
* Add the __TEXT,__StaticInit section to the list of sections emitted at theBob Wilson2010-07-301-0/+6
| | | | | | | beginning on ARM Darwin assembly files so that it won't be placed after debug sections. Radar 8252813. llvm-svn: 109879
* For ARM/Darwin, add a dwarf entry indicating whether a function is arm or thumbJim Grosbach2010-07-211-0/+17
| | | | | | rdar://8202967 llvm-svn: 109057
* sink the arm implementations of ASmPrinter and MCInstLowerChris Lattner2010-07-191-0/+1438
| | | | | | | | out of the AsmPrinter directory into libarm. Now the ARM InstPrinters depend jsut on the MC stuff, not on vmcore or codegen. llvm-svn: 108783
* Move ARM to pluggable asmprinterAnton Korobeynikov2008-08-171-1030/+0
| | | | llvm-svn: 54889
* Handle visibility printing with all generality. Remove bunch of duplicate code.Anton Korobeynikov2008-08-081-16/+2
| | | | llvm-svn: 54540
* Undo most of r54519.Evan Cheng2008-08-081-3/+2
| | | | llvm-svn: 54534
* It's not legal to output a GV in a coalesced section if it's used in an ARM ↵Evan Cheng2008-08-081-9/+23
| | | | | | PIC relative constantpool. llvm-svn: 54519
* Switch ARM to new section handling stuffAnton Korobeynikov2008-08-071-152/+113
| | | | llvm-svn: 54458
* Emit debug info for data-only files. ARM version.Dale Johannesen2008-07-091-3/+8
| | | | llvm-svn: 53360
* Back out 53254. It broke ppc debug info codegen.Evan Cheng2008-07-091-8/+3
| | | | llvm-svn: 53280
* Make debug info come out in data-only files.Dale Johannesen2008-07-081-3/+8
| | | | | | | | | | | This is a question of the debugging setup code not being called at the right time, and it's called from target-dependent code for some reason. I have only attempted to fix Darwin, but I'm pretty sure it's broken elsewhere; I'll leave that to people who can test it. llvm-svn: 53254
* Minor const-correctness fixes.Dan Gohman2008-07-071-1/+1
| | | | llvm-svn: 53196
* Handle quoted names when constructing $stub's,Dale Johannesen2008-05-191-14/+27
| | | | | | $non_lazy_ptr's and $lazy_ptr's. llvm-svn: 51277
* Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to ↵Evan Cheng2008-02-281-3/+3
| | | | | | 16-byte boundaries. llvm-svn: 47703
* Change "Name" to "AsmName" in the target register info. Gee, a refactoring toolBill Wendling2008-02-261-17/+17
| | | | | | would have been a Godsend here! llvm-svn: 47625
* Handle \n's in value names for more targets. The asm printers Chris Lattner2008-02-151-3/+15
| | | | | | really really really need refactoring :( llvm-svn: 47171
* __DATA not __DATA__ is the right segment name on darwin.Dale Johannesen2008-02-121-1/+1
| | | | | | Spotted by Nick Kledzik. llvm-svn: 47037
* Rename MRegisterInfo to TargetRegisterInfo.Dan Gohman2008-02-101-6/+6
| | | | llvm-svn: 46930
* Get rid of the annoying blank lines before labels.Evan Cheng2008-02-021-1/+0
| | | | llvm-svn: 46667
* If the function has no machine instructions, then emit a "nop" so thatBill Wendling2008-01-281-0/+10
| | | | | | the function label isn't associated with something it shouldn't be. llvm-svn: 46449
* Honor explicit section information on Darwin.Dale Johannesen2008-01-231-0/+4
| | | | llvm-svn: 46267
* Revert the part of 45849 that treated weak globalsDale Johannesen2008-01-171-3/+2
| | | | | | | | as weak globals rather than commons. While not wrong, this change tickled a latent bug in Darwin's strip, so revert it for now as a workaround. llvm-svn: 46147
* Weak zeroes don't go in bss on Darwin.Dale Johannesen2008-01-111-3/+4
| | | | llvm-svn: 45849
* Add new shorter predicates for testing machine operands for various types: Chris Lattner2007-12-301-5/+5
| | | | | | | | | | | | e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464
* Use MachineOperand::getImm instead of MachineOperand::getImmedValue. ↵Chris Lattner2007-12-301-13/+13
| | | | | | Likewise setImmedValue -> setImm llvm-svn: 45453
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+1
| | | | llvm-svn: 45418
* Much improved pic jumptable codegen:Evan Cheng2007-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Then: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry imull $4, %ecx, %ecx leal LJTI1_0-"L1$pb"(%eax), %edx addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx jmpl *%edx .align 2 .set L1_0_set_3,LBB1_3-LJTI1_0 .set L1_0_set_2,LBB1_2-LJTI1_0 .set L1_0_set_5,LBB1_5-LJTI1_0 .set L1_0_set_4,LBB1_4-LJTI1_0 LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 Now: call "L1$pb" "L1$pb": popl %eax ... LBB1_1: # entry addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax jmpl *%eax .align 2 .set L1_0_set_3,LBB1_3-"L1$pb" .set L1_0_set_2,LBB1_2-"L1$pb" .set L1_0_set_5,LBB1_5-"L1$pb" .set L1_0_set_4,LBB1_4-"L1$pb" LJTI1_0: .long L1_0_set_3 .long L1_0_set_2 llvm-svn: 43924
* [ARM] Fix code generation for:Lauro Ramos Venancio2007-11-051-1/+1
| | | | | | | | | static __thread struct { int a; int b; } teste = {0, 0}; llvm-svn: 43722
* Eliminate the remaining uses of getTypeSize. ThisDuncan Sands2007-11-051-1/+1
| | | | | | | | | | | | | | should only effect x86 when using long double. Now 12/16 bytes are output for long double globals (the exact amount depends on the alignment). This brings globals in line with the rest of LLVM: the space reserved for an object is now always the ABI size. One tricky point is that only 10 bytes should be output for long double if it is a field in a packed struct, which is the reason for the additional argument to EmitGlobalConstant. llvm-svn: 43688
* Revert 42908 for now.Evan Cheng2007-10-141-13/+12
| | | | llvm-svn: 42960
OpenPOWER on IntegriCloud