On 12/20/18 6:38 PM, Mateusz wrote: > Hello, > > In gcc 9.0 r266355 there was change in ABI for mingw-w64 (64-bit) target -- > "Return AX_REG instead of FIRST_SSE_REG for 4 or 8 byte modes". It is wrong > -- now function return double in rax instead of xmm0 register. This patch > shows how to change return register from xmm0 to eax/rax (which is cool). > > There are 2 problems: > 1) r266355 broke 64-bit gcc 9 for mingw-w64 target > 2) gcc could/should return aggregate types of up to 8 bytes via EAX register > (not st(0) or xmm0) > > I've prepared patches to gcc (branches 7 and 8 + trunk 9) that checks if type > is not aggregate of up to 8 bytes before it returns in st(0)/xmm0 -- now it > should be like in C++ from MSVC. (svn patches -- please apply with -p0 option)
This is interesting, Kai, care to comment?
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public