On Fri, Feb 7, 2020 at 2:14 AM JonY <10wa...@gmail.com> wrote: > > On 2/7/20 3:23 AM, H.J. Lu wrote: > > On Wed, Feb 05, 2020 at 09:51:14PM +0100, Uros Bizjak wrote: > >> On Wed, Feb 5, 2020 at 6:59 PM H.J. Lu <hjl.to...@gmail.com> wrote: > >>> > >>> MS_ABI requires passing aggregates with only float/double in integer > >>> registers. Checked gcc outputs against Clang and fixed: > >>> > >>> FAIL: libffi.bhaible/test-callback.c -W -Wall -Wno-psabi -DDGTEST=54 > >>> -Wno-unused-variable -Wno-unused-parameter > >>> -Wno-unused-but-set-variable -Wno-uninitialized -O0 > >>> -DABI_NUM=FFI_GNUW64 -DABI_ATTR=MSABI execution test > >>> FAIL: libffi.bhaible/test-callback.c -W -Wall -Wno-psabi -DDGTEST=54 > >>> -Wno-unused-variable -Wno-unused-parameter > >>> -Wno-unused-but-set-variable -Wno-uninitialized -O2 > >>> -DABI_NUM=FFI_GNUW64 -DABI_ATTR=MSABI execution test > >>> FAIL: libffi.bhaible/test-callback.c -W -Wall -Wno-psabi -DDGTEST=55 > >>> -Wno-unused-variable -Wno-unused-parameter > >>> -Wno-unused-but-set-variable -Wno-uninitialized -O0 > >>> -DABI_NUM=FFI_GNUW64 -DABI_ATTR=MSABI execution test > >>> FAIL: libffi.bhaible/test-callback.c -W -Wall -Wno-psabi -DDGTEST=55 > >>> -Wno-unused-variable -Wno-unused-parameter > >>> -Wno-unused-but-set-variable -Wno-uninitialized -O2 > >>> -DABI_NUM=FFI_GNUW64 -DABI_ATTR=MSABI execution test > >>> FAIL: libffi.bhaible/test-callback.c -W -Wall -Wno-psabi -DDGTEST=56 > >>> -Wno-unused-variable -Wno-unused-parameter > >>> -Wno-unused-but-set-variable -Wno-uninitialized -O0 > >>> -DABI_NUM=FFI_GNUW64 -DABI_ATTR=MSABI execution test > >>> FAIL: libffi.bhaible/test-callback.c -W -Wall -Wno-psabi -DDGTEST=56 > >>> -Wno-unused-variable -Wno-unused-parameter > >>> -Wno-unused-but-set-variable -Wno-uninitialized -O2 > >>> -DABI_NUM=FFI_GNUW64 -DABI_ATTR=MSABI execution test > >>> > >>> in libffi testsuite. > >>> > >>> OK for master and backports to GCC 8/9 branches? > >>> > >>> gcc/ > >>> > >>> PR target/85667 > >>> * config/i386/i386.c (function_arg_ms_64): Add a type argument. > >>> Don't return aggregates with only SFmode and DFmode in SSE > >>> register. > >>> (ix86_function_arg): Pass arg.type to function_arg_ms_64. > >>> > >>> gcc/testsuite/ > >>> > >>> PR target/85667 > >>> * gcc.target/i386/pr85667-10.c: New test. > >>> * gcc.target/i386/pr85667-7.c: Likewise. > >>> * gcc.target/i386/pr85667-8.c: Likewise. > >>> * gcc.target/i386/pr85667-9.c: Likewise. > >> > >> LGTM, but should really be reviewed by cygwin, mingw-w64 maintainer (CC'd). > >> > > > > I checked the result against MSVC v19.10 at > > > > https://godbolt.org/z/2NPygd > > > > My patch matches MSVC v19.10. I am checking it in tomorrow unless > > mingw-w64 maintainer objects. > > > > Please go ahead and thanks. >
I checked it into master and backported it to releases/gcc-9 branch. No plan to fix releases/gcc-8 branch. Thanks. -- H.J.