- May 13, 2010
-
-
Chris Lattner authored
after testing before committing. llvm-svn: 103681
-
Chris Lattner authored
llvm-svn: 103677
-
Chris Lattner authored
lower them to the correct x86-64 instructions since we don't have a clean way to handle this in td files yet. rdar://7947184 llvm-svn: 103668
-
Chris Lattner authored
part first. rdar://7947184 llvm-svn: 103660
-
- May 07, 2010
-
-
Daniel Dunbar authored
- This fixes "leal 0, %eax", for example. llvm-svn: 103205
-
- May 06, 2010
-
-
Sean Callanan authored
and %rcr_, leaving just %cr_ which is what people expect. Updated the disassembler to support this unified register set. Added a testcase to verify that the registers continue to be decoded correctly. llvm-svn: 103196
-
- May 03, 2010
-
-
Kevin Enderby authored
caused the a pushl instruction to be incorrectly encoding using only two bytes of immediate, causing the following 2 instruction bytes to be part of the 32-bit immediate value. Also fixed the one byte form of push to be used when the immediate would fit in a signed extended byte. Lastly changed the names to not include the 32 of PUSH32 since they actually push the size of the stack pointer. llvm-svn: 102951
-
- Apr 30, 2010
-
-
Dan Gohman authored
llvm-svn: 102730
-
- Apr 29, 2010
-
-
Kevin Enderby authored
Operand size override prefix to be part of their records. llvm-svn: 102556
-
- Apr 28, 2010
-
-
Evan Cheng authored
llvm-svn: 102493
-
Evan Cheng authored
Rather than having a ton of patterns for double shift instructions, e.g. SHLD16rrCL, just perform custom dag combine to form x86 specific dag so they match to the same pattern. This also makes sure later dag combine do not cause isel to miss them (e.g. promoting i16 to i32). llvm-svn: 102485
-
- Apr 27, 2010
-
-
Evan Cheng authored
llvm-svn: 102467
-
- Apr 21, 2010
-
-
Evan Cheng authored
llvm-svn: 101979
-
- Apr 17, 2010
-
-
Evan Cheng authored
llvm-svn: 101621
-
- Apr 06, 2010
-
-
Evan Cheng authored
llvm-svn: 100480
-
- Apr 02, 2010
-
-
Eric Christopher authored
a new subtarget option for AES and check for the support. Add "westmere" line of processors and add AES-NI support to the core i7. Add a couple of TODOs for information I couldn't verify. llvm-svn: 100231
-
- Mar 28, 2010
-
-
Chris Lattner authored
*input* of other type, which is the VT. llvm-svn: 99749
-
Chris Lattner authored
llvm-svn: 99743
-
Chris Lattner authored
nodes all have an EFLAGS result when made by isel lowering. llvm-svn: 99736
-
- Mar 27, 2010
-
-
Chris Lattner authored
llvm-svn: 99700
-
Chris Lattner authored
llvm-svn: 99686
-
- Mar 25, 2010
-
-
Jakob Stoklund Olesen authored
Remove much horribleness from X86InstrFormats as a result. Similar simplifications are probably possible for other targets. llvm-svn: 99539
-
Chris Lattner authored
handles dead implicit results more aggressively. More to come, I think this is now just a data entry problem. llvm-svn: 99486
-
Evan Cheng authored
addl $12, %esp popl %esi popl %edi popl %ebx popl %ebp jmpl *__Block_deallocator-L1$pb(%esi) # TAILCALL The problem is the global base register is assigned GR32 register class. TCRETURNmi needs the registers making up the address mode to have the GR32_TC register class. The *proper* fix is for X86DAGToDAGISel::getGlobalBaseReg() to return a copy from the global base register of the machine function rather than returning the register itself. But that has the potential of causing it to be coalesced to a more restrictive register class: GR32_TC. It can introduce additional copies and spills. For something as important the PIC base, it's not worth it especially since this is not an issue on 64-bit. llvm-svn: 99455
-
- Mar 24, 2010
-
-
Chris Lattner authored
and defining the add pattern with Pat<>, eliminating a use of parallel. llvm-svn: 99375
-
Chris Lattner authored
llvm-svn: 99370
-
Chris Lattner authored
ISD node. The only change in the generated isel code are comments like: < // Src: (X86dec_flag:i16 GR16:i16:$src) --- > // Src: (X86dec_flag:i16:i32 GR16:i16:$src) because now it knows that X86dec_flag returns both an i16 (for the result) and an i32 (for EFLAGS) in this case. Wewt. llvm-svn: 99369
-
Chris Lattner authored
llvm-svn: 99359
-
Chris Lattner authored
llvm-svn: 99358
-
- Mar 19, 2010
-
-
Chris Lattner authored
that they are dead. llvm-svn: 99000
-
Chris Lattner authored
dag isel gen instead of instruction properties. This allows the oh-so-useful behavior of matching a variadic non-root node. llvm-svn: 98934
-
Chris Lattner authored
can't match or just have no testcases. Will remove after confirmation from dan that they really are dead. llvm-svn: 98930
-
Chris Lattner authored
to input patterns, we can fix X86ISD::CMP and X86ISD::BT as taking two inputs (which have to be the same type) and *returning an i32*. This is how the SDNodes get made in the graph, but we weren't able to model it this way due to deficiencies in the pattern language. Now we can change things like this: def UCOM_FpIr80: FpI_<(outs), (ins RFP80:$lhs, RFP80:$rhs), CompareFP, - [(X86cmp RFP80:$lhs, RFP80:$rhs), - (implicit EFLAGS)]>; // CC = ST(0) cmp ST(i) + [(set EFLAGS, (X86cmp RFP80:$lhs, RFP80:$rhs))]>; and fix terrible crimes like this: -def : Pat<(parallel (X86cmp GR8:$src1, 0), (implicit EFLAGS)), +def : Pat<(X86cmp GR8:$src1, 0), (TEST8rr GR8:$src1, GR8:$src1)>; This relies on matching the result of TEST8rr (which is EFLAGS, which is an implicit def) to the result of X86cmp, an i32. llvm-svn: 98903
-
- Mar 18, 2010
-
-
Chris Lattner authored
llvm-svn: 98864
-
- Mar 16, 2010
-
-
Chris Lattner authored
with the integrated assembler! llvm-svn: 98615
-
- Mar 14, 2010
-
-
Chris Lattner authored
the operand type. llvm-svn: 98507
-
Chris Lattner authored
PR4841. Patch by Craig Smith! llvm-svn: 98496
-
Evan Cheng authored
Do not force indirect tailcall through fixed registers: eax, r11. Add support to allow loads to be folded to tail call instructions. llvm-svn: 98465
-
- Mar 09, 2010
-
-
Daniel Dunbar authored
MC/X86: Rename alternate spellings of ADD{8,16,32} and mark as "code gen only" so they don't get selected by the asm matcher. llvm-svn: 98098
-
Daniel Dunbar authored
MC/X86: Rename alternate spellings of CMP{8,16,32} and mark as "code gen only" so they don't get selected by the asm matcher. llvm-svn: 98097
-