- Aug 03, 2009
-
-
Anton Korobeynikov authored
Add 'Indirect' LocInfo class and use to pass __m128 on win64. Also minore fixes here and there (mostly __m64). llvm-svn: 77964
-
Anton Korobeynikov authored
Cleanup Darwin MMX calling conv stuff - make the stuff more generic. This also fixes a subtle bug, when 6th v1i64 argument passed wrongly. llvm-svn: 77963
-
Anton Korobeynikov authored
Unbreak Win64 CC. Step one: honour register save area, fix some alignment and provide a different set of call-clobberred registers. llvm-svn: 77962
-
- Jun 12, 2009
-
-
Arnold Schwaighofer authored
out of sync with regular cc. The only difference between the tail call cc and the normal cc was that one parameter register - R9 - was reserved for calling functions through a function pointer. After time the tail call cc has gotten out of sync with the regular cc. We can use R11 which is also caller saved but not used as parameter register for potential function pointers and remove the special tail call cc on x86-64. llvm-svn: 73233
-
- Mar 24, 2009
-
-
Dan Gohman authored
to be returned in DL. LLVM's multiple-return-value support is not ABI-conforming; front-ends that wish to have code emitted that conforms to an ABI are currently expected to make arrangements for this on their own rather than assuming that multiple-return-values will automatically do the right thing. This commit doesn't fundamentally change this situation. llvm-svn: 67588
-
- Mar 23, 2009
-
-
Dan Gohman authored
llvm-svn: 67507
-
Dan Gohman authored
i8 return values. llvm-svn: 67502
-
- Feb 23, 2009
-
-
Evan Cheng authored
llvm-svn: 65313
-
- Feb 22, 2009
-
-
Evan Cheng authored
llvm-svn: 65274
-
- Feb 01, 2009
-
-
Torok Edwin authored
var-args, and don't allow FP return values llvm-svn: 63495
-
- Dec 03, 2008
-
-
Dan Gohman authored
than just i32. llvm-svn: 60455
-
Dan Gohman authored
delegates to the regular x86-32 convention which handles byval, but only after it handles a few cases, and it's necessary to handle byval before handling those cases. This fixes PR3122 (and rdar://6400815), llvm-gcc miscompiling LLVM. llvm-svn: 60453
-
- Nov 20, 2008
-
-
Mon P Wang authored
llvm-svn: 59720
-
- Sep 26, 2008
-
-
Dale Johannesen authored
its size). Adjust various lowering functions to pass this info through from CallInst. Use it to implement sseregparm returns on X86. Remove X86_ssecall calling convention. llvm-svn: 56677
-
- Sep 25, 2008
-
-
Dale Johannesen authored
meaning sse_regparm (i.e. float/double values go in XMM0 instead of ST0). Update documentation to reflect reality. llvm-svn: 56619
-
- Sep 22, 2008
-
-
Arnold Schwaighofer authored
Change the calling convention used when tail call optimization is enabled from CC_X86_32_TailCall to CC_X86_32_FastCC. llvm-svn: 56436
-
- Sep 05, 2008
-
-
Evan Cheng authored
llvm-svn: 55840
-
Evan Cheng authored
For whatever the reason, x86 CallingConv::Fast (i.e. fastcc) was not passing scalar arguments in registers. This patch defines a new fastcc CC which is slightly different from the FastCall CC. In addition to passing integer arguments in ECX and EDX, it also specify doubles are passed in 8-byte slots which are 8-byte aligned (instead of 4-byte aligned). This avoids a potential performance hazard where doubles span cacheline boundaries. llvm-svn: 55807
-
- Jun 25, 2008
-
-
Dale Johannesen authored
load,store,call,return,bitcast. This is enough to make call and return work. llvm-svn: 52691
-
- Apr 28, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 50342
-
Anton Korobeynikov authored
llvm-svn: 50324
-
- Apr 25, 2008
-
-
Evan Cheng authored
On Darwin / Linux x86-32, v8i8, v4i16, v2i32 values are passed in MM[0-2]. On Darwin / Linux x86-32, v1i64 values are passed in memory. On Darwin x86-64, v8i8, v4i16, v2i32 values are passed in XMM[0-7]. On Darwin x86-64, v1i64 values are passed in 64-bit GPRs. llvm-svn: 50257
-
- Apr 09, 2008
-
-
Dan Gohman authored
is needed for the x86-64-ABI handling of structs that contain floating-point members that are returned by value. llvm-svn: 49441
-
Dan Gohman authored
llvm-svn: 49440
-
- Apr 02, 2008
-
-
Anton Korobeynikov authored
when some another register is used for argument passing. Currently is used on Win64. llvm-svn: 49079
-
- Mar 23, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 48710
-
- Mar 22, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 48691
-
Anton Korobeynikov authored
llvm-svn: 48690
-
- Mar 21, 2008
-
-
Chris Lattner authored
This allows us to compile fp-stack-2results.ll into: _test: fldz fld1 ret which returns 1 in ST(0) and 0 in ST(1). This is needed for x86-64 _Complex long double. llvm-svn: 48632
-
- Feb 22, 2008
-
-
Dale Johannesen authored
llvm-svn: 47483
-
- Feb 05, 2008
-
-
Dale Johannesen authored
llvm-svn: 46764
-
- Jan 23, 2008
-
-
Evan Cheng authored
llvm-svn: 46262
-
- Jan 19, 2008
-
-
Duncan Sands authored
parameters, since otherwise it won't be passed in the right register. With this change trampolines work on x86-64 (thanks to Luke Guest for providing access to an x86-64 box). llvm-svn: 46192
-
- Jan 15, 2008
-
-
Evan Cheng authored
Rename CCIfStruct to CCIfByVal and CCStructAssign to CCPassByVal. Remove unused parameters of CCStructAssign and add size and alignment requirement info. llvm-svn: 45997
-
Evan Cheng authored
llvm-svn: 45996
-
- Jan 07, 2008
-
-
Duncan Sands authored
llvm-svn: 45703
-
Duncan Sands authored
llvm-svn: 45701
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Dec 14, 2007
-
-
Dale Johannesen authored
for parameter passing (only for that, on Darwin). llvm-svn: 45038
-
- Nov 27, 2007
-
-
Nate Begeman authored
llvm-svn: 44371
-