This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [x86-64 psABI]: Extend x86-64 psABI to support AVX-512
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, GNU C Library <libc-alpha at sourceware dot org>, GCC Development <gcc at gcc dot gnu dot org>, Binutils <binutils at sourceware dot org>, "Girkar, Milind" <milind dot girkar at intel dot com>, "Kreitzer, David L" <david dot l dot kreitzer at intel dot com>
- Date: Thu, 25 Jul 2013 05:06:55 +0200
- Subject: Re: [x86-64 psABI]: Extend x86-64 psABI to support AVX-512
- References: <CAMe9rOrvMxSLj3LcYBs71tVdw6C0vJFKD2HxvnoHc13UamftwA at mail dot gmail dot com> <ddab98c2-bb3b-4d02-b403-e7d5690cfe00 at email dot android dot com> <CAMe9rOpxErCVtE-PDZ3Yb9mL+4E+XQ-are9Df4YBbEioj+MmZA at mail dot gmail dot com> <b9c5d467-834a-4b57-b48c-ac4bb450c9e5 at email dot android dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Jul 24, 2013 at 07:36:31PM +0200, Richard Biener wrote:
> >Make them callee saved means we need to change ld.so to
> >preserve them and we need to change unwind library to
> >support them. It is certainly doable.
>
> IMHO it was a mistake to not have any callee saved xmm register in the
> original abi - we should fix this at this opportunity. Loops with
> function calls are not that uncommon.
I've raised that earlier already. One issue with that beyond having to
teach unwinders about this (dynamic linker if you mean only for the lazy PLT
resolving is only a matter of whether the dynamic linker itself has been
built with a compiler that would clobber those registers anywhere) is that
as history shows, the vector registers keep growing over time.
So if we reserve now either 8 or all 16 zmm16 to zmm31 registers as call
saved, do we save them as 512 bit registers, or say 1024 bit already?
If just 512 bit, then when next time the vector registers grow in size (will
they?), would we have just low parts of the 1024 bits registers call saved
and upper half call clobbered (I guess that is the case for M$Win 64-bit ABI
now, just with 128 bit vs. more).
But yeah, it would be nice to have some call saved ones.
Jakub