aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/dl-machine.c11
-rw-r--r--sysdeps/powerpc/dl-machine.h10
-rw-r--r--sysdeps/powerpc/dl-start.S2
-rw-r--r--sysdeps/powerpc/fpu/s_rint.c6
-rw-r--r--sysdeps/powerpc/fpu/s_rintf.c6
5 files changed, 18 insertions, 17 deletions
diff --git a/sysdeps/powerpc/dl-machine.c b/sysdeps/powerpc/dl-machine.c
index 82895d8b68..ac2d94a0b5 100644
--- a/sysdeps/powerpc/dl-machine.c
+++ b/sysdeps/powerpc/dl-machine.c
@@ -1,5 +1,6 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC version.
- Copyright (C) 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,9 +22,9 @@
#include <string.h>
#include <sys/param.h>
#include <link.h>
-#include <dl-machine.h>
#include <ldsodefs.h>
#include <elf/dynamic-link.h>
+#include <dl-machine.h>
/* Because ld.so is now versioned, these functions can be in their own file;
no relocations need to be done to call them.
@@ -299,8 +300,7 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
there may be a little overlap at the start and the end.
Assumes that dcbst and icbi apply to lines of 16 bytes or
- more. At present, all PowerPC processors have line sizes of
- 16 or 32 bytes. */
+ more. Current known line sizes are 16, 32, and 128 bytes. */
size_modified = lazy ? rel_offset_words : 6;
for (i = 0; i < size_modified; i += 4)
@@ -315,7 +315,7 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
return lazy;
}
-void
+Elf32_Addr
__elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc,
Elf32_Addr *reloc_addr, Elf32_Addr finaladdr)
{
@@ -361,6 +361,7 @@ __elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc,
}
}
MODIFIED_CODE (reloc_addr);
+ return finaladdr;
}
void
diff --git a/sysdeps/powerpc/dl-machine.h b/sysdeps/powerpc/dl-machine.h
index f80544fafd..0307a2924a 100644
--- a/sysdeps/powerpc/dl-machine.h
+++ b/sysdeps/powerpc/dl-machine.h
@@ -1,5 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions. PowerPC version.
- Copyright (C) 1995, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -252,12 +253,11 @@ extern Elf32_Addr __elf_machine_fixup_plt (struct link_map *map,
Elf32_Addr finaladdr);
static inline Elf32_Addr
-elf_machine_fixup_plt (struct link_map *l, lookup_t t,
+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
const Elf32_Rela *reloc,
- Elf32_Addr *reloc_addr, Elf64_Addr value)
+ Elf32_Addr *reloc_addr, Elf64_Addr finaladdr)
{
- __elf_machine_fixup_plt (map, reloc, reloc_addr, finaladdr);
- return value;
+ return __elf_machine_fixup_plt (map, reloc, reloc_addr, finaladdr);
}
/* Return the final value of a plt relocation. */
diff --git a/sysdeps/powerpc/dl-start.S b/sysdeps/powerpc/dl-start.S
index 685c085ac9..1974c44e0d 100644
--- a/sysdeps/powerpc/dl-start.S
+++ b/sysdeps/powerpc/dl-start.S
@@ -56,7 +56,7 @@ ENTRY(_dl_start_user)
lwz r29,_dl_argc@got(r31)
lwz r27,_dl_argv@got(r31)
-/* Call _dl_init (_dl_loaded, _dl_argc, _dl_argv, _dl_argv+_dl_argc+1)
+/* Call _dl_init (_dl_loaded, _dl_argc, _dl_argv, _dl_argv+_dl_argc+1). */
lwz r3,0(r28)
lwz r4,0(r29)
lwz r5,0(r27)
diff --git a/sysdeps/powerpc/fpu/s_rint.c b/sysdeps/powerpc/fpu/s_rint.c
index a475875a97..204381e402 100644
--- a/sysdeps/powerpc/fpu/s_rint.c
+++ b/sysdeps/powerpc/fpu/s_rint.c
@@ -1,5 +1,5 @@
/* Round a 64-bit floating point value to the nearest integer.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,8 +33,8 @@ __rint (double x)
}
else if (x < 0.0)
{
- x -= TWO52;
- x += TWO52;
+ x = TWO52 - x;
+ x = -(x - TWO52);
}
}
diff --git a/sysdeps/powerpc/fpu/s_rintf.c b/sysdeps/powerpc/fpu/s_rintf.c
index dde40bb3e5..12c6b55976 100644
--- a/sysdeps/powerpc/fpu/s_rintf.c
+++ b/sysdeps/powerpc/fpu/s_rintf.c
@@ -1,5 +1,5 @@
/* Round a 32-bit floating point value to the nearest integer.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,8 +33,8 @@ __rintf (float x)
}
else if (x < 0.0)
{
- x -= TWO23;
- x += TWO23;
+ x = TWO23 - x;
+ x = -(x - TWO23);
}
}