- Dec 25, 2005
-
-
Andrew Lenharth authored
llvm-svn: 25011
-
Duraid Madina authored
llvm-svn: 25010
-
Duraid Madina authored
llvm-svn: 25009
-
Andrew Lenharth authored
llvm-svn: 25008
-
Andrew Lenharth authored
llvm-svn: 25007
-
Andrew Lenharth authored
Alpha needs to custom lower *DIV and *REM llvm-svn: 25006
-
Andrew Lenharth authored
llvm-svn: 25005
-
- Dec 24, 2005
-
-
Evan Cheng authored
llvm-svn: 25004
-
Andrew Lenharth authored
are for function prologue. TODO: move external symbols over to using RelLit. : have a pattern that matches constpool|globaladdr : have a pattern that matches (add x imm) -> x, imm or (...) -> ..., 0 llvm-svn: 25003
-
Andrew Lenharth authored
supported. This almost completes memory operations. llvm-svn: 25002
-
Andrew Lenharth authored
Lower GOT relative addresses to Lo and HI. Update both ISels to select them when they can. Saves instructions here and there. llvm-svn: 25001
-
Andrew Lenharth authored
llvm-svn: 25000
-
Nate Begeman authored
constant offsets from statics into the address arithmetic. llvm-svn: 24999
-
- Dec 23, 2005
-
-
Reid Spencer authored
Don't install contents of CVS directories and don't double install when srcdir == objdir. llvm-svn: 24998
-
Evan Cheng authored
* Added a pseudo instruction (for each target) that represent "return void". This is a workaround for lack of optional flag operand (return void is not lowered so it does not have a flag operand.) llvm-svn: 24997
-
Evan Cheng authored
support which is fragile. * Fixed a number of bugs. llvm-svn: 24996
-
Jim Laskey authored
llvm-svn: 24995
-
Chris Lattner authored
llvm-svn: 24994
-
Chris Lattner authored
llvm-svn: 24993
-
Chris Lattner authored
llvm-svn: 24992
-
Chris Lattner authored
llvm-svn: 24991
-
Evan Cheng authored
llvm-svn: 24990
-
Evan Cheng authored
llvm-svn: 24989
-
Evan Cheng authored
currently used. llvm-svn: 24988
-
Chris Lattner authored
llvm-svn: 24987
-
Chris Lattner authored
llvm-svn: 24986
-
Chris Lattner authored
void test3(va_list Y); void test2(int F, ...) { va_list X; va_start(X, F); test3(X); } into this: test2: save -104, %o6, %o6 st %i5, [%i6+88] st %i4, [%i6+84] st %i3, [%i6+80] st %i2, [%i6+76] st %i1, [%i6+72] add %i6, 72, %o0 st %o0, [%i6+-4] call test3 nop restore %g0, %g0, %g0 retl nop The simple isel emits: test2: save -96, %o6, %o6 st %i0, [%i6+68] st %i1, [%i6+72] st %i2, [%i6+76] st %i3, [%i6+80] st %i4, [%i6+84] st %i5, [%i6+88] or %g0, 1, %l0 or %g0, 4, %l1 umul %l0, %l1, %l0 add %l0, 7, %l0 and %l0, -8, %l0 sub %o6, %l0, %o6 add %o6, 96, %l0 add %i6, 72, %l1 st %l1, [%l0] ld [%l0], %o0 call test3 nop restore %g0, %g0, %g0 retl nop llvm-svn: 24985
-
Chris Lattner authored
llvm-svn: 24984
-
Chris Lattner authored
void bar(double Y, double *X) { *X = Y; } to this: bar: save -96, %o6, %o6 st %i1, [%i2+4] st %i0, [%i2] restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i2] restore %g0, %g0, %g0 retl nop on sparcv8. llvm-svn: 24983
-
Chris Lattner authored
This allows us to compile this: void foo(double); void bar(double *X) { foo(*X); } To this: bar: save -96, %o6, %o6 ld [%i0+4], %o1 ld [%i0], %o0 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 ldd [%i0], %f0 std %f0, [%i6+-8] ld [%i6+-4], %o1 ld [%i6+-8], %o0 call foo nop restore %g0, %g0, %g0 retl nop on SparcV8. llvm-svn: 24982
-
Chris Lattner authored
void foo(double); void bar(double X) { foo(X); } to this: bar: save -96, %o6, %o6 or %g0, %i0, %o0 or %g0, %i1, %o1 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -112, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i6+-16] ld [%i6+-12], %o1 ld [%i6+-16], %o0 call foo nop restore %g0, %g0, %g0 retl nop on V8. llvm-svn: 24981
-
Chris Lattner authored
conversions. This allows V8 to compiles this: void %test() { call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null ) ret void } into: test: save -96, %o6, %o6 sethi 0, %o3 sethi 1049088, %o2 sethi 1048576, %o1 sethi 1040384, %o0 or %g0, %o3, %o4 call test2 nop restore %g0, %g0, %g0 retl nop instead of: test: save -112, %o6, %o6 sethi 0, %o4 sethi 1049088, %l0 st %o4, [%i6+-12] st %l0, [%i6+-16] ld [%i6+-12], %o3 ld [%i6+-16], %o2 sethi 1048576, %o1 sethi 1040384, %o0 call test2 nop restore %g0, %g0, %g0 retl nop llvm-svn: 24980
-
Chris Lattner authored
llvm-svn: 24979
-
Chris Lattner authored
llvm-svn: 24978
-
Jeff Cohen authored
llvm-svn: 24977
-
Chris Lattner authored
to represent the int part (because it's always 32-bits) llvm-svn: 24976
-
Chris Lattner authored
llvm-svn: 24975
-
Chris Lattner authored
llvm-svn: 24974
-
Chris Lattner authored
llvm-svn: 24973
-
Chris Lattner authored
llvm-svn: 24972
-