[llvm-commits] [llvm] r55807 - in /llvm/trunk: lib/Target/X86/X86CallingConv.td lib/Target/X86/X86ISelLowering.cpp test/CodeGen/X86/2007-08-13-SpillerReuse.ll test/CodeGen/X86/2008-02-22-ReMatBug.ll test/CodeGen/X86/coalescer-commute3.ll test/Cod
Arnold Schwaighofer
arnold.schwaighofer at gmail.com
Mon Sep 22 04:09:21 PDT 2008
> TailCall:
> // Nested function trampolines are currently not supported by fastcc.
Should read:
Nested function trampolines are currently not supported by fastcc when
-tailcallopt is enabled because i don't know the implications of
trampolines.
> // The first 3 integer arguments, if marked 'inreg' and if the call is not
> // a vararg call, are passed in integer registers.
> CCIfNotVarArg<CCIfInReg<CCIfType<[i32], CCAssignToReg<[EAX, EDX]>>>>,
Should read:
// the first 2
> FastCC:
> // The 'nest' parameter, if any, is passed in EAX.
> CCIfNest<CCAssignToReg<[EAX]>>,
>
> // The first 2 integer arguments are passed in ECX/EDX
> CCIfType<[i32], CCAssignToReg<[ECX, EDX]>>,
>
> First of all, the comment about "nested function not being supported by
> fastcc" looks wrong. Secondly, it's not clear to me why the integer
> registers have to be marked inreg to be passed in registers (only EAX, EDX,
> what's the 3rd). Arnold, any ideas?
The only 'reason' is that the calling convention was a copy of the std
convention.
More information about the llvm-commits
mailing list