aboutsummaryrefslogtreecommitdiff
path: root/bfd/xcofflink.c
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@geoffk.org>2000-08-16 00:34:19 +0000
committerGeoffrey Keating <geoffk@geoffk.org>2000-08-16 00:34:19 +0000
commit31612ca61ad1b6f671cae51eef0872c4bf3ad6bf (patch)
tree3cd65d1e08c5729c46be6973bb6e73451bf5a445 /bfd/xcofflink.c
parent0d10e18267c6476627a1881c24bb6e364368f74a (diff)
downloadfsf-binutils-gdb-31612ca61ad1b6f671cae51eef0872c4bf3ad6bf.zip
fsf-binutils-gdb-31612ca61ad1b6f671cae51eef0872c4bf3ad6bf.tar.gz
fsf-binutils-gdb-31612ca61ad1b6f671cae51eef0872c4bf3ad6bf.tar.bz2
* xcofflink.c (_bfd_ppc_xcoff_relocate_section): Add ori r0,r0,0
to the list of NOPs we recognize after a branch-and-link. Use the ori NOP when one is needed. * coff-rs6000.c (_bfd_xcoff_slurp_armap): Finish implementation for large archives.
Diffstat (limited to 'bfd/xcofflink.c')
-rw-r--r--bfd/xcofflink.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 2d03fa4..f518fdf 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -6577,13 +6577,14 @@ _bfd_ppc_xcoff_relocate_section (output_bfd, info, input_bfd,
|| strcmp (h->root.root.string, "._ptrgl") == 0)
{
if (next == 0x4def7b82 /* cror 15,15,15 */
- || next == 0x4ffffb82) /* cror 31,31,31 */
+ || next == 0x4ffffb82 /* cror 31,31,31 */
+ || next == 0x60000000) /* ori r0,r0,0 */
bfd_put_32 (input_bfd, 0x80410014, pnext); /* lwz r1,20(r1) */
}
else
{
if (next == 0x80410014) /* lwz r1,20(r1) */
- bfd_put_32 (input_bfd, 0x4ffffb82, pnext); /* cror 31,31,31 */
+ bfd_put_32 (input_bfd, 0x60000000, pnext); /* ori r0,r0,0 */
}
}