Update.
2003-03-27 David Mosberger <davidm@hpl.hp.com> * sysdeps/ia64/dl-machine.h (RTLD_START): Wrap ".save rp, r0" directive into empty .prologue region to ensure that call-chain is terminated even for the first instruction. * sysdeps/ia64/elf/start.S (_start): Use ".save rp, r0" idiom to terminate call-chain right from the get-go. * sysdeps/unix/sysv/linux/ia64/fork.S (fork): Remove unnecessary stop bit between compare & branch.
This commit is contained in:
parent
d8592d04fa
commit
266227abcb
13
ChangeLog
13
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2003-03-27 David Mosberger <davidm@hpl.hp.com>
|
||||||
|
|
||||||
|
* sysdeps/ia64/dl-machine.h (RTLD_START): Wrap ".save rp, r0"
|
||||||
|
directive into empty .prologue region to ensure that call-chain
|
||||||
|
is terminated even for the first instruction.
|
||||||
|
|
||||||
|
* sysdeps/ia64/elf/start.S (_start): Use ".save rp, r0" idiom
|
||||||
|
to terminate call-chain right from the get-go.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/fork.S (fork): Remove unnecessary
|
||||||
|
stop bit between compare & branch.
|
||||||
|
|
||||||
2003-03-29 Ulrich Drepper <drepper@redhat.com>
|
2003-03-29 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* stdlib/strtod.c (INTERNAL): Recognize first digit after decimal
|
* stdlib/strtod.c (INTERNAL): Recognize first digit after decimal
|
||||||
@ -9,7 +21,6 @@
|
|||||||
2003-03-29 Alexandre Oliva <aoliva@redhat.com>
|
2003-03-29 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* configure.in: Add mips64* support.
|
* configure.in: Add mips64* support.
|
||||||
* configure: Rebuilt.
|
|
||||||
* sysdeps/mips/bits/endian.h: Make it bi-endian.
|
* sysdeps/mips/bits/endian.h: Make it bi-endian.
|
||||||
* sysdeps/mips/mipsel/bits/endian.h: Removed.
|
* sysdeps/mips/mipsel/bits/endian.h: Removed.
|
||||||
* sysdeps/mips/mips64/n32/el/bits/endian.h: Removed.
|
* sysdeps/mips/mips64/n32/el/bits/endian.h: Removed.
|
||||||
|
@ -301,8 +301,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
|||||||
"_start:\n" \
|
"_start:\n" \
|
||||||
"0: { .mii\n" \
|
"0: { .mii\n" \
|
||||||
" .prologue\n" \
|
" .prologue\n" \
|
||||||
" .save ar.pfs, r32\n" \
|
|
||||||
" .save rp, r0\n" \
|
" .save rp, r0\n" \
|
||||||
|
" .body\n" \
|
||||||
|
" .prologue\n" \
|
||||||
|
" .save ar.pfs, r32\n" \
|
||||||
" alloc loc0 = ar.pfs, 0, 3, 4, 0\n" \
|
" alloc loc0 = ar.pfs, 0, 3, 4, 0\n" \
|
||||||
" .body\n" \
|
" .body\n" \
|
||||||
" mov r2 = ip\n" \
|
" mov r2 = ip\n" \
|
||||||
@ -332,8 +334,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
|||||||
" .proc _dl_start_user#\n" \
|
" .proc _dl_start_user#\n" \
|
||||||
"_dl_start_user:\n" \
|
"_dl_start_user:\n" \
|
||||||
" .prologue\n" \
|
" .prologue\n" \
|
||||||
" .save ar.pfs, r32\n" \
|
|
||||||
" .save rp, r0\n" \
|
" .save rp, r0\n" \
|
||||||
|
" .body\n" \
|
||||||
|
" .prologue\n" \
|
||||||
|
" .save ar.pfs, r32\n" \
|
||||||
" .body\n" \
|
" .body\n" \
|
||||||
" { .mii\n" \
|
" { .mii\n" \
|
||||||
" /* Save the pointer to the user entry point fptr in loc2. */\n" \
|
" /* Save the pointer to the user entry point fptr in loc2. */\n" \
|
||||||
|
@ -39,6 +39,9 @@
|
|||||||
.proc _start
|
.proc _start
|
||||||
.type _start,@function
|
.type _start,@function
|
||||||
_start:
|
_start:
|
||||||
|
.prologue
|
||||||
|
.save rp, r0
|
||||||
|
.body
|
||||||
.prologue
|
.prologue
|
||||||
{ .mlx
|
{ .mlx
|
||||||
alloc r2 = ar.pfs,0,0,7,0
|
alloc r2 = ar.pfs,0,0,7,0
|
||||||
@ -76,8 +79,7 @@ _start:
|
|||||||
{ .mmi
|
{ .mmi
|
||||||
ld8 out3 = [out3] /* pointer to `init' function descriptor */
|
ld8 out3 = [out3] /* pointer to `init' function descriptor */
|
||||||
ld8 out4 = [out4] /* pointer to `fini' function descriptor */
|
ld8 out4 = [out4] /* pointer to `fini' function descriptor */
|
||||||
.save rp, r4
|
nop 0
|
||||||
mov r4 = r0 /* terminate unwind chain with a NULL return-pointer */
|
|
||||||
}
|
}
|
||||||
.body
|
.body
|
||||||
{ .mib
|
{ .mib
|
||||||
|
@ -32,7 +32,6 @@ ENTRY(__libc_fork)
|
|||||||
;;
|
;;
|
||||||
DO_CALL (SYS_ify (clone))
|
DO_CALL (SYS_ify (clone))
|
||||||
cmp.eq p6,p0=-1,r10
|
cmp.eq p6,p0=-1,r10
|
||||||
;;
|
|
||||||
(p6) br.cond.spnt.few __syscall_error
|
(p6) br.cond.spnt.few __syscall_error
|
||||||
ret
|
ret
|
||||||
PSEUDO_END(__libc_fork)
|
PSEUDO_END(__libc_fork)
|
||||||
|
Loading…
Reference in New Issue
Block a user