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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to