On 09/22/17 11:57, Kees Cook wrote: > On Fri, Sep 22, 2017 at 11:38 AM, H. Peter Anvin <h...@zytor.com> wrote: >> We lose EBX on 32 bits, but we don't lose RBX on 64 bits - since x86-64 >> has RIP-relative addressing there is no need for a dedicated PIC register. > > FWIW, since gcc 5, the PIC register isn't totally lost. It is now > reusable, and that seems to have improved performance: > https://gcc.gnu.org/gcc-5/changes.html
It still talks about a PIC register on x86-64, which confuses me. Perhaps older gcc's would allocate a PIC register under certain circumstances, and then lose it for the entire function? For i386, the PIC register is required by the ABI to be %ebx at the point any PLT entry is called. Not an issue with -mno-plt which goes straight to the GOT, although in most cases there needs to be a PIC register to find the GOT unless load-time relocation is permitted. -hpa _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel