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: PR target/56560: [4.6/4.7 regression] vzeroupper clobbers argument with AVX


On Mon, Mar 18, 2013 at 6:51 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:

> ix86_function_arg sets cfun->machine->callee_pass_avx256_p from the
> current argument.  It clears callee_pass_avx256_p when ix86_function_arg
> is called to generate a library call to passs an argument.  This patch
> adds callee_pass_avx256_p and callee_return_avx256_p to ix86_args to store
> the AVX info in CUM and copy it to cfun->machine->callee_pass_avx256_p
> when ix86_function_arg is called immediately before the call instruction
> is emitted.  OK for 4.7 branch?
>
> 2013-03-18  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR target/56560
>         * config/i386/i386.c (init_cumulative_args): Also set
>         cum->callee_return_avx256_p.
>         (ix86_function_arg): Set cum->callee_pass_avx256_p.  Set
>         cfun->machine->callee_pass_avx256_p only when MODE == VOIDmode.
>
>         * config/i386/i386.h (ix86_args): Add callee_pass_avx256_p and
>         callee_return_avx256_p.
>
> gcc/
>
> 2013-03-18  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR target/56560
>         * gcc.target/i386/pr56560.c: New file.

OK for branches, but I didn't check all state transitions (and I don't
like this approach anyway)...

Please also add the testcase to the trunk, and to 4.8 branch when it reopens.

Thanks,
Uros.


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