On 11/25/2012 07:26 AM, Kai Tietz wrote:
> -      if ((ccvt & (IX86_CALLCVT_FASTCALL | IX86_CALLCVT_THISCALL)) != 0)
> +      if ((ccvt & IX86_CALLCVT_FASTCALL) != 0)
>       {
>         /* Fastcall functions use ecx/edx for arguments, which leaves
>            us with EAX for the static chain.
> @@ -25142,6 +25160,12 @@ ix86_static_chain (const_tree fndecl, bo
>            leaves us with EAX for the static chain.  */
>         regno = AX_REG;
>       }
> +      else if ((ccvt & IX86_CALLCVT_THISCALL) != 0)
> +     {
> +       /* Thiscall functions use ecx for arguments, which leaves
> +          us with EDX for the static chain.  */
> +       regno = DX_REG;
> +     }

How is this not abi breakage?  Why not leave eax as the static chain?


r~

Reply via email to