[PATCH, rtl-optimization]: Fix PR66838, Calling multiple SYSV AMD64 ABI functions from MS x64 ABI one results in clobbered parameters

Richard Biener rguenther@suse.de
Mon Jul 13 07:31:00 GMT 2015


On Sun, 12 Jul 2015, Uros Bizjak wrote:

> Another missing case of CALL_INSN_FUNCTION_USAGE, where clobbered
> registers are also marked, this time in postreload/
> reload_cse_move2add.
> 
> Fixed compiler now generates following code
> 
>        call    sysv_abi_func
>        movl    $global, %esi
>        movl    $.LC2, %edi
>        call    sysv_abi_func
>        movl    $global, %esi
>        movl    $.LC3, %edi
>        call    sysv_abi_func
> 
> which correctly reloads %esi for every sysv_abi function call.
> 
> 2015-07-12  Uros Bizjak  <ubizjak@gmail.com>
> 
>     PR rtl-optimization/66838
>     * postreload.c (reload_cse_move2add): Also process
>     CALL_INSN_FUNCTION_USAGE when resetting information of
>     call-clobbered registers.
> 
> testsuite/ChangeLog:
> 
> 2015-07-12  Uros Bizjak  <ubizjak@gmail.com>
> 
>     PR rtl-optimization/66838
>     * gcc.target/i386/pr66838.c: New test.
> 
> Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.
> 
> OK for mainline and gcc-5 branch?

Please wait until after 5.2 has been released.

Thanks,
Richard.



More information about the Gcc-patches mailing list