diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-05-26 13:00:48 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-05-30 16:32:22 -0300 |
commit | 1e4fb2e1ab7dc0b90c0ded24f15088d29fa143cd (patch) | |
tree | 99d9fd35e39843312958133aa00814db4af6bd10 /sysdeps/alpha/dl-machine.h | |
parent | a8f62164b1d0ea6583c9c5d05aa4be9c946c2004 (diff) | |
download | glibc-1e4fb2e1ab7dc0b90c0ded24f15088d29fa143cd.tar glibc-1e4fb2e1ab7dc0b90c0ded24f15088d29fa143cd.tar.gz glibc-1e4fb2e1ab7dc0b90c0ded24f15088d29fa143cd.tar.bz2 glibc-1e4fb2e1ab7dc0b90c0ded24f15088d29fa143cd.zip |
alpha: Remove _dl_skip_args usage
Since ad43cac44a the generic code already shuffles the argv/envp/auxv
on the stack to remove the ld.so own arguments and thus _dl_skip_args
is always 0. It makes the fixup_stack branch ununsed.
Checked with qemu-user that arguments are correctly passed on both
constructors and main program.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps/alpha/dl-machine.h')
-rw-r--r-- | sysdeps/alpha/dl-machine.h | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index ccee972c96..f0ba8e88af 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -156,12 +156,6 @@ _dl_start_user: \n\ .prologue 0 \n\ /* Save the user entry point address in s0. */ \n\ mov $0, $9 \n\ - /* See if we were run as a command with the executable \n\ - file name as an extra leading argument. */ \n\ - ldah $1, _dl_skip_args($gp) !gprelhigh \n\ - ldl $1, _dl_skip_args($1) !gprellow \n\ - bne $1, $fixup_stack \n\ -$fixup_stack_ret: \n\ /* The special initializer gets called with the stack \n\ just as the application's entry point will see it; \n\ it can switch stacks if it moves these contents \n\ @@ -182,41 +176,6 @@ $fixup_stack_ret: \n\ /* Jump to the user's entry point. */ \n\ mov $9, $27 \n\ jmp ($9) \n\ -$fixup_stack: \n\ - /* Adjust the stack pointer to skip _dl_skip_args words.\n\ - This involves copying everything down, since the \n\ - stack pointer must always be 16-byte aligned. */ \n\ - ldah $7, __GI__dl_argv($gp) !gprelhigh \n\ - ldq $2, 0($sp) \n\ - ldq $5, __GI__dl_argv($7) !gprellow \n\ - subq $31, $1, $6 \n\ - subq $2, $1, $2 \n\ - s8addq $6, $5, $5 \n\ - mov $sp, $4 \n\ - s8addq $1, $sp, $3 \n\ - stq $2, 0($sp) \n\ - stq $5, __GI__dl_argv($7) !gprellow \n\ - /* Copy down argv. */ \n\ -0: ldq $5, 8($3) \n\ - addq $4, 8, $4 \n\ - addq $3, 8, $3 \n\ - stq $5, 0($4) \n\ - bne $5, 0b \n\ - /* Copy down envp. */ \n\ -1: ldq $5, 8($3) \n\ - addq $4, 8, $4 \n\ - addq $3, 8, $3 \n\ - stq $5, 0($4) \n\ - bne $5, 1b \n\ - /* Copy down auxiliary table. */ \n\ -2: ldq $5, 8($3) \n\ - ldq $6, 16($3) \n\ - addq $4, 16, $4 \n\ - addq $3, 16, $3 \n\ - stq $5, -8($4) \n\ - stq $6, 0($4) \n\ - bne $5, 2b \n\ - br $fixup_stack_ret \n\ .end _dl_start_user \n\ .set noat \n\ .previous"); |