- Jan 26, 2005
-
-
Andrew Lenharth authored
llvm-svn: 19847
-
Andrew Lenharth authored
llvm-svn: 19844
-
Andrew Lenharth authored
llvm-svn: 19843
-
- Jan 25, 2005
-
-
Chris Lattner authored
llvm-svn: 19835
-
Chris Lattner authored
of FP ops. llvm-svn: 19834
-
Andrew Lenharth authored
llvm-svn: 19833
-
Andrew Lenharth authored
llvm-svn: 19821
-
- Jan 24, 2005
-
-
Andrew Lenharth authored
llvm-svn: 19816
-
Andrew Lenharth authored
llvm-svn: 19815
-
Andrew Lenharth authored
llvm-svn: 19814
-
Andrew Lenharth authored
llvm-svn: 19813
-
Chris Lattner authored
llvm-svn: 19799
-
Chris Lattner authored
llvm-svn: 19798
-
Chris Lattner authored
all. This should speed up the X86 backend fairly significantly on integer codes. Now if only we didn't have to compute livevar still... ;-) llvm-svn: 19796
-
- Jan 23, 2005
-
-
Chris Lattner authored
llvm-svn: 19777
-
Reid Spencer authored
llvm-svn: 19776
-
Reid Spencer authored
doesn't support certain directives and symbols on cygwin are prefixed with an underscore. This patch makes the necessary adjustments to the output. llvm-svn: 19775
-
Andrew Lenharth authored
llvm-svn: 19764
-
- Jan 21, 2005
-
-
Chris Lattner authored
llvm-svn: 19733
-
Chris Lattner authored
llvm-svn: 19731
-
Chris Lattner authored
llvm-svn: 19728
-
- Jan 20, 2005
-
-
Chris Lattner authored
fixes most of the remaining llc-beta failures. llvm-svn: 19716
-
Chris Lattner authored
llvm-svn: 19711
-
- Jan 19, 2005
-
-
Chris Lattner authored
pressure, not decreases register pressure. Fix problem where we accidentally swapped the operands of SHLD, which caused fourinarow to fail. This fixes fourinarow. llvm-svn: 19697
-
Chris Lattner authored
llvm-svn: 19694
-
Chris Lattner authored
typically cost 1 cycle) instead of shld/shrd instruction (which are typically 6 or more cycles). This also saves code space. For example, instead of emitting: rotr: mov %EAX, DWORD PTR [%ESP + 4] mov %CL, BYTE PTR [%ESP + 8] shrd %EAX, %EAX, %CL ret rotli: mov %EAX, DWORD PTR [%ESP + 4] shrd %EAX, %EAX, 27 ret Emit: rotr32: mov %CL, BYTE PTR [%ESP + 8] mov %EAX, DWORD PTR [%ESP + 4] ror %EAX, %CL ret rotli32: mov %EAX, DWORD PTR [%ESP + 4] ror %EAX, 27 ret We also emit byte rotate instructions which do not have a sh[lr]d counterpart at all. llvm-svn: 19692
-
Chris Lattner authored
llvm-svn: 19690
-
Chris Lattner authored
llvm-svn: 19689
-
Chris Lattner authored
llvm-svn: 19687
-
Chris Lattner authored
This allows us to generate this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, DWORD PTR [%ESP + 8] shld %EDX, %EDX, 2 shl %EAX, 2 ret instead of this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, DWORD PTR [%ESP + 8] mov %EDX, %EAX shrd %EDX, %ECX, 30 shl %EAX, 2 ret Note the magically transmogrifying immediate. llvm-svn: 19686
-
Chris Lattner authored
Add default impl of commuteInstruction Add notes about ugly V9 code. llvm-svn: 19684
-
Chris Lattner authored
foo: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, DWORD PTR [%ESP + 8] shrd %EAX, %EDX, 2 sar %EDX, 2 ret instead of this: test1: mov %ECX, DWORD PTR [%ESP + 4] shr %ECX, 2 mov %EDX, DWORD PTR [%ESP + 8] mov %EAX, %EDX shl %EAX, 30 or %EAX, %ECX sar %EDX, 2 ret and long << 2 to this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, DWORD PTR [%ESP + 8] *** mov %EDX, %EAX shrd %EDX, %ECX, 30 shl %EAX, 2 ret instead of this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, %EAX shr %ECX, 30 mov %EDX, DWORD PTR [%ESP + 8] shl %EDX, 2 or %EDX, %ECX shl %EAX, 2 ret The extra copy (marked ***) can be eliminated when I teach the code generator that shrd32rri8 is really commutative. llvm-svn: 19681
-
Chris Lattner authored
llvm-svn: 19678
-
Chris Lattner authored
range. Either they are undefined (the default), they mask the shift amount to the size of the register (X86, Alpha, etc), or they extend the shift (PPC). This defaults to undefined, which is conservatively correct. llvm-svn: 19677
-
- Jan 18, 2005
-
-
Chris Lattner authored
FP_EXTEND from! llvm-svn: 19674
-
Chris Lattner authored
llvm-svn: 19673
-
Chris Lattner authored
don't need to even think about F32 in the X86 code anymore. llvm-svn: 19672
-
Chris Lattner authored
llvm-svn: 19667
-
Chris Lattner authored
llvm-svn: 19661
-
Tanya Lattner authored
llvm-svn: 19660
-