patch for AIX ld for new NOP opcodes.
Geoff Keating
geoffk@cygnus.com
Tue Aug 15 17:29:00 GMT 2000
I'm about to commit this, for aix 4.3.3 compatibility in ld. Tested
by a (linker) bootstrap on rs6000-ibm-aix4.3.3.0.
[No, the linker doesn't work yet. For one thing, it's missing 64-bit
support.]
--
- Geoffrey Keating <geoffk@cygnus.com>
===File ~/patches/cygnus/rs6000-ld-nops.patch===============
2000-08-15 Geoffrey Keating <geoffk@cygnus.com>
* 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.
Index: bfd/xcofflink.c
===================================================================
RCS file: /cvs/src/src/bfd/xcofflink.c,v
retrieving revision 1.6
diff -u -p -r1.6 xcofflink.c
--- xcofflink.c 2000/06/16 20:35:08 1.6
+++ xcofflink.c 2000/08/15 23:55:00
@@ -6577,13 +6577,14 @@ _bfd_ppc_xcoff_relocate_section (output_
|| 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 */
}
}
============================================================
More information about the Binutils
mailing list