On Fri, Dec 15, 2017 at 08:14:38PM +0100, Richard Biener wrote: > On December 15, 2017 8:10:33 PM GMT+01:00, Jeff Law <l...@redhat.com> wrote: > >On 12/14/2017 12:32 PM, Richard Biener wrote: > >> > >> On x86_64 all xmm registers are caller saved for example. That means > >all FP regs and all vectors. (yeah, stupid ABI decision....) > >But that's precisely what I would expect if one was looking to maintain > >backwards compatibility within the core runtime libraries. > > > >If you make something callee-saved, then you have to have space for it > >in the setjmp buffer. Expanding that buffer is an ABI change and thus > >*highly* discouraged. > > Yes. But the initial 64bit ABI already had 8 xmm regs. Probably all used for > parameter passing as well, but... > > For all further extensions I agree.
Another issue is that the ?mm registers keep growing in size, and having e.g. low 128-bits of the registers call-saved and upper bits call-used is just weird (I believe that is the MS ABI). Jakub