[llvm-commits] [llvm] r67502 - /llvm/trunk/lib/Target/X86/X86CallingConv.td

Bill Wendling isanbard at gmail.com
Sun Mar 22 21:42:40 PDT 2009


On Mar 22, 2009, at 9:28 PM, Dan Gohman wrote:

> Author: djg
> Date: Sun Mar 22 23:28:24 2009
> New Revision: 67502
>
> URL: http://llvm.org/viewvc/llvm-project?rev=67502&view=rev
> Log:
> Add comments explaining why there's only one register for
> i8 return values.
>
> Modified:
>    llvm/trunk/lib/Target/X86/X86CallingConv.td
>
> Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CallingConv.td?rev=67502&r1=67501&r2=67502&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Target/X86/X86CallingConv.td (original)
> +++ llvm/trunk/lib/Target/X86/X86CallingConv.td Sun Mar 22 23:28:24  
> 2009
> @@ -22,7 +22,12 @@
>
> // Return-value conventions common to all X86 CC's.
> def RetCC_X86Common : CallingConv<[
> -  // Scalar values are returned in AX first, then DX.
> +  // Scalar values are returned in AX first, then DX, except for i8  
> where
> +  // the convention is to return values in AL and AH. However,  
> using AL and
> +  // is AH problematic -- a return of {i16,i8} would end up using  
> AX and AH,

s/is AH/AH is/

-bw

> +  // and one value would clobber the other. C front-ends are  
> currently expected
> +  // to pack two i8 values into an i16 in the rare situations where  
> this
> +  // is necessary.
>   CCIfType<[i8] , CCAssignToReg<[AL]>>,
>   CCIfType<[i16], CCAssignToReg<[AX, DX]>>,
>   CCIfType<[i32], CCAssignToReg<[EAX, EDX]>>,
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list