- 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
-
- Dec 17, 2009
-
-
Jeffrey Yasskin authored
llvm-svn: 91632
-
Evan Cheng authored
llvm-svn: 91623
-
Chris Lattner authored
llvm-svn: 91612
-
Ken Dyck authored
incrementing the simple value type of the 16-bit type, which would give the wrong type if an intemediate MVT (such as i24) were introduced. llvm-svn: 91602
-
Johnny Chen authored
llvm-svn: 91571
-
- Dec 16, 2009
-
-
John McCall authored
context) increment-of-bool idiom. llvm-svn: 91564
-
Jim Grosbach authored
llvm-svn: 91555
-
Johnny Chen authored
bytes of Inst to 0x0000 for the benefit of the Thumb decoder. llvm-svn: 91496
-
Evan Cheng authored
llvm-svn: 91489
-
John McCall authored
llvm-svn: 91481
-
- Dec 15, 2009
-
-
Jeffrey Yasskin authored
remove start/finishGVStub and the BufferState helper class from the MachineCodeEmitter interface. It has the side-effect of not setting the indirect global writable and then executable on ARM, but that shouldn't be necessary. llvm-svn: 91464
-
Johnny Chen authored
llvm-svn: 91434
-
Evan Cheng authored
llvm-svn: 91417
-
Kenneth Uildriks authored
llvm-svn: 91410
-
Evan Cheng authored
llvm-svn: 91405
-
Evan Cheng authored
llvm-svn: 91381
-
Jim Grosbach authored
llvm-svn: 91371
-
Dan Gohman authored
llvm-svn: 91362
-
- Dec 14, 2009
-
-
Johnny Chen authored
between BR_JTr and STREXD. llvm-svn: 91339
-
Jim Grosbach authored
llvm-svn: 91333
-
Jim Grosbach authored
llvm-svn: 91329
-
Johnny Chen authored
llvm-svn: 91327
-
Jim Grosbach authored
llvm-svn: 91321
-
Chris Lattner authored
Here's the diagnostic from clang: /Volumes/Data/dgregor/Projects/llvm/lib/Target/CppBackend/CPPBackend.cpp:989:23: warning: 'gv' is always NULL in this context printConstant(gv); ^ 1 diagnostic generated. llvm-svn: 91318
-
Jim Grosbach authored
llvm-svn: 91313
-
Jim Grosbach authored
llvm-svn: 91310
-
Jim Grosbach authored
llvm-svn: 91307
-
Jim Grosbach authored
llvm-svn: 91305
-
Jim Grosbach authored
llvm-svn: 91284
-
Bill Wendling authored
llvm-svn: 91274
-
Jim Grosbach authored
llvm-svn: 91260
-
- Dec 13, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 91232
-
Eli Friedman authored
llvm-svn: 91230
-
- Dec 12, 2009
-
-
Eli Friedman authored
merging x >u 5 and x <s 20 because it's impossible to implement. llvm-svn: 91228
-
Evan Cheng authored
llvm-svn: 91223
-
Anton Korobeynikov authored
No testcase yet - it seems we're exposing generic codegen bugs. llvm-svn: 91221
-
Evan Cheng authored
llvm-svn: 91220
-
Evan Cheng authored
llvm-svn: 91219
-
Jim Grosbach authored
just issues an error for the moment. The front end won't yet generate these intrinsics for ARM, so this is behind the scenes until complete. llvm-svn: 91200
-