This is the mail archive of the
mailing list for the glibc project.
Re: preserve xmm8-xmm15 registers in dynamic linker (ld.so)
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Sergey Maslov V <sergey dot v dot maslov at intel dot com>, GNU C Library <libc-alpha at sourceware dot org>, rod dot i dot evans at gmail dot com
- Cc: "x86-64-abi at googlegroups dot com" <x86-64-abi at googlegroups dot com>
- Date: Tue, 19 Nov 2013 20:52:08 -0800
- Subject: Re: preserve xmm8-xmm15 registers in dynamic linker (ld.so)
- Authentication-results: sourceware.org; auth=none
- References: <fbc04da3-b9db-4f7c-b147-ae3e72620021 at googlegroups dot com>
Adding glibc since this impacts ld.so.
On Tue, Nov 19, 2013 at 8:28 PM, Sergey Maslov V
> In order to support __regcall calling convention (pass/return values in up
> to 16 xmm registers, xmm0-xmm15), and the derived Vector Function ABI, the
> following changes are needed:
> 1) Be explicit in psABI that xmm8-xmm15 registers should be preserved by
> dynamic linker (ld.so)
> 2) Change the ld.so to follow #1, i.e. do not clobber xmm8-xmm15.
> Fortunately, the normal binding path doesn't need to change as it is not
> using xmm8-xmm15 currently. The LD_AUDIT path needs to change to preserve
> xmm8-xmm15 registers.
Saving xmm8-xmm16 for _dl_runtime_profile will increase TCB size by
128 bytes. Can ld.so clobber ymm8-ymm15 and zmm8-zmm15? Has
anyone checked ld.so in Solaris and xxxBSD?