svn commit: r284725 - head/libexec/rtld-elf/aarch64
Andrew Turner
andrew at FreeBSD.org
Tue Jun 23 10:32:27 UTC 2015
Author: andrew
Date: Tue Jun 23 10:32:26 2015
New Revision: 284725
URL: https://svnweb.freebsd.org/changeset/base/284725
Log:
Also save x8. It may be passed into a function as the indirect result
location pointer when the return value doesn't fit in a register, e.g. when
returning a struct.
Obtained from: ABT Systems Ltd
Sponsored by: The FreeBSD Foundation
Modified:
head/libexec/rtld-elf/aarch64/rtld_start.S
Modified: head/libexec/rtld-elf/aarch64/rtld_start.S
==============================================================================
--- head/libexec/rtld-elf/aarch64/rtld_start.S Tue Jun 23 06:59:46 2015 (r284724)
+++ head/libexec/rtld-elf/aarch64/rtld_start.S Tue Jun 23 10:32:26 2015 (r284725)
@@ -68,6 +68,7 @@ ENTRY(_rtld_bind_start)
stp x2, x3, [sp, #-16]!
stp x4, x5, [sp, #-16]!
stp x6, x7, [sp, #-16]!
+ stp x8, xzr, [sp, #-16]!
/* Calculate reloff */
ldr x2, [x17, #0] /* Get the address of the entry */
@@ -84,12 +85,13 @@ ENTRY(_rtld_bind_start)
bl _rtld_bind
/* Restore the registers saved by the plt code */
- ldp xzr, x30, [sp, #(4 * 16)]
+ ldp xzr, x30, [sp, #(5 * 16)]
/* Backup the address to branch to */
mov x16, x0
/* restore the arguments */
+ ldp x8, xzr, [sp], #16
ldp x6, x7, [sp], #16
ldp x4, x5, [sp], #16
ldp x2, x3, [sp], #16
More information about the svn-src-all
mailing list