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?

Attachment: 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

Reply via email to