https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114416
--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- I've now also found p. 3P-10: %f0 through %f7 Floating-point fields from structure return (%d0 through %d6) values with a total size of 32 bytes or less (%q0 and %q4) appear in the floating-point registers. and %o0 through %o5 Outgoing non-floating-point parameters slots use up to 6 corresponding out registers. Arguments beyond the sixth extended-word appear on the stack. The second line seems pretty clear that the %o[0-5] registers are only for non-fp parameter slots, while the first could be interpreted either way (fp *fields only* or fp fields in general). While compatibility with the vendor compiler is a strong argument, in the end the ABI remains the reference.