This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: testsuite/37074: gcc.dg/torture/stackalign/builtin-apply-4.c failed with SSE2


On Mon, Aug 11, 2008 at 10:18 AM, Ye, Joey <joey.ye@intel.com> wrote:

> Andrew wrote:
>> Again this does not explain why is happening, just what happens.

> __builtin_apply_args needs to save all args to stack. Following code in
> ix86_function_arg_regno_p makes it believe mm0 to mm2 are passing
> arguments.
>        return (regno < REGPARM_MAX
>                || (TARGET_MMX && MMX_REGNO_P (regno)
>                    && (regno < FIRST_MMX_REG + MMX_REGPARM_MAX))
>                || (TARGET_SSE && SSE_REGNO_P (regno)
>                    && (regno < FIRST_SSE_REG + SSE_REGPARM_MAX)));
>
> So mm0 to mm2 are saved and restored. Which arguments are passed via mm0
> to mm2?

These are MMX vector arguments, V8QImode, V4HImode, V2SImode, V1DImode
and V2SFmode. Please note, that we also have MMX function return
register, MMX vector values are returned in %mm0 register.

Uros.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]