.prologue 0 \n\
/* Save the user entry point address in s0. */ \n\
mov $0, $9 \n\
- /* Store the highest stack address. */ \n\
- stq $30, __libc_stack_end \n\
/* See if we were run as a command with the executable \n\
file name as an extra leading argument. */ \n\
ldl $1, _dl_skip_args($gp) !gprel \n\
ldr sl, .L_GET_GOT\n\
add sl, pc, sl\n\
.L_GOT_GOT:\n\
- @ Store the highest stack address\n\
- ldr r1, .L_STACK_END\n\
- ldr r1, [sl, r1]\n\
- str sp, [r1]\n\
@ See if we were run as a command with the executable file\n\
@ name as an extra leading argument.\n\
ldr r4, .L_SKIP_ARGS\n\
.word _dl_starting_up(GOT)\n\
.L_FINI_PROC:\n\
.word _dl_fini(GOT)\n\
-.L_STACK_END:\n\
- .word __libc_stack_end(GOT)\n\
.L_LOADED:\n\
.word _rtld_local(GOT)\n\
.previous\n\
; Point R0 at the GOT.\n\
move.d $pc,$r0\n\
sub.d .:GOTOFF,$r0\n\
- ; Remember the highest stack address.\n\
- move.d [$r0+__libc_stack_end:GOT16],$r13\n\
- move.d $sp,[$r13]\n\
; See if we were run as a command with the executable file\n\
; name as an extra leading argument.\n\
move.d [$r0+_dl_skip_args:GOT16],$r13\n\
_dl_start_user:\n\
| Save the user entry point address in %a4.\n\
move.l %d0, %a4\n\
- | Remember the highest stack address.\n\
- move.l __libc_stack_end@GOTPC(%pc), %a0\n\
- move.l %sp, (%a0)\n\
| See if we were run as a command with the executable file\n\
| name as an extra leading argument.\n\
move.l _dl_skip_args(%pc), %d0\n\