Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | The new t2LEApcrel* pseudo instructions need the size specified. | Jim Grosbach | 2010-12-15 | 2 | -5/+13 | |
| | | | | | | rdar://8768390 llvm-svn: 121876 | |||||
* | Implement cleanups suggested by Daniel. | Owen Anderson | 2010-12-15 | 1 | -4/+4 | |
| | | | | llvm-svn: 121875 | |||||
* | Add fixups for Thumb LDR/STR instructions. | Bill Wendling | 2010-12-15 | 3 | -3/+20 | |
| | | | | llvm-svn: 121858 | |||||
* | Reapply r121808 now that the missing patterns have been supplied. | Bill Wendling | 2010-12-15 | 1 | -16/+21 | |
| | | | | llvm-svn: 121820 | |||||
* | Add some missing patterns now that tLDRB and tLDRH are split into reg and | Bill Wendling | 2010-12-15 | 1 | -2/+12 | |
| | | | | | | immediate versions. llvm-svn: 121819 | |||||
* | Revert r121808 until I can fix the build. | Bill Wendling | 2010-12-15 | 1 | -21/+16 | |
| | | | | llvm-svn: 121815 | |||||
* | thumb adr fixup needs alignment just like the t2 version. | Jim Grosbach | 2010-12-14 | 1 | -1/+2 | |
| | | | | llvm-svn: 121812 | |||||
* | Comments and cleaning. | Bill Wendling | 2010-12-14 | 1 | -6/+4 | |
| | | | | llvm-svn: 121809 | |||||
* | Make the ISel selections for LDR/STR the same as before the LDRr/LDRi split. In | Bill Wendling | 2010-12-14 | 1 | -16/+21 | |
| | | | | | | | | | | | | | | | | particular, we want ldr r2, [r3] to be equivalent to ldr r2, [r3, #0] and not ldr r2, [r3, r0] llvm-svn: 121808 | |||||
* | Add support for MC-ized encoding of tLEApcrel and tLEApcrelJT. rdar://8755755 | Jim Grosbach | 2010-12-14 | 6 | -21/+50 | |
| | | | | llvm-svn: 121798 | |||||
* | Fix comment. | Bill Wendling | 2010-12-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 121797 | |||||
* | Multiclassify the LDR/STR encoding patterns. The only functionality difference | Bill Wendling | 2010-12-14 | 1 | -69/+69 | |
| | | | | | | | is the addition of the FoldableAsLoad & Rematerializable flags to some of the load instructions. ARM has these flags set for them. llvm-svn: 121794 | |||||
* | trailing whitespace | Jim Grosbach | 2010-12-14 | 1 | -4/+4 | |
| | | | | llvm-svn: 121792 | |||||
* | Refactor a bit for legibility. | Jim Grosbach | 2010-12-14 | 1 | -28/+27 | |
| | | | | llvm-svn: 121790 | |||||
* | trailing whitespace. | Jim Grosbach | 2010-12-14 | 1 | -4/+4 | |
| | | | | llvm-svn: 121789 | |||||
* | Make sure to propagate the predicate operands for LEApcrel to ADR. | Jim Grosbach | 2010-12-14 | 1 | -4/+4 | |
| | | | | llvm-svn: 121788 | |||||
* | Fix a small bug (typo?) in the fixup for Thumb1 CBZ/CBNZ instructions. | Owen Anderson | 2010-12-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 121784 | |||||
* | MC/ARM: Fix-up fixup offset for fixup_arm_branch target specific fixup. | Daniel Dunbar | 2010-12-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 121772 | |||||
* | Trailing whitespace | Jim Grosbach | 2010-12-14 | 1 | -6/+6 | |
| | | | | llvm-svn: 121769 | |||||
* | Use the integer scheduling intrinsic for integer loads and stores. | Bill Wendling | 2010-12-14 | 1 | -6/+6 | |
| | | | | llvm-svn: 121765 | |||||
* | The tLDR et al instructions were emitting either a reg/reg or reg/imm | Bill Wendling | 2010-12-14 | 10 | -224/+340 | |
| | | | | | | | | | | | | | | | | instruction based on the t_addrmode_s# mode and what it returned. There is some obvious badness to this. In particular, it's hard to do MC-encoding when the instruction may change out from underneath you after the t_addrmode_s# variable is finally resolved. The solution is to revert a long-ago change that merged the reg/reg and reg/imm versions. There is the addition of several new addressing modes. They no longer have extraneous operands associated with them. I.e., if it's reg/reg we don't have to have a dummy zero immediate tacked on to the SDNode. There are some obvious cleanups here, which will happen shortly. llvm-svn: 121747 | |||||
* | bfi A, (and B, C1), C2) -> bfi A, B, C2 iff C1 & C2 == C1. rdar://8458663 | Evan Cheng | 2010-12-14 | 1 | -0/+20 | |
| | | | | llvm-svn: 121746 | |||||
* | Second attempt at make Thumb2 LEAs pseudos. This time, perform the lowering ↵ | Owen Anderson | 2010-12-14 | 6 | -19/+74 | |
| | | | | | | | | much later, which makes the entire process cleaner. llvm-svn: 121735 | |||||
* | Remove the rest of the *_sfp Neon instruction patterns. | Bob Wilson | 2010-12-13 | 2 | -82/+32 | |
| | | | | | | | | | | | | | Use the same COPY_TO_REGCLASS approach as for the 2-register *_sfp instructions. This change made a big difference in the code generated for the CodeGen/Thumb2/cross-rc-coalescing-2.ll test: The coalescer is still doing a fine job, but some instructions that were previously moved outside the loop are not moved now. It's using fewer VFP registers now, which is generally a good thing, so I think the estimates for register pressure changed and that affected the LICM behavior. Since that isn't obviously wrong, I've just changed the test file. This completes the work for Radar 8711675. llvm-svn: 121730 | |||||
* | Simplify N2VSPat, removing some unnecessary type arguments. | Bob Wilson | 2010-12-13 | 1 | -13/+12 | |
| | | | | llvm-svn: 121729 | |||||
* | Revert r121721, which broke buildbots. | Owen Anderson | 2010-12-13 | 7 | -85/+21 | |
| | | | | llvm-svn: 121726 | |||||
* | Make Thumb2 LEA-like instruction into pseudos, which map down to ADR. ↵ | Owen Anderson | 2010-12-13 | 7 | -21/+85 | |
| | | | | | | | | Provide correct fixups for Thumb2 ADR, which is _of course_ different from ARM ADR fixups, or any other Thumb2 fixup. llvm-svn: 121721 | |||||
* | Delete a line that I forgot to revert previously. | Bob Wilson | 2010-12-13 | 1 | -1/+0 | |
| | | | | llvm-svn: 121719 | |||||
* | Use COPY_TO_REGCLASS instead of pseudo instructions for Neon FP patterns. | Bob Wilson | 2010-12-13 | 2 | -44/+13 | |
| | | | | | | | | 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 | 2 | -35/+39 | |
| | | | | | | Partial fix for Radar 8711675. llvm-svn: 121716 | |||||
* | Remove unused instruction class arguments. | Bob Wilson | 2010-12-13 | 1 | -25/+14 | |
| | | | | llvm-svn: 121715 | |||||
* | Generalize BFI isel lowering a bit. | Evan Cheng | 2010-12-13 | 1 | -29/+35 | |
| | | | | llvm-svn: 121714 | |||||
* | In Thumb2, direct branches can be encoded as either a "short" conditional ↵ | Owen Anderson | 2010-12-13 | 6 | -8/+70 | |
| | | | | | | | | | | branch with a null predicate, or as a "long" direct branch. While the mnemonics are the same, they encode the branch offset differently, and the Darwin assembler appears to prefer the "long" form for direct branches. Thus, in the name of bitwise equivalence, provide encoding and fixup support for it. llvm-svn: 121710 | |||||
* | Use 32-bit types for 32-bit values. | Jim Grosbach | 2010-12-13 | 1 | -3/+3 | |
| | | | | llvm-svn: 121709 | |||||
* | Trailing whitespace. | Jim Grosbach | 2010-12-13 | 1 | -8/+8 | |
| | | | | llvm-svn: 121708 | |||||
* | (or (and (shl A, #shamt), mask), B) => ARMbfi B, A, ~mask where lsb(mask) == ↵ | Evan Cheng | 2010-12-11 | 2 | -17/+38 | |
| | | | | | | #shamt. rdar://8752056 llvm-svn: 121606 | |||||
* | Add FIXME | Jim Grosbach | 2010-12-10 | 1 | -0/+2 | |
| | | | | llvm-svn: 121598 | |||||
* | Attempt to get Thumb2 branch fixups working properly. | Owen Anderson | 2010-12-10 | 2 | -3/+2 | |
| | | | | llvm-svn: 121593 | |||||
* | Fix merge error in my last fix to Thumb2 vldr fixups. | Owen Anderson | 2010-12-10 | 1 | -1/+1 | |
| | | | | llvm-svn: 121588 | |||||
* | Fixups for Thumb2 vldr's need to have the effective PC aligned as well. | Owen Anderson | 2010-12-10 | 2 | -3/+4 | |
| | | | | llvm-svn: 121587 | |||||
* | The MCFixupKindInfo table needs to be in the order that the enums were | Bill Wendling | 2010-12-10 | 1 | -16/+19 | |
| | | | | | | declared. Add a note specifying this and spruce up the list a bit. llvm-svn: 121586 | |||||
* | Provide the necessary post-encoder hook for Thumb2 encodings of VMOV and ↵ | Owen Anderson | 2010-12-10 | 1 | -0/+1 | |
| | | | | | | friends. llvm-svn: 121585 | |||||
* | Add float patterns for Neon vld1-lane/dup and vst1-lane operations. | Bob Wilson | 2010-12-10 | 1 | -0/+17 | |
| | | | | llvm-svn: 121583 | |||||
* | Remove unused arguments. | Bob Wilson | 2010-12-10 | 1 | -4/+4 | |
| | | | | llvm-svn: 121582 | |||||
* | Fix encoding of Thumb1 LDRB and STRB. | Owen Anderson | 2010-12-10 | 3 | -0/+18 | |
| | | | | llvm-svn: 121581 | |||||
* | Trailing whitespace. | Jim Grosbach | 2010-12-10 | 1 | -16/+16 | |
| | | | | llvm-svn: 121580 | |||||
* | Fix Thumb2 encodings of STREX and LDREX. | Owen Anderson | 2010-12-10 | 1 | -0/+12 | |
| | | | | llvm-svn: 121579 | |||||
* | Correct encoding of rotation immediate for Thumb2 instructions. rdar://8755999 | Jim Grosbach | 2010-12-10 | 1 | -4/+5 | |
| | | | | llvm-svn: 121525 | |||||
* | Fix encoding of 'U' bit for Thumb2 STRD/LDRD instructions. rdar://8755726 | Jim Grosbach | 2010-12-10 | 1 | -4/+4 | |
| | | | | llvm-svn: 121524 | |||||
* | More trivial cleanup. No need to define the EncoderMethod property type. Can | Jim Grosbach | 2010-12-10 | 2 | -7/+7 | |
| | | | | | | just assign to it. llvm-svn: 121523 |