summaryrefslogtreecommitdiff
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
commitf3ce8da22dede91c7b0de0ece29c16490637b034 (patch)
tree184d02f83f9867531f6d363b29b8f967bed1b102 /bfd/xcofflink.c
parent917ba3358504d664bd481116ad800f646223dbb0 (diff)
downloadgdb-f3ce8da22dede91c7b0de0ece29c16490637b034.tar.gz
* 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 2d03fa425dc..f518fdfb1a4 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 */
}
}