- Oct 04, 2010
-
-
Bill Wendling authored
it in with the SSSE3 instructions. Steward! Could you place this chair by the aft sun deck? I'm trying to get away from the Astors. They are such boors! llvm-svn: 115552
-
- Oct 03, 2010
-
-
Chris Lattner authored
the immediate field of pshufw is actually an 8-bit field, not a 8-bit field that is sign extended. This fixes PR8288 llvm-svn: 115473
-
Chris Lattner authored
the right file. The assembler supports all the 3dnow instructions now, but not the "3dnowa" ones. llvm-svn: 115468
-
Chris Lattner authored
llvm-svn: 115429
-
- Oct 02, 2010
-
-
Chris Lattner authored
backing int_x86_ssse3_pshuf_w got removed. This caused PR8280. llvm-svn: 115422
-
- Oct 01, 2010
-
-
Dale Johannesen authored
The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. llvm-svn: 115243
-
- Sep 09, 2010
-
-
Dale Johannesen authored
llvm-svn: 113501
-
Dale Johannesen authored
uses MMX, even if it also uses other things) from InstrSSE into InstrMMX. No (intended) functional change. llvm-svn: 113462
-
Dale Johannesen authored
llvm-svn: 113420
-
- Sep 08, 2010
-
-
Dale Johannesen authored
llvm-svn: 113406
-
Dale Johannesen authored
Omission of memory form of PI2PD is intentional; this does not use an MMX register and does not put the chip into MMX mode (PI2PS, oddly enough, does). Operands of PI2PS follow the gcc builtin, not Intel. llvm-svn: 113388
-
- Sep 07, 2010
-
-
Dale Johannesen authored
Enable palignr intrinsic. These may need adjustment for a new VT in due course. llvm-svn: 113233
-
- Jul 15, 2010
-
-
Chris Lattner authored
this fixes rdar://8192860. Unfortunately it can only be triggered with llc because llvm-mc matches another (correctly encoded) version of this, so no testcase. llvm-svn: 108454
-
- Jul 05, 2010
-
-
Chris Lattner authored
llvm-svn: 107610
-
- May 24, 2010
-
-
Dan Gohman authored
llvm-svn: 104552
-
- May 20, 2010
-
-
Dan Gohman authored
have a pattern and it had an invalid encoding. llvm-svn: 104244
-
- May 03, 2010
-
-
Kevin Enderby authored
mm to mm/m64 and the Move quadword from xmm2/mem64 to xmm1 had the incorrect encodings. llvm-svn: 102952
-
- Apr 23, 2010
-
-
Stuart Hastings authored
llvm-svn: 102199
-
- Mar 28, 2010
-
-
Chris Lattner authored
llvm-svn: 99748
-
- Mar 15, 2010
-
-
Chris Lattner authored
llvm-svn: 98531
-
- Mar 08, 2010
-
-
Chris Lattner authored
pattern which is broken (source and address swapped). llvm-svn: 97958
-
- Feb 28, 2010
-
-
Dan Gohman authored
llvm-svn: 97348
-
- Feb 23, 2010
-
-
Chris Lattner authored
then use it as an MMX register (!?). llvm-svn: 96901
-
Chris Lattner authored
don't alis it in the MMX .td file with a different width, split into two X86ISD opcodes. This fixes an x86 testcase. llvm-svn: 96859
-
- Feb 10, 2010
-
-
David Greene authored
TableGen fragment refactoring. Move some utility TableGen defs, classes, etc. into a common file so they may be used my multiple pattern files. We will use this for the AVX specification to help with the transition from the current SSE specification. llvm-svn: 95727
-
- Feb 05, 2010
-
-
Chris Lattner authored
llvm-svn: 95435
-
- Jan 24, 2010
-
-
Mon P Wang authored
the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. llvm-svn: 94338
-
- Dec 18, 2009
-
-
Sean Callanan authored
X86 instruction tables. Also (while I was at it) cleaned up the X86 tables, removing tabs and 80-line violations. This patch was reviewed by Chris Lattner, but please let me know if there are any problems. * X86*.td Removed tabs and fixed 80-line violations * X86Instr64bit.td (IRET, POPCNT, BT_, LSL, SWPGS, PUSH_S, POP_S, L_S, SMSW) Added (CALL, CMOV) Added qualifiers (JMP) Added PC-relative jump instruction (POPFQ/PUSHFQ) Added qualifiers; renamed PUSHFQ to indicate that it is 64-bit only (ambiguous since it has no REX prefix) (MOV) Added rr form going the other way, which is encoded differently (MOV) Changed immediates to offsets, which is more correct; also fixed MOV64o64a to have to a 64-bit offset (MOV) Fixed qualifiers (MOV) Added debug-register and condition-register moves (MOVZX) Added more forms (ADC, SUB, SBB, AND, OR, XOR) Added reverse forms, which (as with MOV) are encoded differently (ROL) Made REX.W required (BT) Uncommented mr form for disassembly only (CVT__2__) Added several missing non-intrinsic forms (LXADD, XCHG) Reordered operands to make more sense for MRMSrcMem (XCHG) Added register-to-register forms (XADD, CMPXCHG, XCHG) Added non-locked forms * X86InstrSSE.td (CVTSS2SI, COMISS, CVTTPS2DQ, CVTPS2PD, CVTPD2PS, MOVQ) Added * X86InstrFPStack.td (COM_FST0, COMP_FST0, COM_FI, COM_FIP, FFREE, FNCLEX, FNOP, FXAM, FLDL2T, FLDL2E, FLDPI, FLDLG2, FLDLN2, F2XM1, FYL2X, FPTAN, FPATAN, FXTRACT, FPREM1, FDECSTP, FINCSTP, FPREM, FYL2XP1, FSINCOS, FRNDINT, FSCALE, FCOMPP, FXSAVE, FXRSTOR) Added (FCOM, FCOMP) Added qualifiers (FSTENV, FSAVE, FSTSW) Fixed opcode names (FNSTSW) Added implicit register operand * X86InstrInfo.td (opaque512mem) Added for FXSAVE/FXRSTOR (offset8, offset16, offset32, offset64) Added for MOV (NOOPW, IRET, POPCNT, IN, BTC, BTR, BTS, LSL, INVLPG, STR, LTR, PUSHFS, PUSHGS, POPFS, POPGS, LDS, LSS, LES, LFS, LGS, VERR, VERW, SGDT, SIDT, SLDT, LGDT, LIDT, LLDT, LODSD, OUTSB, OUTSW, OUTSD, HLT, RSM, FNINIT, CLC, STC, CLI, STI, CLD, STD, CMC, CLTS, XLAT, WRMSR, RDMSR, RDPMC, SMSW, LMSW, CPUID, INVD, WBINVD, INVEPT, INVVPID, VMCALL, VMCLEAR, VMLAUNCH, VMRESUME, VMPTRLD, VMPTRST, VMREAD, VMWRITE, VMXOFF, VMXON) Added (NOOPL, POPF, POPFD, PUSHF, PUSHFD) Added qualifier (JO, JNO, JB, JAE, JE, JNE, JBE, JA, JS, JNS, JP, JNP, JL, JGE, JLE, JG, JCXZ) Added 32-bit forms (MOV) Changed some immediate forms to offset forms (MOV) Added reversed reg-reg forms, which are encoded differently (MOV) Added debug-register and condition-register moves (CMOV) Added qualifiers (AND, OR, XOR, ADC, SUB, SBB) Added reverse forms, like MOV (BT) Uncommented memory-register forms for disassembler (MOVSX, MOVZX) Added forms (XCHG, LXADD) Made operand order make sense for MRMSrcMem (XCHG) Added register-register forms (XADD, CMPXCHG) Added unlocked forms * X86InstrMMX.td (MMX_MOVD, MMV_MOVQ) Added forms * X86InstrInfo.cpp: Changed PUSHFQ to PUSHFQ64 to reflect table change * X86RegisterInfo.td: Added debug and condition register sets * x86-64-pic-3.ll: Fixed testcase to reflect call qualifier * peep-test-3.ll: Fixed testcase to reflect test qualifier * cmov.ll: Fixed testcase to reflect cmov qualifier * loop-blocks.ll: Fixed testcase to reflect call qualifier * x86-64-pic-11.ll: Fixed testcase to reflect call qualifier * 2009-11-04-SubregCoalescingBug.ll: Fixed testcase to reflect call qualifier * x86-64-pic-2.ll: Fixed testcase to reflect call qualifier * live-out-reg-info.ll: Fixed testcase to reflect test qualifier * tail-opts.ll: Fixed testcase to reflect call qualifiers * x86-64-pic-10.ll: Fixed testcase to reflect call qualifier * bss-pagealigned.ll: Fixed testcase to reflect call qualifier * x86-64-pic-1.ll: Fixed testcase to reflect call qualifier * widen_load-1.ll: Fixed testcase to reflect call qualifier llvm-svn: 91638
-
- Oct 29, 2009
-
-
Dan Gohman authored
bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. llvm-svn: 85517
-
- Aug 12, 2009
-
-
Daniel Dunbar authored
- Used to mark fake instructions which don't correspond to an actual machine instruction (or are duplicates of a real instruction). This is to be used for "special cases" in the .td files, which should be ignored by things like the assembler and disassembler. We still need a good solution to handle pervasive duplication, like with the Int_ instructions. - Set the bit on fake "mov 0" style instructions, which allows turning an assembler matcher warning into a hard error. - -2 FIXMEs. llvm-svn: 78731
-
- Aug 11, 2009
-
-
Eric Christopher authored
No functional change. llvm-svn: 78608
-
- Aug 03, 2009
-
-
Evan Cheng authored
llvm-svn: 77978
-
Rafael Espindola authored
llvm-svn: 77956
-
Rafael Espindola authored
llvm-svn: 77944
-
Rafael Espindola authored
Fixes PR4669 llvm-svn: 77940
-
- Jul 22, 2009
-
-
Eli Friedman authored
llvm-svn: 76713
-
- Jul 09, 2009
-
-
Eli Friedman authored
llvm-svn: 75142
-
- Jun 23, 2009
-
-
Bill Wendling authored
instructions, which implies that there is an explicit memory operand. There is (however) no explicit memory operand; although this is a store, the only memory operand is implicit, indicated by DS:EDI. This causes the table-generation code for the disassembler to report an error." Patch by Sean Callanan! llvm-svn: 73989
-
- Jun 06, 2009
-
-
Eli Friedman authored
nodes for vectors with an i16 element type. Add an optimization for building a vector which is all zeros/undef except for the bottom element, where the bottom element is an i8 or i16. llvm-svn: 72988
-
Eli Friedman authored
llvm-svn: 72985
-