summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Change the names used for internal labels to use the currentDan Gohman2007-10-121-12/+13
| | | | | | | | | function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) llvm-svn: 42908
* Use empty() member functions when that's what's being tested for insteadDan Gohman2007-10-031-1/+1
| | | | | | of comparing begin() and end(). llvm-svn: 42585
* AsmPrinters overriding getAnalysisUsage should call super.Gordon Henriksen2007-09-301-0/+1
| | | | | | And not super's super, either. llvm-svn: 42482
* Honor user-defined section specification of a global, ignores whether its ↵Evan Cheng2007-09-211-4/+3
| | | | | | initializer is null. llvm-svn: 42182
* Don't ignore the return value of AsmPrinter::doInitialization andDan Gohman2007-07-251-4/+3
| | | | | | AsmPrinter::doFinalization. llvm-svn: 40487
* Print the s bit if the instruction is toggled to its CPSR setting form.Evan Cheng2007-07-061-0/+9
| | | | llvm-svn: 37932
* Quote complex names for Darwin X86 and ARM.Dale Johannesen2007-06-221-1/+7
| | | | llvm-svn: 37700
* Print predicate of the second instruction of the two-piece constant MI.Evan Cheng2007-06-051-1/+3
| | | | llvm-svn: 37437
* PIC label asm printing cosmetic changes.Evan Cheng2007-06-051-0/+9
| | | | llvm-svn: 37434
* Fix the asmprinter so that a globalvalue can specify an explicit alignmentChris Lattner2007-05-311-1/+1
| | | | | | | | smaller than the preferred alignment, but so that the target can actually specify a minimum alignment if needed. This fixes some objc protocol failures Devang tracked down. llvm-svn: 37373
* Add PredicateOperand to all ARM instructions that have the condition field.Evan Cheng2007-05-151-2/+3
| | | | llvm-svn: 37066
* Switch BCC, MOVCCr, etc. to PredicateOperand.Evan Cheng2007-05-081-2/+2
| | | | llvm-svn: 36948
* Should never see an indexed load / store with zero offset.Evan Cheng2007-05-031-5/+7
| | | | llvm-svn: 36714
* Debug support for arm-linux.Lauro Ramos Venancio2007-05-031-15/+10
| | | | | | Patch by Raul Herbster. llvm-svn: 36690
* add support for printing offset from globalChris Lattner2007-05-031-0/+6
| | | | llvm-svn: 36669
* Enable protected visibility on ARM.Lauro Ramos Venancio2007-04-301-4/+15
| | | | llvm-svn: 36583
* ARM TLS: implement "general dynamic", "initial exec" and "local exec" models.Lauro Ramos Venancio2007-04-271-4/+12
| | | | llvm-svn: 36506
* remember to emit weak reference in one more case.Lauro Ramos Venancio2007-04-251-1/+6
| | | | llvm-svn: 36438
* add Align field, and use when generating function alignmentDale Johannesen2007-04-231-1/+1
| | | | llvm-svn: 36371
* Implement PIC for arm-linux.Lauro Ramos Venancio2007-04-221-1/+7
| | | | llvm-svn: 36324
* Implement inline asm modifier P.Evan Cheng2007-04-041-0/+1
| | | | llvm-svn: 35640
* Add support for hidden visibility to darwin/arm.Evan Cheng2007-03-291-0/+4
| | | | llvm-svn: 35448
* Make two piece constant generation as a single instruction. It's ↵Evan Cheng2007-03-201-8/+29
| | | | | | re-materialized as a load from constantpool. llvm-svn: 35207
* Implement inline asm modifier c.Evan Cheng2007-03-081-0/+3
| | | | llvm-svn: 35035
* Putting more constants which do not contain relocations into .literal{4|8|16}Evan Cheng2007-03-081-5/+6
| | | | llvm-svn: 35026
* For Darwin, put constant data into .const, .const_data, .literal{4|8|16}Evan Cheng2007-03-081-2/+23
| | | | | | sections. llvm-svn: 35017
* Get rid of verboten <iostream> include.Bill Wendling2007-03-011-1/+0
| | | | llvm-svn: 34777
* Fix .thumb_func directive on linux.Lauro Ramos Venancio2007-02-011-1/+4
| | | | llvm-svn: 33759
* Don't emit unnecessary .align directive.Evan Cheng2007-01-311-3/+1
| | | | llvm-svn: 33729
* - Fix codegen for pc relative constant (e.g. JT) in thumb mode:Evan Cheng2007-01-301-6/+22
| | | | | | | | | | | | | | | | | | | .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4)) LPCRELL0: add r1, pc, #PCRELV0 This is not legal since add r1, pc, #c requires the constant be a multiple of 4. Do the following instead: .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4)) LPCRELL0: mov r1, #PCRELV0 add r1, pc - In thumb mode, it's not possible to use .set generate a pc relative stub address. The stub is ARM code which is in a different section from the thumb code. Load the value from a constpool instead. - Some asm printing clean up. llvm-svn: 33664
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-1/+1
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Darwin -static should codegen static ctors / dtors to .constructor / ↵Evan Cheng2007-01-301-1/+9
| | | | | | .destructor sections. llvm-svn: 33657
OpenPOWER on IntegriCloud