summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/AsmPrinter
Commit message (Collapse)AuthorAgeFilesLines
...
* getFunctionAlignment should return log2 alignment.Evan Cheng2009-10-021-2/+3
| | | | llvm-svn: 83242
* Change ld/st multiples to explicitly model the writeback to base register. ↵Evan Cheng2009-10-011-2/+3
| | | | | | This fixes most of the -ldstopti-before-sched2 regressions. llvm-svn: 83191
* Use MachineInstr as an processDebugLoc() argument.Devang Patel2009-09-301-1/+1
| | | | | | This will allow processDebugLoc() to handle scopes for DWARF debug info. llvm-svn: 83183
* Use OutStreamer.SwitchSection instead of writing out textual section directives.Bob Wilson2009-09-301-7/+18
| | | | | | | Add a new TargetLoweringObjectFileMachO::getConstTextCoalSection method to get access to that section. llvm-svn: 83178
* Add a new virtual EmitStartOfAsmFile method to the AsmPrinter and use thisBob Wilson2009-09-301-7/+2
| | | | | | | | | | | | | | | | to emit target-specific things at the beginning of the asm output. This fixes a problem for PPC, where the text sections are not being kept together as expected. The base class doInitialization code calls DW->BeginModule() which emits a bunch of DWARF section directives. The PPC doInitialization code then emits all the TEXT section directives, with the intention that they will be kept together. But as I understand it, the Darwin assembler treats the default TEXT section as a special case and moves it to the beginning of the file, which means that all those DWARF sections are in the middle of the text. With this change, the EmitStartOfAsmFile hook is called before the DWARF section directives are emitted, so that all the PPC text section directives come out right at the beginning of the file. llvm-svn: 83176
* The AsmPrinter base class contains a DwarfWriter member, so there's no needBob Wilson2009-09-301-3/+1
| | | | | | | for derived AsmPrinters to add another one. In some cases, fixing this removes the need to override the doInitialization method. llvm-svn: 83170
* For Darwin, emit all the text section directives together before the dwarfBob Wilson2009-09-301-0/+19
| | | | | | | | section directives. This causes the assembler to put the text sections at the beginning of the object file, which helps work around a limitation of the Darwin ARM relocations. Radar 7255355. llvm-svn: 83127
* Make ARM and Thumb2 32-bit immediate materialization into a single 32-bit pseudoEvan Cheng2009-09-281-1/+8
| | | | | | | | | instruction. This makes it re-materializable. Thumb2 will split it back out into two instructions so IT pass will generate the right mask. Also, this expose opportunies to optimize the movw to a 16-bit move. llvm-svn: 82982
* Fix superreg use in ARMAsmPrinter. Approved by Anton Korobeynikov.Sandeep Patel2009-09-151-2/+2
| | | | llvm-svn: 81878
* remove all but one reference to TargetRegisterDesc::AsmName.Chris Lattner2009-09-131-31/+29
| | | | llvm-svn: 81714
* the tblgen produced 'getRegisterName' method does not accessChris Lattner2009-09-131-1/+1
| | | | | | the object, make it static instead of const. llvm-svn: 81711
* make tblgen produce a function that returns the name for a physreg.Chris Lattner2009-09-131-0/+2
| | | | | | Nothing is using this info yet. llvm-svn: 81707
* replace printBasicBlockLabel with EmitBasicBlockStart,Chris Lattner2009-09-131-1/+1
| | | | | | | now that printBasicBlockLabel is only used for starting a MBB. This allows elimination of a bunch of arguments. llvm-svn: 81684
* convert some uses of printBasicBlockLabel to use GetMBBSymbolChris Lattner2009-09-131-5/+6
| | | | | | instead. llvm-svn: 81677
* remove DebugLoc from MCInst and eliminate "Comment printing" fromChris Lattner2009-09-091-0/+3
| | | | | | | | | | | | | the MCInst path of the asmprinter. Instead, pull comment printing out of the autogenerated asmprinter into each target that uses the autogenerated asmprinter. This causes code duplication into each target, but in a way that will be easier to clean up later when more asmprinter stuff is commonized into the base AsmPrinter class. This also fixes an xcore strangeness where it inserted two tabs before every instruction. llvm-svn: 81396
* hoist the call to processDebugLoc out of the generatedChris Lattner2009-09-091-0/+1
| | | | | | | | | | | | | asm printer into the "printInstruction" routine. This fixes a problem where the experimental asmprinter would drop debug labels in some cases, and fixes issues on ppc/xcore where pseudo instructions like "mr" didn't get debug locs properly. It is annoying that this moves the call from one place into each target, but a future set of more invasive refactorings will fix that problem. llvm-svn: 81377
* Whitespace cleanupJim Grosbach2009-09-041-23/+23
| | | | llvm-svn: 80978
* Reference to hidden symbols do not have to go through non-lazy pointer in ↵Evan Cheng2009-09-031-2/+1
| | | | | | non-pic mode. rdar://7187172. llvm-svn: 80904
* reduce size of SmallString to something more reasonableJim Grosbach2009-09-011-1/+1
| | | | llvm-svn: 80710
* Use raw_ostream instead of sstreamJim Grosbach2009-09-011-7/+5
| | | | llvm-svn: 80704
* Clean up LSDA name generation and use for SJLJ exception handling. ThisJim Grosbach2009-09-011-5/+9
| | | | | | | | | | | makes an eggregious hack somewhat more palatable. Bringing the LSDA forward and making it a GV available for reference would be even better, but is beyond the scope of what I'm looking to solve at this point. Objective C++ code could generate function names that broke the previous scheme. This fixes that. llvm-svn: 80649
* Normalize makefile comments and sort cmake file lists.Benjamin Kramer2009-08-311-1/+1
| | | | llvm-svn: 80584
* Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a ↵Evan Cheng2009-08-281-126/+21
| | | | | | bunch of nasty code in ARM asm printer. llvm-svn: 80404
* Make linkerprivate work for ARM and PPC. Testcase coversDale Johannesen2009-08-241-2/+2
| | | | | | | | | all Darwin targets; could be split into separate tests for the chip subdirectories, but from Chris' last mail on testing I assume he'd rather have only one test. Generic seems to be the best available, maybe there should be a Darwin subdirectory? llvm-svn: 79877
* rename TAI -> MAI, being careful not to make MAILJMP instructions :)Chris Lattner2009-08-221-37/+37
| | | | llvm-svn: 79777
* Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.Chris Lattner2009-08-221-3/+3
| | | | llvm-svn: 79763
* Rename ARM "lane_cst" operands to "nohash_imm" since they are used forBob Wilson2009-08-211-3/+5
| | | | | | | several things other than Neon vector lane numbers. For inline assembly operands with a "c" print code, check that they really are immediates. llvm-svn: 79676
* eliminate AsmPrinter::SwitchToSection and just have clientsChris Lattner2009-08-191-7/+8
| | | | | | talk to the MCStreamer directly instead. llvm-svn: 79405
* Turn on if-conversion for thumb2.Evan Cheng2009-08-151-1/+1
| | | | llvm-svn: 79084
* Various AsmWriter output cleanups. Use WriteAsOperand instead ofDan Gohman2009-08-131-13/+4
| | | | | | PrintUnmangledNameSafely. llvm-svn: 78878
* Shrinkify Thumb2 load / store multiple instructions.Evan Cheng2009-08-111-1/+3
| | | | llvm-svn: 78717
* split "JumpTableDirective" (an existing hack) into a PIC and nonPICChris Lattner2009-08-111-7/+3
| | | | | | | | | | version. This allows TAI implementations to specify the directive to use based on the mode being codegen'd for. The real fix for this is to remove JumpTableDirective, but I don't feel like diving into the jumptable snarl just now. llvm-svn: 78709
* Fix the previous accidental commit. Now shrinking common Thumb2 load / store ↵Evan Cheng2009-08-111-1/+1
| | | | | | instructions. llvm-svn: 78659
* Fix Thumb2 load / store addressing mode matching code. Do not use so_reg form toEvan Cheng2009-08-111-7/+6
| | | | | | | | | | match base only address, i.e. [r] since Thumb2 requires a offset register field. For those, use [r + imm12] where the immediate is zero. Note the generated assembly code does not look any different after the patch. But the bug would have broken the JIT (if there is Thumb2 support) and it can break later passes which expect the address mode to be well-formed. llvm-svn: 78658
* SjLj based exception handling unwinding support. This patch is nasty, brutishJim Grosbach2009-08-111-0/+2
| | | | | | | | | | | | | and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. llvm-svn: 78625
* split MachO section handling stuff out to its out .h/.cpp file.Chris Lattner2009-08-101-1/+1
| | | | llvm-svn: 78576
* arm only needs to emit one .align directive for hidden nlp's, not oneChris Lattner2009-08-101-1/+1
| | | | | | per pointer. llvm-svn: 78574
* make sure that arm nonlazypointers are aligned properlyChris Lattner2009-08-101-0/+1
| | | | llvm-svn: 78573
* Make the big switch: Change MCSectionMachO to represent a section *semantically*Chris Lattner2009-08-101-14/+15
| | | | | | | | | | | | | | | | instead of syntactically as a string. This means that it keeps track of the segment, section, flags, etc directly and asmprints them in the right format. This also includes parsing and validation support for llvm-mc and "attribute(section)", so we should now start getting errors about invalid section attributes from the compiler instead of the assembler on darwin. Still todo: 1) Uniquing of darwin mcsections 2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h] 3) there are a few FIXMEs, for example what is the syntax to get the S_GB_ZEROFILL segment type? llvm-svn: 78547
* Use subclassing to print lane-like immediates (w/o hash) eliminatingAnton Korobeynikov2009-08-081-6/+7
| | | | | | 'no_hash' modifier. Hopefully this will make Daniel happy :) llvm-svn: 78514
* Lane number should be printed w/o hashAnton Korobeynikov2009-08-081-1/+1
| | | | llvm-svn: 78469
* make printInstruction return void since its result is omitted. Make the Chris Lattner2009-08-081-1/+1
| | | | | | error condition get trapped with an assert. llvm-svn: 78449
* 2 more vdup.32 casesAnton Korobeynikov2009-08-071-0/+5
| | | | llvm-svn: 78419
* Thumb2 32-bit ldm / stm needs .w suffix if submode is ia.Evan Cheng2009-08-071-0/+4
| | | | llvm-svn: 78410
* Missed pieces for ARM HardFP ABI.Anton Korobeynikov2009-08-051-0/+5
| | | | | | Patch by Sandeep Patel! llvm-svn: 78225
* Remove dead code. MDNode and MDString are not Constant anymore.Devang Patel2009-08-051-3/+0
| | | | llvm-svn: 78207
* Don't flush the raw_ostream between each MachineFunction. These flushDan Gohman2009-08-051-2/+0
| | | | | | | | | | | calls were originally put in place because errs() at one time was not unbuffered, and these print routines are commonly used with errs() for debugging. However, errs() is now properly unbuffered, so the flush calls are no longer needed. This significantly reduces the number of write(2) calls for regular asm printing when there are many small functions. llvm-svn: 78137
* Replace dregsingle operand modifier with explicit escaped curly brackets.Bob Wilson2009-08-041-2/+0
| | | | | | | For other VLDn and VSTn operations, we need to list the multiple registers explicitly anyway, so there's no point in special-casing this one usage. llvm-svn: 78109
* Enable load / store multiple pass for Thumb2. It's not using ldrd / strd yet.Evan Cheng2009-08-041-0/+1
| | | | llvm-svn: 78104
* Load / store multiple pass fixes for Thumb2. Not enabled yet.Evan Cheng2009-08-041-1/+3
| | | | llvm-svn: 78031
OpenPOWER on IntegriCloud