From d8cceb4fcf42c9dd7805b75a8640e15d00dd7ac9 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 17 Nov 1998 18:36:05 +0000 Subject: Update. 1998-11-17 Ulrich Drepper * stdio-common/printf_fphex.c (__printf_fphex): Correct printing of denormalized numbers. 1998-10-06 Geoff Keating * 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 * configure.in: Correct allowed makeinfo version. 1998-11-17 Philip Blundell * sysdeps/generic/bits/mathdef.h: Fix typo. * intl/locale.alias: Change `japanese' alias to match X11R6's. --- sysdeps/powerpc/dl-machine.h | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'sysdeps/powerpc/dl-machine.h') 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'. -- cgit 1.4.1