Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use COPY_TO_REGCLASS instead of pseudo instructions for Neon FP patterns. | Bob Wilson | 2010-12-13 | 1 | -23/+0 |
| | | | | | | | | Jakob Olesen suggested that we can avoid the need for separate pseudo instructions here by using COPY_TO_REGCLASS in the patterns. The pattern gets pretty ugly but it seems to work well. Partial fix for Radar 8711675. llvm-svn: 121718 | ||||
* | Use pseudo instructions for 2-register Neon instructions for scalar FP. | Bob Wilson | 2010-12-13 | 1 | -12/+29 |
| | | | | | | Partial fix for Radar 8711675. llvm-svn: 121716 | ||||
* | Remove unused variables | Matt Beaumont-Gay | 2010-12-09 | 1 | -2/+0 |
| | | | | llvm-svn: 121343 | ||||
* | Remove extraneous semicolon. | Bill Wendling | 2010-12-09 | 1 | -1/+1 |
| | | | | llvm-svn: 121338 | ||||
* | Style nit and whitespace cleanup | Jason W Kim | 2010-12-08 | 1 | -2/+2 |
| | | | | llvm-svn: 121317 | ||||
* | Removed dead comment. | Jason W Kim | 2010-12-08 | 1 | -2/+0 |
| | | | | llvm-svn: 121313 | ||||
* | ARM/MC/ELF TPsoft is now a proper pseudo inst. | Jason W Kim | 2010-12-08 | 1 | -0/+15 |
| | | | | | | | | | Added test to check bl __aeabi_read_tp gets emitted properly for ELF/ASM as well as ELF/OBJ (including fixup) Also added support for ELF::R_ARM_TLS_IE32 llvm-svn: 121312 | ||||
* | Second attempt at converting Thumb2's LDRpci, including updating the ↵ | Owen Anderson | 2010-12-07 | 1 | -4/+36 |
| | | | | | | gazillion places that need to know about it. llvm-svn: 121082 | ||||
* | Revert r121021, which broke the buildbots. | Owen Anderson | 2010-12-06 | 1 | -32/+2 |
| | | | | llvm-svn: 121026 | ||||
* | Trailing whitespace. | Jim Grosbach | 2010-12-06 | 1 | -1/+1 |
| | | | | llvm-svn: 121024 | ||||
* | Improve handling of Thumb2 PC-relative loads by converting LDRpci (and ↵ | Owen Anderson | 2010-12-06 | 1 | -2/+32 |
| | | | | | | friends) to Pseudos. llvm-svn: 121021 | ||||
* | When expanding the MOVCCi32imm, make sure to use the ARM movt/movw opcodes, | Jim Grosbach | 2010-12-02 | 1 | -4/+5 |
| | | | | | | not thumb2. llvm-svn: 120711 | ||||
* | Add support for NEON VLD3-dup instructions. | Bob Wilson | 2010-11-30 | 1 | -0/+13 |
| | | | | | | The encoding for alignment in VLD4-dup instructions is still a work in progress. llvm-svn: 120356 | ||||
* | Add support for NEON VLD3-dup instructions. | Bob Wilson | 2010-11-29 | 1 | -0/+13 |
| | | | | llvm-svn: 120312 | ||||
* | Add support for NEON VLD2-dup instructions. | Bob Wilson | 2010-11-28 | 1 | -0/+13 |
| | | | | llvm-svn: 120236 | ||||
* | Add NEON VLD1-dup instructions (load 1 element to all lanes). | Bob Wilson | 2010-11-27 | 1 | -0/+13 |
| | | | | llvm-svn: 120194 | ||||
* | Avoid release build warnings. | Benjamin Kramer | 2010-11-19 | 1 | -2/+2 |
| | | | | llvm-svn: 119804 | ||||
* | Move hasFP() and few related hooks to TargetFrameInfo. | Anton Korobeynikov | 2010-11-18 | 1 | -1/+3 |
| | | | | llvm-svn: 119740 | ||||
* | Encode the multi-load/store instructions with their respective modes ('ia', | Bill Wendling | 2010-11-16 | 1 | -8/+21 |
| | | | | | | | | | 'db', 'ib', 'da') instead of having that mode as a separate field in the instruction. It's more convenient for the asm parser and much more readable for humans. <rdar://problem/8654088> llvm-svn: 119310 | ||||
* | Add conditional move of large immediate. | Evan Cheng | 2010-11-13 | 1 | -3/+7 |
| | | | | llvm-svn: 118968 | ||||
* | Eliminate ARM::MOVi2pieces. Just use MOVi32imm and expand it to either ↵ | Evan Cheng | 2010-11-12 | 1 | -28/+24 |
| | | | | | | movi+orr or movw+movt depending on the subtarget. llvm-svn: 118938 | ||||
* | Add NEON VST1-lane instructions. Partial fix for Radar 8599955. | Bob Wilson | 2010-11-02 | 1 | -3/+16 |
| | | | | llvm-svn: 118069 | ||||
* | Add NEON VLD1-lane instructions. Partial fix for Radar 8599955. | Bob Wilson | 2010-11-01 | 1 | -3/+19 |
| | | | | llvm-svn: 117964 | ||||
* | Convert ARM::MOVi2pieces to a true pseudo-instruction and expand it in | Jim Grosbach | 2010-10-29 | 1 | -0/+28 |
| | | | | | | the ARMExpandPseudos pass rather than during the asm lowering. llvm-svn: 117714 | ||||
* | Switch attribute macros to use 'LLVM_' as a prefix. We retain the old names | Chandler Carruth | 2010-10-23 | 1 | -2/+2 |
| | | | | | | until other LLVM projects using these are cleaned up. llvm-svn: 117200 | ||||
* | The return value of this call is not used, so no point | Duncan Sands | 2010-10-21 | 1 | -8/+7 |
| | | | | | | in assigning it to a variable (gcc-4.6 warning). llvm-svn: 117024 | ||||
* | Fix backwards conditional. | Jim Grosbach | 2010-10-20 | 1 | -1/+1 |
| | | | | llvm-svn: 116897 | ||||
* | Add dynamic realignment when rematerializing the base register. | Jim Grosbach | 2010-10-20 | 1 | -0/+13 |
| | | | | llvm-svn: 116886 | ||||
* | Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any | Jim Grosbach | 2010-10-19 | 1 | -2/+38 |
| | | | | | | | setup they require. Use this for ARM/Darwin to rematerialize the base pointer from the frame pointer when required. rdar://8564268 llvm-svn: 116879 | ||||
* | Use simple RegState::Define flag instead of getDefRegState(true). | Bob Wilson | 2010-10-15 | 1 | -5/+5 |
| | | | | llvm-svn: 116601 | ||||
* | When expanding the MOVsr[la]_flag pseudos, the CPSR implicit def becomes | Jim Grosbach | 2010-10-15 | 1 | -2/+1 |
| | | | | | | an explicit def. Make sure to capture that properly. rdar://8556556 llvm-svn: 116591 | ||||
* | Refactor the MOVsr[al]_flag and RRX pseudo-instructions to really be pseudos | Jim Grosbach | 2010-10-14 | 1 | -0/+29 |
| | | | | | | | and let the ARMExpandPseudoInsts pass fix them up into the real (MOVs) instruction form. llvm-svn: 116534 | ||||
* | Change the NEON VDUPfdf and VDUPfqf pseudo-instructions to actually be | Jim Grosbach | 2010-10-06 | 1 | -0/+26 |
| | | | | | | pseudo instructions. llvm-svn: 115840 | ||||
* | When expanding ARM pseudo registers, copy the existing predicate operands | Bob Wilson | 2010-09-16 | 1 | -9/+29 |
| | | | | | | instead of using default predicates on the expanded instructions. llvm-svn: 114066 | ||||
* | Add missing break. | Bob Wilson | 2010-09-16 | 1 | -0/+1 |
| | | | | llvm-svn: 114048 | ||||
* | Change VLDMQ and VSTMQ to be pseudo instructions. They are expanded after | Bob Wilson | 2010-09-16 | 1 | -0/+50 |
| | | | | | | | register allocation to VLDMD and VSTMD respectively. This avoids using the dregpair operand modifier. llvm-svn: 114047 | ||||
* | Avoid warnings. | Bob Wilson | 2010-09-14 | 1 | -2/+3 |
| | | | | llvm-svn: 113857 | ||||
* | Convert some VTBL and VTBX instructions to use pseudo instructions prior to | Bob Wilson | 2010-09-13 | 1 | -3/+54 |
| | | | | | | | register allocation. Remove the NEONPreAllocPass, which is no longer needed. Yeah!! llvm-svn: 113818 | ||||
* | Switch all the NEON vld-lane and vst-lane instructions over to the new | Bob Wilson | 2010-09-13 | 1 | -160/+435 |
| | | | | | | | pseudo-instruction approach. Change ARMExpandPseudoInsts to use a table to record all the NEON load/store information. llvm-svn: 113812 | ||||
* | For double-spaced VLD3/VLD4 instructions, copy the explicit super-register use | Bob Wilson | 2010-09-09 | 1 | -5/+9 |
| | | | | | | | operand from the pseudo instruction to the new instruction as an implicit use. This will preserve any other flags (e.g., kill) on the operand. llvm-svn: 113456 | ||||
* | Simplify copying over operands from pseudo NEON load/store instructions. | Bob Wilson | 2010-09-09 | 1 | -30/+19 |
| | | | | | | | | For VLD3/VLD4 with double-spaced registers, add the implicit use of the super register for both the instruction loading the even registers and the instruction loading the odd registers. llvm-svn: 113452 | ||||
* | Clean up a comment. | Bob Wilson | 2010-09-08 | 1 | -2/+2 |
| | | | | llvm-svn: 113442 | ||||
* | Finish converting the rest of the NEON VLD instructions to use pseudo- | Bob Wilson | 2010-09-03 | 1 | -11/+63 |
| | | | | | | | | | instructions prior to regalloc. Since it's getting a little close to the 2.8 branch deadline, I'll have to leave the rest of the instructions handled by the NEONPreAllocPass for now, but I didn't want to leave half of the VLD instructions converted and the other half not. llvm-svn: 112983 | ||||
* | Fill in a missing comment. | Bob Wilson | 2010-09-02 | 1 | -2/+2 |
| | | | | llvm-svn: 112826 | ||||
* | Convert VLD1 and VLD2 instructions to use pseudo-instructions until | Bob Wilson | 2010-09-02 | 1 | -0/+114 |
| | | | | | | after regalloc. llvm-svn: 112825 | ||||
* | Expand MOVi32imm in ARM mode after regalloc. This provides | Anton Korobeynikov | 2010-08-30 | 1 | -2/+7 |
| | | | | | | | scheduling opportunities (extra instruction can go in between MOVT / MOVW pair removing the stall). llvm-svn: 112546 | ||||
* | When expanding NEON VST pseudo instructions, if the original super-register | Bob Wilson | 2010-08-30 | 1 | -4/+6 |
| | | | | | | | | | | operand is killed, add it to the expanded instruction as an implicit kill operand instead of marking the individual subregs with kill flags. This should work better in general and also handles the case for VST3 where one of the subregs was not referenced in the expanded instruction and so was not marked killed. llvm-svn: 112494 | ||||
* | Use pseudo instructions for VST1 and VST2. | Bob Wilson | 2010-08-28 | 1 | -2/+45 |
| | | | | llvm-svn: 112357 | ||||
* | Use pseudo instructions for VST3. | Bob Wilson | 2010-08-26 | 1 | -25/+54 |
| | | | | llvm-svn: 112208 | ||||
* | Use pseudo instructions for VST1d64Q. | Bob Wilson | 2010-08-26 | 1 | -0/+4 |
| | | | | llvm-svn: 112170 |