Save relocbase in %r10, not %r1.
Also, save one instruction.
This commit is contained in:
parent
aba5b183cd
commit
06f9fa98b0
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: rtld_start.S,v 1.9 2002/09/26 22:26:27 mycroft Exp $ */
|
/* $NetBSD: rtld_start.S,v 1.10 2002/09/26 23:28:52 mycroft Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 1996 Matt Thomas <matt@3am-software.com>
|
* Copyright 1996 Matt Thomas <matt@3am-software.com>
|
||||||
@ -31,7 +31,7 @@
|
|||||||
#include <machine/asm.h>
|
#include <machine/asm.h>
|
||||||
|
|
||||||
.data
|
.data
|
||||||
.L1: .long _GLOBAL_OFFSET_TABLE_
|
.L1: .long _DYNAMIC
|
||||||
|
|
||||||
/* R9 contains the address of PS_STRINGS and since its caller saved,
|
/* R9 contains the address of PS_STRINGS and since its caller saved,
|
||||||
* we can just use it. R6 has a backup copy of the stack pointer which
|
* we can just use it. R6 has a backup copy of the stack pointer which
|
||||||
@ -46,14 +46,13 @@ ENTRY(_rtld_start, 0)
|
|||||||
subl2 $8,%sp
|
subl2 $8,%sp
|
||||||
|
|
||||||
movab _DYNAMIC,%r0
|
movab _DYNAMIC,%r0
|
||||||
movab _GLOBAL_OFFSET_TABLE_,%r1
|
subl3 .L1,%r0,%r10
|
||||||
subl2 .L1,%r1
|
pushl %r10 /* relocbase */
|
||||||
pushl %r1 /* relocbase */
|
|
||||||
pushl %r0 /* &_DYNAMIC */
|
pushl %r0 /* &_DYNAMIC */
|
||||||
calls $2,_rtld_relocate_nonplt_self
|
calls $2,_rtld_relocate_nonplt_self
|
||||||
|
|
||||||
movl %sp,%r0
|
movl %sp,%r0
|
||||||
pushl %r1 /* relocbase */
|
pushl %r10 /* relocbase */
|
||||||
pushl %r0 /* sp */
|
pushl %r0 /* sp */
|
||||||
calls $2,_rtld /* entry = _rtld(sp, relocbase) */
|
calls $2,_rtld /* entry = _rtld(sp, relocbase) */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user