This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/15128] dynamic loader may clobber floating-point parameters on AArch64
- From: "neleai at seznam dot cz" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Mon, 11 Feb 2013 07:21:25 +0000
- Subject: [Bug dynamic-link/15128] dynamic loader may clobber floating-point parameters on AArch64
- Auto-submitted: auto-generated
- References: <bug-15128-131@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=15128
--- Comment #2 from Ondrej Bilka <neleai at seznam dot cz> 2013-02-11 07:21:25 UTC ---
On Mon, Feb 11, 2013 at 05:00:30AM +0000, bugdal at aerifal dot cx wrote:
> http://sourceware.org/bugzilla/show_bug.cgi?id=15128
>
> Rich Felker <bugdal at aerifal dot cx> changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> CC| |bugdal at aerifal dot cx
>
> --- Comment #1 from Rich Felker <bugdal at aerifal dot cx> 2013-02-11 05:00:30 UTC ---
> I haven't looked at the code, but the correct fix should just be to make the
> lazy binding resolver function save all registers that might be argument
> registers before calling anything else, and restore them before making the
> final jump to the resolved address. There's no reason to go to great lengths to
> avoid clobbering them in between.
>
Aarch64 ta calling conventions below you have v16-v31
available.
The first eight registers, v0-v7, are used to pass argument values into
a subroutine and to return result values from a function. They may also
be used to hold intermediate values within a routine (but, in general,
only between subroutine calls).
Registers d8-d15 (s8-s15) must be preserved by a callee across
subroutine calls; the remaining registers (v0-v7, v16-v31) do not need
to be preserved (or should be preserved by the caller). Additionally,
only single-precision, double-precision and 64-bit short vector values
stored in d8-d15 (s8-s15) need to be preserved; it is the responsibility
of the caller to preserve larger values.
> --
> Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.