This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/82028] Windows x86_64 should not pass float aggregates in xmm
- From: "jistone at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 29 Aug 2017 19:44:38 +0000
- Subject: [Bug c/82028] Windows x86_64 should not pass float aggregates in xmm
- Auto-submitted: auto-generated
- References: <bug-82028-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82028
--- Comment #1 from Josh Stone <jistone at redhat dot com> ---
Fedora's mingw-gcc also produces code passing through xmm0:
0000000000000000 <foo>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: f2 0f 11 45 10 movsd %xmm0,0x10(%rbp)
9: f2 0f 10 4d 10 movsd 0x10(%rbp),%xmm1
e: f3 0f 7e 05 00 00 00 movq 0x0(%rip),%xmm0 # 16 <foo+0x16>
15: 00
16: 66 0f 54 c1 andpd %xmm1,%xmm0
1a: f2 0f 11 45 10 movsd %xmm0,0x10(%rbp)
1f: f2 0f 10 45 10 movsd 0x10(%rbp),%xmm0
24: 5d pop %rbp
25: c3 retq
$ x86_64-w64-mingw32-gcc -v
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-w64-mingw32/7.1.0/lto-wrapper
Target: x86_64-w64-mingw32
Configured with: ../configure --prefix=/usr --bindir=/usr/bin
--includedir=/usr/include --mandir=/usr/share/man --infodir=/usr/share/info
--datadir=/usr/share --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --with-gnu-as --with-gnu-ld --verbose
--without-newlib --disable-multilib --disable-plugin --with-system-zlib
--disable-nls --without-included-gettext --disable-win32-registry
--enable-languages=c,c++,objc,obj-c++,fortran
--with-bugurl=http://bugzilla.redhat.com/bugzilla --with-cloog
--enable-threads=posix --enable-libgomp --target=x86_64-w64-mingw32
--with-sysroot=/usr/x86_64-w64-mingw32/sys-root
--with-gxx-include-dir=/usr/x86_64-w64-mingw32/sys-root/mingw/include/c++
Thread model: posix
gcc version 7.1.0 20170502 (Fedora MinGW 7.1.0-1.fc26) (GCC)