summaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/dl-machine.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-11-17 18:36:05 +0000
committerUlrich Drepper <drepper@redhat.com>1998-11-17 18:36:05 +0000
commitd8cceb4fcf42c9dd7805b75a8640e15d00dd7ac9 (patch)
tree2509bdf2a3563d5cddb03fb92b97c1dedee40ad2 /sysdeps/powerpc/dl-machine.h
parentcae8899646b7acc7e5b27c14624a027f5240787f (diff)
Update.
1998-11-17 Ulrich Drepper <drepper@cygnus.com> * stdio-common/printf_fphex.c (__printf_fphex): Correct printing of denormalized numbers. 1998-10-06 Geoff Keating <geoffk@ozemail.com.au> * sysdeps/powerpc/dl-machine.h (elf_machine_load_address): Suppress another parentheses warning, make nano-optimisation. * sysdeps/powerpc/dl-machine.h (_dl_runtime_resolve): Preserve saved LR on stack so _mcount works. (_dl_prof_resolve): Likewise. * sysdeps/powerpc/register-dump.h: Print FPRs. Adjust for correct signal handler calling convention. * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Adjust for correct signal handler calling convention---more like x86 linux and mklinux, less like linux-ppc versions between 2.1 and 2.1.126. 1998-11-17 Ulrich Drepper <drepper@cygnus.com> * configure.in: Correct allowed makeinfo version. 1998-11-17 Philip Blundell <pb@nexus.co.uk> * sysdeps/generic/bits/mathdef.h: Fix typo. * intl/locale.alias: Change `japanese' alias to match X11R6's.
Diffstat (limited to 'sysdeps/powerpc/dl-machine.h')
-rw-r--r--sysdeps/powerpc/dl-machine.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/sysdeps/powerpc/dl-machine.h b/sysdeps/powerpc/dl-machine.h
index ce6fcd02ab..6542b1d3b2 100644
--- a/sysdeps/powerpc/dl-machine.h
+++ b/sysdeps/powerpc/dl-machine.h
@@ -91,8 +91,7 @@ elf_machine_load_address (void)
/* So now work out the difference between where the branch actually points,
and the offset of that location in memory from the start of the file. */
return ((Elf32_Addr)branchaddr - *got
- + (*branchaddr & 0x3fffffc
- | (int)(*branchaddr << 6 & 0x80000000) >> 6));
+ + ((int)(*branchaddr << 6 & 0xffffff00) >> 6));
}
#define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) /* nothing */
@@ -111,7 +110,7 @@ elf_machine_load_address (void)
_dl_runtime_resolve:
# We need to save the registers used to pass parameters, and register 0,
# which is used by _mcount; the registers are saved in a stack frame.
- stwu 1,-48(1)
+ stwu 1,-64(1)
stw 0,12(1)
stw 3,16(1)
stw 4,20(1)
@@ -123,7 +122,7 @@ _dl_runtime_resolve:
mflr 0
# We also need to save some of the condition register fields.
stw 7,32(1)
- stw 0,52(1)
+ stw 0,48(1)
stw 8,36(1)
mfcr 0
stw 9,40(1)
@@ -133,7 +132,7 @@ _dl_runtime_resolve:
# 'fixup' returns the address we want to branch to.
mtctr 3
# Put the registers back...
- lwz 0,52(1)
+ lwz 0,48(1)
lwz 10,44(1)
lwz 9,40(1)
mtlr 0
@@ -147,7 +146,7 @@ _dl_runtime_resolve:
lwz 3,16(1)
lwz 0,12(1)
# ...unwind the stack frame, and jump to the PLT entry we updated.
- addi 1,1,48
+ addi 1,1,64
bctr
.size _dl_runtime_resolve,.-_dl_runtime_resolve
@@ -157,7 +156,7 @@ _dl_runtime_resolve:
_dl_prof_resolve:
# We need to save the registers used to pass parameters, and register 0,
# which is used by _mcount; the registers are saved in a stack frame.
- stwu 1,-48(1)
+ stwu 1,-64(1)
stw 0,12(1)
stw 3,16(1)
stw 4,20(1)
@@ -169,7 +168,7 @@ _dl_prof_resolve:
mflr 5
# We also need to save some of the condition register fields.
stw 7,32(1)
- stw 5,52(1)
+ stw 5,48(1)
stw 8,36(1)
mfcr 0
stw 9,40(1)
@@ -179,7 +178,7 @@ _dl_prof_resolve:
# 'fixup' returns the address we want to branch to.
mtctr 3
# Put the registers back...
- lwz 0,52(1)
+ lwz 0,48(1)
lwz 10,44(1)
lwz 9,40(1)
mtlr 0
@@ -193,7 +192,7 @@ _dl_prof_resolve:
lwz 3,16(1)
lwz 0,12(1)
# ...unwind the stack frame, and jump to the PLT entry we updated.
- addi 1,1,48
+ addi 1,1,64
bctr
.size _dl_prof_resolve,.-_dl_prof_resolve
# Undo '.section text'.