- 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
-
- Jun 04, 2009
-
-
Stuart Hastings authored
llvm-svn: 72817
-
- Jun 03, 2009
-
-
Stuart Hastings authored
llvm-svn: 72808
-
- May 28, 2009
-
-
Bill Wendling authored
the Intel manual (screenshot) says it should be 0b11110110 (f6). The existing encoding causes a disassembly conflict with MMX_PAVGBrm, which really should be 0f e0." Patch by Sean Callanan! llvm-svn: 72508
-
- Apr 27, 2009
-
-
Nate Begeman authored
PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. llvm-svn: 70225
-
- Apr 24, 2009
-
-
Rafael Espindola authored
llvm-svn: 69967
-
Nate Begeman authored
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. llvm-svn: 69952
-
- Feb 23, 2009
-
-
Evan Cheng authored
llvm-svn: 65313
-
- Dec 12, 2008
-
-
Mon P Wang authored
Added support for TRUNC v8i16 to v8i8 for X86 (MMX) llvm-svn: 60916
-
- Dec 03, 2008
-
-
Evan Cheng authored
llvm-svn: 60499
-
Dan Gohman authored
llvm-svn: 60487
-
- Nov 05, 2008
-
-
Evan Cheng authored
llvm-svn: 58752
-
- Aug 27, 2008
-
-
Bill Wendling authored
SSE2 registers as well as the MMX registers. llvm-svn: 55436
-
- Aug 25, 2008
-
-
Bill Wendling authored
llvm-svn: 55318
-
Bill Wendling authored
instructions on having SSE2. llvm-svn: 55317
-
- Aug 23, 2008
-
-
Anton Korobeynikov authored
Is there way to avoid explicit target check? llvm-svn: 55238
-
- Jul 25, 2008
-
-
Nate Begeman authored
llvm-svn: 54026
-
- Jun 25, 2008
-
-
Dale Johannesen authored
load,store,call,return,bitcast. This is enough to make call and return work. llvm-svn: 52691
-
- May 29, 2008
-
-
Evan Cheng authored
llvm-svn: 51667
-
- May 09, 2008
-
-
Evan Cheng authored
Note, some of the code will be moved into target independent part of DAG combiner in a subsequent patch. llvm-svn: 50918
-
- May 08, 2008
-
-
Evan Cheng authored
Handle vector move / load which zero the destination register top bits (i.e. movd, movq, movss (addr), movsd (addr)) with X86 specific dag combine. llvm-svn: 50838
-
- May 03, 2008
-
-
Evan Cheng authored
Add separate intrinsics for MMX / SSE shifts with i32 integer operands. This allow us to simplify the horribly complicated matching code. llvm-svn: 50601
-
- Apr 25, 2008
-
-
Evan Cheng authored
llvm-svn: 50291
-
Evan Cheng authored
llvm-svn: 50289
-
Evan Cheng authored
llvm-svn: 50278
-
- Apr 21, 2008
-
-
Dan Gohman authored
llvm-svn: 50053
-