summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMInstrThumb2.td
Commit message (Collapse)AuthorAgeFilesLines
...
* In Thumb2, direct branches can be encoded as either a "short" conditional ↵Owen Anderson2010-12-131-1/+1
| | | | | | | | | | 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
* Fix Thumb2 encodings of STREX and LDREX.Owen Anderson2010-12-101-0/+12
| | | | llvm-svn: 121579
* Correct encoding of rotation immediate for Thumb2 instructions. rdar://8755999Jim Grosbach2010-12-101-4/+5
| | | | llvm-svn: 121525
* More trivial cleanup. No need to define the EncoderMethod property type. CanJim Grosbach2010-12-101-5/+5
| | | | | | just assign to it. llvm-svn: 121523
* Fix encoding of the immediate operands on post-indexed LDR and friends.Owen Anderson2010-12-091-39/+26
| | | | llvm-svn: 121354
* The add/sub SP instructions are really pseudos. The assembler should ignoreJim Grosbach2010-12-091-0/+2
| | | | | | them. llvm-svn: 121345
* Fix Thumb2 BCC encoding and fixups.Owen Anderson2010-12-091-7/+10
| | | | llvm-svn: 121329
* Clean up the add/sub w/ SP source reg instructions in Thumb2 a bit. Add a FIXMEJim Grosbach2010-12-081-11/+13
| | | | | | for more thorough cleanup. llvm-svn: 121315
* Fix T2TwoRegImm and use it for t2ADDrSPi12 and friends.Jim Grosbach2010-12-081-19/+9
| | | | llvm-svn: 121314
* T2TwoRegImm isn't right for t2SUBrSPi12. Use T2I instead.Jim Grosbach2010-12-081-1/+1
| | | | llvm-svn: 121311
* Add operand encoding for Thumb2 subw SP + imm. rdar://8745434Jim Grosbach2010-12-081-3/+7
| | | | llvm-svn: 121310
* Add operand encoding for Thumb2 addw Rn + imm. rdar://8745434Jim Grosbach2010-12-081-5/+12
| | | | llvm-svn: 121309
* Add operand encoding for Thumb2 addw SP + imm. rdar://8745434Jim Grosbach2010-12-081-4/+8
| | | | llvm-svn: 121305
* Parameterize opcode encoding bits for Thumb2 extended precision integerJim Grosbach2010-12-081-37/+19
| | | | | | multiply instructions. llvm-svn: 121301
* Fix operand encoding for Thumb2 extended precision multiplies. rdar://8745555Jim Grosbach2010-12-081-10/+24
| | | | llvm-svn: 121297
* Simplify T2 operand assignment notation a bit. No need to specify a bit rangeJim Grosbach2010-12-081-70/+70
| | | | | | for the source field when it's the whole thing that's being referenced. llvm-svn: 121291
* Fix Thumb2 encoding of the S bit.Owen Anderson2010-12-071-23/+1
| | | | llvm-svn: 121182
* Refactor the ARM CMPz* patterns to just use the normal CMP instructions whenJim Grosbach2010-12-071-3/+7
| | | | | | | possible. They were duplicates for everything exception the source pattern before. llvm-svn: 121179
* Second attempt at converting Thumb2's LDRpci, including updating the ↵Owen Anderson2010-12-071-18/+2
| | | | | | gazillion places that need to know about it. llvm-svn: 121082
* Revert r121021, which broke the buildbots.Owen Anderson2010-12-061-2/+18
| | | | llvm-svn: 121026
* Improve handling of Thumb2 PC-relative loads by converting LDRpci (and ↵Owen Anderson2010-12-061-18/+2
| | | | | | friends) to Pseudos. llvm-svn: 121021
* Trailing whitespace.Jim Grosbach2010-12-021-32/+32
| | | | llvm-svn: 120748
* Add correct encodings for STRD and LDRD, including fixup support. ↵Owen Anderson2010-12-011-21/+15
| | | | | | Additionally, update these to unified syntax. llvm-svn: 120589
* Simplify the encoding of reg+/-imm12 values that allow PC-relative encoding. ↵Owen Anderson2010-11-301-33/+12
| | | | | | | | | This allows the Thumb2 encoding to share code with the ARM encoding, which gets use fixup support for free. It also allows us to fold away at least one codegen-only pattern. llvm-svn: 120481
* Provide Thumb2 encodings for a few miscellaneous instructions.Owen Anderson2010-11-301-8/+22
| | | | llvm-svn: 120455
* Add encoding support for Thumb2 PLD and PLI instructions.Owen Anderson2010-11-301-1/+23
| | | | llvm-svn: 120449
* Provide encodings for a few more load/store variants.Owen Anderson2010-11-301-4/+16
| | | | llvm-svn: 120439
* Correct Thumb2 encodings for a much wider range of loads and stores.Owen Anderson2010-11-301-46/+61
| | | | llvm-svn: 120364
* Provide Thumb2 encodings for basic loads and stores.Owen Anderson2010-11-291-21/+75
| | | | llvm-svn: 120340
* Mark Darwin call instructions as using "r7" to prevent the frame-registerEvan Cheng2010-11-291-1/+1
| | | | | | | assignment instructions from being moved below / above calls. rdar://8690640 llvm-svn: 120339
* Nuke dead isCodeGenOnly annotation and extraneous comment.Jim Grosbach2010-11-291-3/+2
| | | | llvm-svn: 120338
* tidy up.Jim Grosbach2010-11-291-2/+1
| | | | llvm-svn: 120335
* Pseudo-ize Thumb2 jump tables with explicit MC lowering to the rawJim Grosbach2010-11-291-52/+28
| | | | | | instructions. This simplifies instruction printing and disassembly. llvm-svn: 120333
* Rename t2 TBB and TBH instructions to reference that they encode the jump tableJim Grosbach2010-11-291-2/+2
| | | | | | data. Next up, pseudo-izing them. llvm-svn: 120320
* Improving the factoring of several instruction encodings.Owen Anderson2010-11-291-89/+51
| | | | llvm-svn: 120317
* Thumb2 encodings for MSR and MRS.Owen Anderson2010-11-291-10/+24
| | | | llvm-svn: 120309
* Thumb2 encodings for system instructions.Owen Anderson2010-11-291-8/+50
| | | | llvm-svn: 120307
* Thumb2 encodings for branches and IT blocks.Owen Anderson2010-11-291-0/+15
| | | | llvm-svn: 120306
* Remove trailing whitespace.Jim Grosbach2010-11-191-62/+62
| | | | llvm-svn: 119806
* Fix decoding ambiguities of stdrex and ldrex.Owen Anderson2010-11-191-4/+0
| | | | llvm-svn: 119801
* Fix an obvious oversight.Evan Cheng2010-11-191-2/+2
| | | | llvm-svn: 119792
* Provide Thumb2 encodings for strex and ldrex.Owen Anderson2010-11-191-20/+42
| | | | llvm-svn: 119768
* Fix encodings for pkhbt, and fix some tests where I accidentally tested ARM ↵Owen Anderson2010-11-181-6/+6
| | | | | | mode instead of Thumb2. llvm-svn: 119755
* Provide Thumb2 encodings for mov's that come from MOVCC SDNodes.Owen Anderson2010-11-181-12/+13
| | | | llvm-svn: 119744
* More Thumb2 encodings.Owen Anderson2010-11-181-29/+40
| | | | llvm-svn: 119737
* Fill out the set of Thumb2 multiplication operator encodings.Owen Anderson2010-11-181-129/+155
| | | | llvm-svn: 119733
* ARM PseudoInst instructions don't need or use an assembler string. Get rid ofJim Grosbach2010-11-181-3/+3
| | | | | | the operand to the pattern. llvm-svn: 119607
* Try again at providing Thumb2 encodings for basic multiplication operators.Owen Anderson2010-11-181-26/+43
| | | | llvm-svn: 119601
* Revert r119593 while I figure out my testing disagrees with the buildbot.Owen Anderson2010-11-181-43/+26
| | | | llvm-svn: 119597
* Provide correct Thumb2 encodings for basic multiplication operators.Owen Anderson2010-11-181-26/+43
| | | | llvm-svn: 119593
OpenPOWER on IntegriCloud