diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-11-17 18:36:05 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-11-17 18:36:05 +0000 |
commit | d8cceb4fcf42c9dd7805b75a8640e15d00dd7ac9 (patch) | |
tree | 2509bdf2a3563d5cddb03fb92b97c1dedee40ad2 /sysdeps/powerpc/dl-machine.h | |
parent | cae8899646b7acc7e5b27c14624a027f5240787f (diff) | |
download | glibc-d8cceb4fcf42c9dd7805b75a8640e15d00dd7ac9.tar.gz glibc-d8cceb4fcf42c9dd7805b75a8640e15d00dd7ac9.tar.xz glibc-d8cceb4fcf42c9dd7805b75a8640e15d00dd7ac9.zip |
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.h | 19 |
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'. |