]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Sat, 29 Mar 2003 19:20:17 +0000 (19:20 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 29 Mar 2003 19:20:17 +0000 (19:20 +0000)
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.

ChangeLog
sysdeps/ia64/dl-machine.h
sysdeps/ia64/elf/start.S
sysdeps/unix/sysv/linux/ia64/fork.S

index ea58c7cc55a9743bc3a1a0103eabd3cb5015a009..953fbb8db8353c43f3a0dcda5ae882dbad9fd432 100644 (file)
--- a/ChangeLog
+++ b/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>
 
        * stdlib/strtod.c (INTERNAL): Recognize first digit after decimal
@@ -9,7 +21,6 @@
 2003-03-29  Alexandre Oliva  <aoliva@redhat.com>
 
        * configure.in: Add mips64* support.
-       * configure: Rebuilt.
        * sysdeps/mips/bits/endian.h: Make it bi-endian.
        * sysdeps/mips/mipsel/bits/endian.h: Removed.
        * sysdeps/mips/mips64/n32/el/bits/endian.h: Removed.
index be09ae81e63cb2a90b0271dc556f9c035c3c1bb5..d3cc0ca2103135afefd668aad51bcd99396f279f 100644 (file)
@@ -301,8 +301,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 "_start:\n"                                                                  \
 "0:    { .mii\n"                                                             \
 "        .prologue\n"                                                        \
-"        .save ar.pfs, r32\n"                                                \
 "        .save rp, r0\n"                                                     \
+"        .body\n"                                                            \
+"        .prologue\n"                                                        \
+"        .save ar.pfs, r32\n"                                                \
 "        alloc loc0 = ar.pfs, 0, 3, 4, 0\n"                                  \
 "        .body\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"                                              \
 "_dl_start_user:\n"                                                          \
 "       .prologue\n"                                                         \
-"       .save ar.pfs, r32\n"                                                 \
 "       .save rp, r0\n"                                                      \
+"        .body\n"                                                            \
+"       .prologue\n"                                                         \
+"       .save ar.pfs, r32\n"                                                 \
 "       .body\n"                                                             \
 "      { .mii\n"                                                             \
 "        /* Save the pointer to the user entry point fptr in loc2.  */\n"    \
index a05ddfbb52e9c2bea86d02636b48c8a5b1e1acb2..18eaf8eae449538e462d1e33b7e144f307dd84e0 100644 (file)
@@ -39,6 +39,9 @@
        .proc _start
        .type _start,@function
 _start:
+       .prologue
+       .save rp, r0
+       .body
        .prologue
        { .mlx
          alloc r2 = ar.pfs,0,0,7,0
@@ -76,8 +79,7 @@ _start:
        { .mmi
          ld8 out3 = [out3]     /* pointer to `init' function descriptor */
          ld8 out4 = [out4]     /* pointer to `fini' function descriptor */
-         .save rp, r4
-         mov r4 = r0           /* terminate unwind chain with a NULL return-pointer */
+         nop 0
        }
        .body
        { .mib
index f74e709b3cecbb6175e14ad03bb43045745cd1c6..0a57ab0d13a8e3940436f7eb919bacd9c7764195 100644 (file)
@@ -32,7 +32,6 @@ ENTRY(__libc_fork)
        ;;
        DO_CALL (SYS_ify (clone))
        cmp.eq p6,p0=-1,r10
-       ;;
 (p6)   br.cond.spnt.few __syscall_error
        ret
 PSEUDO_END(__libc_fork)