- 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: 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
-
-
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
-
Chris Lattner authored
llvm-svn: 24991
-
Evan Cheng authored
llvm-svn: 24990
-
Evan Cheng authored
llvm-svn: 24989
-
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
llvm-svn: 24979
-
Chris Lattner authored
llvm-svn: 24978
-
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
-
- Dec 22, 2005
-
-
Chris Lattner authored
llvm-svn: 24967
-
Chris Lattner authored
llvm-svn: 24965
-
Chris Lattner authored
llvm-svn: 24964
-
Chris Lattner authored
llvm-svn: 24956
-
Duraid Madina authored
whimper out of doing things the Right Way, and hack up a generic 'BRCALL' instruction, that gets generated when calls are lowered. This gets selected by hand in the DAG isel, where it gets turned into real (i.e. in tablegen) br.call instructions. BUG: this dies on void calls, but seems to work otherwise? llvm-svn: 24952
-
Duraid Madina authored
llvm-svn: 24951
-
Duraid Madina authored
llvm-svn: 24950
-
Duraid Madina authored
llvm-svn: 24948
-
Duraid Madina authored
BUG: calling printf(string, float) will load the float into the wrong register, completely forget about loading the string, etce llvm-svn: 24947
-
Duraid Madina authored
to IA64ISD llvm-svn: 24946
-
Duraid Madina authored
i.e. r1/r12/rp are saved/restored regardless of scheduling/luck TODO: calls to external symbols, indirect (function descriptor) calls, performance (we're being paranoid right now) BUG: the code for handling calls to vararg functions breaks if FP args are passed (this will make printf() go haywire so a bunch of tests will fail) BUG: this seems to trigger some legalize nastiness llvm-svn: 24942
-
Duraid Madina authored
SPARCv8. (we copy sparcv8's workaround for tablegen not being nice about ISD::CALL/TAILCALL) llvm-svn: 24941
-
Duraid Madina authored
llvm-svn: 24939
-
Evan Cheng authored
llvm-svn: 24935
-
Evan Cheng authored
llvm-svn: 24934
-
Evan Cheng authored
llvm-svn: 24922
-