- May 31, 2006
-
-
Evan Cheng authored
llvm-svn: 28581
-
- May 27, 2006
-
-
Evan Cheng authored
RET chain, value1, sign1, value2, sign2, ... llvm-svn: 28510
-
- May 26, 2006
-
-
Evan Cheng authored
llvm-svn: 28505
-
Evan Cheng authored
vector arguments, not three. llvm-svn: 28504
-
Evan Cheng authored
llvm-svn: 28499
-
Evan Cheng authored
llvm-svn: 28498
-
Evan Cheng authored
llvm-svn: 28497
-
Evan Cheng authored
llvm-svn: 28496
-
Evan Cheng authored
llvm-svn: 28488
-
Evan Cheng authored
llvm-svn: 28483
-
Evan Cheng authored
llvm-svn: 28481
-
- May 25, 2006
-
-
Evan Cheng authored
llvm-svn: 28475
-
Evan Cheng authored
the copyto/fromregs instead of making the X86ISD::CALL selection code create them. llvm-svn: 28463
-
- May 24, 2006
-
-
Chris Lattner authored
llvm-svn: 28441
-
- May 23, 2006
-
-
Evan Cheng authored
llvm-svn: 28440
-
Evan Cheng authored
FORMAL_ARGUMENTS nodes include a token operand. llvm-svn: 28439
-
Chris Lattner authored
return argument pops the hidden struct pointer if present, not the caller. For example, in this testcase: struct X { int D, E, F, G; }; struct X bar() { struct X a; a.D = 0; a.E = 1; a.F = 2; a.G = 3; return a; } void foo(struct X *P) { *P = bar(); } We used to emit: _foo: subl $28, %esp movl 32(%esp), %eax movl %eax, (%esp) call _bar addl $28, %esp ret _bar: movl 4(%esp), %eax movl $0, (%eax) movl $1, 4(%eax) movl $2, 8(%eax) movl $3, 12(%eax) ret This is correct on Linux/X86 but not Darwin/X86. With this patch, we now emit: _foo: subl $28, %esp movl 32(%esp), %eax movl %eax, (%esp) call _bar *** addl $24, %esp ret _bar: movl 4(%esp), %eax movl $0, (%eax) movl $1, 4(%eax) movl $2, 8(%eax) movl $3, 12(%eax) *** ret $4 For the record, GCC emits (which is functionally equivalent to our new code): _bar: movl 4(%esp), %eax movl $3, 12(%eax) movl $2, 8(%eax) movl $1, 4(%eax) movl $0, (%eax) ret $4 _foo: pushl %esi subl $40, %esp movl 48(%esp), %esi leal 16(%esp), %eax movl %eax, (%esp) call _bar subl $4, %esp movl 16(%esp), %eax movl %eax, (%esi) movl 20(%esp), %eax movl %eax, 4(%esi) movl 24(%esp), %eax movl %eax, 8(%esi) movl 28(%esp), %eax movl %eax, 12(%esi) addl $40, %esp popl %esi ret This fixes SingleSource/Benchmarks/CoyoteBench/fftbench with LLC and the JIT, and fixes the X86-backend portion of PR729. The CBE still needs to be updated. llvm-svn: 28438
-
- May 19, 2006
-
-
Chris Lattner authored
llvm-svn: 28409
-
- May 17, 2006
-
-
Evan Cheng authored
llvm-svn: 28357
-
- May 16, 2006
-
-
Chris Lattner authored
arguments at once. llvm-svn: 28327
-
Chris Lattner authored
llvm-svn: 28326
-
Evan Cheng authored
llvm-svn: 28324
-
Chris Lattner authored
it doesn't currently use/maintain the chain properly. Also, make the X86ISelLowering.cpp file 80-col clean. llvm-svn: 28320
-
- May 12, 2006
-
-
Chris Lattner authored
llvm-svn: 28265
-
- May 06, 2006
-
-
Chris Lattner authored
llvm-svn: 28139
-
- May 05, 2006
-
-
Chris Lattner authored
llvm-svn: 28131
-
- May 03, 2006
-
-
Owen Anderson authored
Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. llvm-svn: 28074
-
- Apr 28, 2006
-
-
Evan Cheng authored
passing by value. llvm-svn: 28015
-
Evan Cheng authored
from each vector. e.g. shuffle(G1, G2, 7, 1, 5, 2) ==> movaps _G2, %xmm0 shufps $151, _G1, %xmm0 shufps $216, %xmm0, %xmm0 llvm-svn: 28011
-
Evan Cheng authored
FORMAL_ARGUMENTS SDOperand in the return result vector. llvm-svn: 28009
-
- Apr 27, 2006
-
-
Evan Cheng authored
for now. Patch contributed by Alexander Friedman. llvm-svn: 27994
-
Evan Cheng authored
llvm-svn: 27992
-
Evan Cheng authored
llvm-svn: 27989
-
Evan Cheng authored
llvm-svn: 27988
-
Evan Cheng authored
- Fixed vararg support. llvm-svn: 27985
-
- Apr 26, 2006
-
-
Evan Cheng authored
llvm-svn: 27980
-
Evan Cheng authored
llvm-svn: 27975
-
- Apr 25, 2006
-
-
Evan Cheng authored
llvm-svn: 27972
-
Evan Cheng authored
llvm-svn: 27961
-
- Apr 24, 2006
-
-
Evan Cheng authored
llvm-svn: 27959
-