- Jul 22, 2011
-
-
Bruno Cardoso Lopes authored
vxorps + vinsertf128 pair of instructions llvm-svn: 135727
-
Bruno Cardoso Lopes authored
direclty supported and should be promoted and handled by smaller shuffles llvm-svn: 135726
-
Bruno Cardoso Lopes authored
llvm-svn: 135725
-
Owen Anderson authored
Get rid of the extraneous GPR operand on so_reg_imm operands, which in turn necessitates a lot of changes to related bits. llvm-svn: 135722
-
Jim Grosbach authored
llvm-svn: 135719
-
Jim Grosbach authored
Add two-operand instruction aliases. Add parsing and encoding tests for variants of the instruction. llvm-svn: 135713
-
Jim Grosbach authored
Add two-operand instruction aliases. Add parsing and encoding tests for variants of the instruction. llvm-svn: 135712
-
- Jul 21, 2011
-
-
Jim Grosbach authored
llvm-svn: 135706
-
Nicolas Geoffray authored
llvm-svn: 135704
-
Jim Grosbach authored
Aliases for LDM/STM. The single-register versions should encode to LDR/STR with writeback, but we don't (yet) get that correct. Neither does Darwin's system assembler, though, so that's not a deal-breaker of a limitation. llvm-svn: 135702
-
Oscar Fuentes authored
llvm-svn: 135698
-
Owen Anderson authored
Split up the ARM so_reg ComplexPattern into so_reg_reg and so_reg_imm, allowing us to distinguish the encodings that use shifted registers from those that use shifted immediates. This is necessary to allow the fixed-length decoder to distinguish things like BICS vs LDRH. llvm-svn: 135693
-
Jim Grosbach authored
llvm-svn: 135682
-
Bruno Cardoso Lopes authored
Stefanovic. I removed the part that actually emits the instructions cause I want that to get in better shape first and in incremental steps. This also makes it easier to review the upcoming parts. llvm-svn: 135678
-
Jay Foad authored
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef. llvm-svn: 135673
-
Bruno Cardoso Lopes authored
- Add more bitcasts for v16i16 - Since 135661 and 135662 already added the splat logic, just add one more splat test for v16i16 llvm-svn: 135663
-
Bruno Cardoso Lopes authored
instruction introduced in AVX, which can operate on 128 and 256-bit vectors. It considers a 256-bit vector as two independent 128-bit lanes. It can permute any 32 or 64 elements inside a lane, and restricts the second lane to have the same permutation of the first one. With the improved splat support introduced early today, adding codegen for this instruction enable more efficient 256-bit code: Instead of: vextractf128 $0, %ymm0, %xmm0 punpcklbw %xmm0, %xmm0 punpckhbw %xmm0, %xmm0 vinsertf128 $0, %xmm0, %ymm0, %ymm1 vinsertf128 $1, %xmm0, %ymm1, %ymm0 vextractf128 $1, %ymm0, %xmm1 shufps $1, %xmm1, %xmm1 movss %xmm1, 28(%rsp) movss %xmm1, 24(%rsp) movss %xmm1, 20(%rsp) movss %xmm1, 16(%rsp) vextractf128 $0, %ymm0, %xmm0 shufps $1, %xmm0, %xmm0 movss %xmm0, 12(%rsp) movss %xmm0, 8(%rsp) movss %xmm0, 4(%rsp) movss %xmm0, (%rsp) vmovaps (%rsp), %ymm0 We get: vextractf128 $0, %ymm0, %xmm0 punpcklbw %xmm0, %xmm0 punpckhbw %xmm0, %xmm0 vinsertf128 $0, %xmm0, %ymm0, %ymm1 vinsertf128 $1, %xmm0, %ymm1, %ymm0 vpermilps $85, %ymm0, %ymm0 llvm-svn: 135662
-
Bruno Cardoso Lopes authored
refactor the code and add a bunch of comments. The final shuffle emitted by handling 256-bit types is suitable for the VPERM shuffle instruction which is going to be introduced in a next commit (with a testcase which cover this commit) llvm-svn: 135661
-
Bruno Cardoso Lopes authored
llvm-svn: 135660
-
Bruno Cardoso Lopes authored
llvm-svn: 135659
-
Bruno Cardoso Lopes authored
llvm-svn: 135658
-
Bruno Cardoso Lopes authored
llvm-svn: 135657
-
Bruno Cardoso Lopes authored
llvm-svn: 135656
-
Bill Wendling authored
llvm-svn: 135645
-
Evan Cheng authored
Sink ARMMCExpr and ARMAddressingModes into MC layer. First step to separate ARM MC code from target. llvm-svn: 135636
-
Bill Wendling authored
llvm-svn: 135635
-
Bill Wendling authored
llvm-svn: 135634
-
- Jul 20, 2011
-
-
Jim Grosbach authored
Move the shift operator and special value (32 encoded as 0 for PKHTB) handling into the instruction printer. This cleans up a bit of the disassembler special casing for these instructions, more easily handles not printing the operand at all for "lsl #0" and prepares for correct asm parsing of these operands. llvm-svn: 135626
-
Jim Grosbach authored
Move common definitions for ARM and Thumb2 into ARMInstrFormats.td and rename them to be a bit more descriptive that they're for the PKH instructions. llvm-svn: 135617
-
Jim Grosbach authored
The shift type is implied by the instruction (PKHBT vs. PKHTB) and so shouldn't be also encoded as part of the shift value immediate. Otherwise we're able to represent invalid instructions, plus it needlessly complicates the representation. Preparatory work for asm parsing of these instructions. llvm-svn: 135616
-
Benjamin Kramer authored
llvm-svn: 135613
-
Evan Cheng authored
There is still a bit more refactoring left to do in Targets. But we are now very close to fixing all the layering issues in MC. llvm-svn: 135611
-
Eli Friedman authored
llvm-svn: 135607
-
Jim Grosbach authored
Correctly handle 's' bit and predication suffices. Add parsing and encoding tests. llvm-svn: 135596
-
Evan Cheng authored
- Introduce JITDefault code model. This tells targets to set different default code model for JIT. This eliminates the ugly hack in TargetMachine where code model is changed after construction. llvm-svn: 135580
-
Evan Cheng authored
TargetLoweringObjectFileImpl down to MCObjectFileInfo. TargetAsmInfo is done to one last method. It's *almost* gone! llvm-svn: 135569
-
NAKAMURA Takumi authored
X86Subtarget.h: Assume "x86_64-cygwin", though it has not been released yet, to appease test/CodeGen/X86 on cygwin. llvm-svn: 135564
-
Benjamin Kramer authored
llvm-svn: 135555
-
Akira Hatanaka authored
llvm-svn: 135550
-
Akira Hatanaka authored
llvm-svn: 135546
-