Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | ARM STRH encoding information. | Jim Grosbach | 2010-11-11 | 1 | -7/+12 | |
| | | | | llvm-svn: 118757 | |||||
* | Move LDM predicate operand encoding into base clase. Add STM missing STM | Jim Grosbach | 2010-11-10 | 1 | -2/+10 | |
| | | | | | | encoding bits. llvm-svn: 118738 | |||||
* | ARM LDM encoding for the mode (ia, ib, da, db) operand. | Jim Grosbach | 2010-11-10 | 1 | -1/+3 | |
| | | | | llvm-svn: 118736 | |||||
* | Fix ARM encoding of non-return LDM instructions. | Jim Grosbach | 2010-11-10 | 1 | -1/+1 | |
| | | | | llvm-svn: 118732 | |||||
* | Fix ARM encoding of LDM+Return instruction. | Jim Grosbach | 2010-11-10 | 1 | -2/+4 | |
| | | | | llvm-svn: 118730 | |||||
* | Add encoding for VSTR. | Bill Wendling | 2010-11-04 | 1 | -0/+22 | |
| | | | | llvm-svn: 118220 | |||||
* | Revert r118097 to fix buildbots. | Owen Anderson | 2010-11-02 | 1 | -4/+4 | |
| | | | | llvm-svn: 118121 | |||||
* | Since these fields are not exactly equivalent to the encoded field, rename ↵ | Owen Anderson | 2010-11-02 | 1 | -4/+4 | |
| | | | | | | them to something with semantic meaning. llvm-svn: 118097 | |||||
* | Factor out a common encoding class for loads and stores with a lane parameter. | Owen Anderson | 2010-11-02 | 1 | -0/+8 | |
| | | | | llvm-svn: 118055 | |||||
* | Add correct NEON encodings for the "multiple single elements" form of vld. | Owen Anderson | 2010-11-02 | 1 | -0/+9 | |
| | | | | llvm-svn: 117984 | |||||
* | Move the machine operand MC encoding patterns to the parent classes. | Bill Wendling | 2010-11-01 | 1 | -0/+13 | |
| | | | | llvm-svn: 117956 | |||||
* | Add 'IsThumb' predicate to patterns marked as 'IsThumb1Only'. The latter gates | Jim Grosbach | 2010-11-01 | 1 | -6/+6 | |
| | | | | | | | codegen using the patterns; the latter gates the assembler recognizing the instruction. llvm-svn: 117931 | |||||
* | Move instruction encoding bits into the parent class and remove the temporary | Bill Wendling | 2010-11-01 | 1 | -0/+59 | |
| | | | | | | | *_Encode classes. These instructions are the only ones which use those classes, so a subclass isn't necessary. llvm-svn: 117906 | |||||
* | fix the !eq operator in tblgen to return a bit instead of an int. | Chris Lattner | 2010-10-31 | 1 | -0/+3 | |
| | | | | | | | | Use this to make the X86 and ARM targets set isCodeGenOnly=1 automatically for their instructions that have Format=Pseudo, resolving a hack in tblgen. llvm-svn: 117862 | |||||
* | Encode the register list operands for ARM mode LDM/STM instructions. | Jim Grosbach | 2010-10-30 | 1 | -0/+4 | |
| | | | | llvm-svn: 117753 | |||||
* | ARM encoding information for CLREX, SWP and SWPB. Add comment for sjlj ↵ | Jim Grosbach | 2010-10-29 | 1 | -0/+13 | |
| | | | | | | pseudos and a FIXME for TLS. llvm-svn: 117702 | |||||
* | ARM mode LDREX*/STREX* binary encodings. | Jim Grosbach | 2010-10-29 | 1 | -0/+10 | |
| | | | | llvm-svn: 117695 | |||||
* | Refactor ARM STR/STRB instruction patterns into STR{B}i12 and STR{B}rs, like | Jim Grosbach | 2010-10-27 | 1 | -4/+5 | |
| | | | | | | | | the LDR instructions have. This makes the literal/register forms of the instructions explicit and allows us to assign scheduling itineraries appropriately. rdar://8477752 llvm-svn: 117505 | |||||
* | Provide correct encodings for the get_lane and set_lane variants of vmov. | Owen Anderson | 2010-10-27 | 1 | -5/+6 | |
| | | | | llvm-svn: 117495 | |||||
* | Provide correct NEON encodings for vdup. | Owen Anderson | 2010-10-27 | 1 | -0/+18 | |
| | | | | llvm-svn: 117475 | |||||
* | First part of refactoring ARM addrmode2 (load/store) instructions to be more | Jim Grosbach | 2010-10-26 | 1 | -0/+33 | |
| | | | | | | | | explicit about the operands. Split out the different variants into separate instructions. This gives us the ability to, among other things, assign different scheduling itineraries to the variants. rdar://8477752. llvm-svn: 117409 | |||||
* | Provide correct NEON encodings for vshl, register and immediate forms. | Owen Anderson | 2010-10-26 | 1 | -0/+11 | |
| | | | | llvm-svn: 117394 | |||||
* | Add NEON encodings for vmov and vmvn of immediates. | Owen Anderson | 2010-10-26 | 1 | -0/+10 | |
| | | | | llvm-svn: 117374 | |||||
* | NEON vmov's are in Neon domain. | Evan Cheng | 2010-10-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 117347 | |||||
* | Add correct instruction encodings for vbic, vorn, and vmvn. | Owen Anderson | 2010-10-25 | 1 | -0/+18 | |
| | | | | llvm-svn: 117282 | |||||
* | Provide correct NEON encodings for vand, veor, and vorr. | Owen Anderson | 2010-10-25 | 1 | -0/+12 | |
| | | | | llvm-svn: 117279 | |||||
* | ARM mode encoding information for CLZ, RBIT, REV*, and PKH*. | Jim Grosbach | 2010-10-22 | 1 | -2/+27 | |
| | | | | llvm-svn: 117165 | |||||
* | More ARM multiply instuction binary encodings. | Jim Grosbach | 2010-10-22 | 1 | -1/+28 | |
| | | | | llvm-svn: 117121 | |||||
* | Parameterize a bit of ARM encoding information, simplifying some instruction | Jim Grosbach | 2010-10-22 | 1 | -2/+3 | |
| | | | | | | definitions. llvm-svn: 117114 | |||||
* | More ARM multiply instruction encoding information. | Jim Grosbach | 2010-10-22 | 1 | -3/+16 | |
| | | | | llvm-svn: 117108 | |||||
* | ARM encodes Q registers as 2xregno (i.e. the number of the D register that ↵ | Owen Anderson | 2010-10-21 | 1 | -0/+12 | |
| | | | | | | | | | corresponds to the lower half of the Q register), rather than with just regno. This allows us to unify the encodings for a lot of different NEON instrucitons that differ only in whether they have Q or D register operands. llvm-svn: 117056 | |||||
* | ARM instructions that are both predicated and set the condition codes | Bob Wilson | 2010-10-15 | 1 | -1/+1 | |
| | | | | | | | | | | have been printed with the "S" modifier after the predicate. With ARM's unified syntax, they are supposed to go in the other order. We fixed this for Thumb when we switched to unified syntax but missed changing it for ARM. Apparently we don't generate these instructions often because no one noticed until now. Thanks to Bill Wendling for the testcase! llvm-svn: 116563 | |||||
* | trailing whitespace | Jim Grosbach | 2010-10-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 116450 | |||||
* | Refactor the ARM 'setend' instruction pattern. Use a single instruction pattern | Jim Grosbach | 2010-10-13 | 1 | -0/+3 | |
| | | | | | | | and handle the operand explicitly. Flesh out encoding information. Add an explicit disassembler testcase for the instruction. llvm-svn: 116432 | |||||
* | Add ARM mode encoding for [SU]XT[BH] and [SU]XTA[BH] instructions. | Jim Grosbach | 2010-10-13 | 1 | -0/+6 | |
| | | | | llvm-svn: 116421 | |||||
* | Add custom encoder for the 's' bit denoting whether an ARM arithmetic | Jim Grosbach | 2010-10-12 | 1 | -2/+4 | |
| | | | | | | | instruction should set the processor status flags or not. Remove the now unnecessary special handling for the bit from the MCCodeEmitter. llvm-svn: 116360 | |||||
* | Split out the "size" field from the encoding. The newer documentation has it as | Bill Wendling | 2010-10-12 | 1 | -9/+18 | |
| | | | | | | a separate bit in the coding. llvm-svn: 116347 | |||||
* | Encoding for ARM-mode VADD.F32 instruction. | Jim Grosbach | 2010-10-12 | 1 | -0/+2 | |
| | | | | llvm-svn: 116338 | |||||
* | More binary encoding stuff, taking advantage of the new "by name" operand | Jim Grosbach | 2010-10-11 | 1 | -0/+7 | |
| | | | | | | matching in tblgen to do the predicate operand. llvm-svn: 116213 | |||||
* | Add a 'pattern' arg to the ARM PseudoNeonI class. | Jim Grosbach | 2010-10-06 | 1 | -1/+3 | |
| | | | | llvm-svn: 115831 | |||||
* | replace stuff like: | Chris Lattner | 2010-10-06 | 1 | -15/+11 | |
| | | | | | | | | | | | | | | let AsmString = !strconcat( !strconcat(!strconcat(opc, "${p}"), !strconcat(".", dt)), !strconcat("\t", asm)); with: let AsmString = !strconcat(opc, "${p}", ".", dt, "\t", asm); :) llvm-svn: 115720 | |||||
* | Increase the number of bits used internally by the ARM target to represent the | Jim Grosbach | 2010-10-05 | 1 | -9/+9 | |
| | | | | | | addressing mode from four to five. llvm-svn: 115645 | |||||
* | Change VLDMQ and VSTMQ to be pseudo instructions. They are expanded after | Bob Wilson | 2010-09-16 | 1 | -0/+11 | |
| | | | | | | | register allocation to VLDMD and VSTMD respectively. This avoids using the dregpair operand modifier. llvm-svn: 114047 | |||||
* | Convert some VTBL and VTBX instructions to use pseudo instructions prior to | Bob Wilson | 2010-09-13 | 1 | -0/+8 | |
| | | | | | | | register allocation. Remove the NEONPreAllocPass, which is no longer needed. Yeah!! llvm-svn: 113818 | |||||
* | VFP/NEON load/store multiple instructions are addrmode4, not 5. | Jim Grosbach | 2010-09-08 | 1 | -4/+4 | |
| | | | | llvm-svn: 113322 | |||||
* | - Cleanup some whitespaces. | Bill Wendling | 2010-08-31 | 1 | -102/+101 | |
| | | | | | | - Convert {0,1} and friends into 0b01, which is identical and more consistent. llvm-svn: 112593 | |||||
* | Use the existing T2I_bin_s_irs pattern instead of creating T2I_bin_sw_irs, which | Bill Wendling | 2010-08-30 | 1 | -21/+0 | |
| | | | | | | | is meant to do exactly the same thing. Thanks to Jim Grosbach for pointing this out! :-) llvm-svn: 112538 | |||||
* | Create Thumb2sI_cpsr and T2sI_cpsr. These new classes indicate that CPSR is the | Bill Wendling | 2010-08-30 | 1 | -3/+24 | |
| | | | | | | | | optional modified register (instead of reg0). Along with r112461 it will make sure that the optional define of CPSR is marked as "def" and will thus mark the instructions using these classes (t2ANDS*) as setting the 's' flag. llvm-svn: 112462 | |||||
* | Start converting NEON load/stores to use pseudo instructions, beginning here | Bob Wilson | 2010-08-25 | 1 | -0/+8 | |
| | | | | | | | | | | | with the VST4 instructions. Until after register allocation, we want to represent sets of adjacent registers by a single super-register. These VST4 pseudo instructions have a single QQ or QQQQ source register operand. They get expanded to the real VST4 instructions with 4 separate D register operands. Once this conversion is complete, we'll be able to remove the NEONPreAllocPass and avoid some fragile and hacky code elsewhere. llvm-svn: 112108 | |||||
* | MC/ARM: Add an ARMOperand class for condition codes. | Daniel Dunbar | 2010-08-11 | 1 | -0/+6 | |
| | | | | llvm-svn: 110788 |