-Index: bfd/ChangeLog
-===================================================================
-RCS file: /cvsroot/gcc/src-cvs/src/bfd/ChangeLog,v
-retrieving revision 1.2535
-diff -u -r1.2535 ChangeLog
---- bfd/ChangeLog 3 May 2004 14:52:01 -0000 1.2535
-+++ bfd/ChangeLog 5 May 2004 17:38:51 -0000
-@@ -1,0 +1,12 @@
-+2004-05-05 David Ung <davidu@mips.com>
-+
-+ * elfxx-mips.c (mips_elf_calculate_relocation): Put back cases for
-+ R_MIPS_PC32 and R_MIPS_PC64.
-+
-+ * elf32-mips.c: Put back elf_mips_gnu_pcrel64 and
-+ elf_mips_gnu_pcrel32.
-+ (bfd_elf32_bfd_reloc_type_lookup): Put back cases for
-+ BFD_RELOC_64_PCREL and BFD_RELOC_32_PCREL.
-+ (mips_elf32_rtype_to_howto): Put back cases for R_MIPS_PC32 and
-+ R_MIPS_PC64.
-+
-Index: bfd/elf32-mips.c
-===================================================================
-RCS file: /cvsroot/gcc/src-cvs/src/bfd/elf32-mips.c,v
-retrieving revision 1.175
-diff -u -r1.175 elf32-mips.c
---- bfd/elf32-mips.c 24 Apr 2004 22:07:13 -0000 1.175
-+++ bfd/elf32-mips.c 5 May 2004 17:38:51 -0000
-@@ -615,6 +615,38 @@
- 0xffff, /* dst_mask */
- TRUE); /* pcrel_offset */
-
-+/* 64 bit pc-relative. */
-+static reloc_howto_type elf_mips_gnu_pcrel64 =
-+ HOWTO (R_MIPS_PC64, /* type */
-+ 0, /* rightshift */
-+ 4, /* size (0 = byte, 1 = short, 2 = long) */
-+ 64, /* bitsize */
-+ TRUE, /* pc_relative */
-+ 0, /* bitpos */
-+ complain_overflow_signed, /* complain_on_overflow */
-+ _bfd_mips_elf_generic_reloc, /* special_function */
-+ "R_MIPS_PC64", /* name */
-+ TRUE, /* partial_inplace */
-+ MINUS_ONE, /* src_mask */
-+ MINUS_ONE, /* dst_mask */
-+ TRUE); /* pcrel_offset */
-+
-+/* 32 bit pc-relative. */
-+static reloc_howto_type elf_mips_gnu_pcrel32 =
-+ HOWTO (R_MIPS_PC32, /* type */
-+ 0, /* rightshift */
-+ 2, /* size (0 = byte, 1 = short, 2 = long) */
-+ 32, /* bitsize */
-+ TRUE, /* pc_relative */
-+ 0, /* bitpos */
-+ complain_overflow_signed, /* complain_on_overflow */
-+ _bfd_mips_elf_generic_reloc, /* special_function */
-+ "R_MIPS_PC32", /* name */
-+ TRUE, /* partial_inplace */
-+ 0xffffffff, /* src_mask */
-+ 0xffffffff, /* dst_mask */
-+ TRUE); /* pcrel_offset */
-+
- /* GNU extension to record C++ vtable hierarchy */
- static reloc_howto_type elf_mips_gnu_vtinherit_howto =
- HOWTO (R_MIPS_GNU_VTINHERIT, /* type */
-@@ -1071,6 +1103,10 @@
- return &elf_mips_gnu_vtentry_howto;
- case BFD_RELOC_16_PCREL_S2:
- return &elf_mips_gnu_rel16_s2;
-+ case BFD_RELOC_64_PCREL:
-+ return &elf_mips_gnu_pcrel64;
-+ case BFD_RELOC_32_PCREL:
-+ return &elf_mips_gnu_pcrel32;
- }
- }
-
-@@ -1092,6 +1128,10 @@
- return &elf_mips_gnu_vtentry_howto;
- case R_MIPS_GNU_REL16_S2:
- return &elf_mips_gnu_rel16_s2;
-+ case R_MIPS_PC64:
-+ return &elf_mips_gnu_pcrel64;
-+ case R_MIPS_PC32:
-+ return &elf_mips_gnu_pcrel32;
- default:
- BFD_ASSERT (r_type < (unsigned int) R_MIPS_max);
- return &elf_mips_howto_table_rel[r_type];
-Index: bfd/elfxx-mips.c
-===================================================================
-RCS file: /cvsroot/gcc/src-cvs/src/bfd/elfxx-mips.c,v
-retrieving revision 1.100
-diff -u -r1.100 elfxx-mips.c
---- bfd/elfxx-mips.c 24 Apr 2004 22:07:13 -0000 1.100
-+++ bfd/elfxx-mips.c 5 May 2004 17:38:51 -0000
-@@ -3335,6 +3335,12 @@
- value &= howto->dst_mask;
- break;
-
-+ case R_MIPS_PC32:
-+ case R_MIPS_PC64:
-+ value = symbol + addend - p;
-+ value &= howto->dst_mask;
-+ break;
-+
- case R_MIPS_GNU_REL16_S2:
- value = symbol + _bfd_mips_elf_sign_extend (addend, 18) - p;
- overflowed_p = mips_elf_overflow_p (value, 18);
Index: gas/ChangeLog
===================================================================
RCS file: /cvsroot/gcc/src-cvs/src/gas/ChangeLog,v
/* Tell assembler that we have an itbl_mips.h header file to include. */
#define HAVE_ITBL_CPU
-Index: include/elf/ChangeLog
-===================================================================
-RCS file: /cvsroot/gcc/src-cvs/src/include/elf/ChangeLog,v
-retrieving revision 1.205
-diff -u -r1.205 ChangeLog
---- include/elf/ChangeLog 24 Apr 2004 22:07:14 -0000 1.205
-+++ include/elf/ChangeLog 5 May 2004 17:38:51 -0000
-@@ -1,3 +1,7 @@
-+2004-05-05 David Ung <davidu@mips.com>
-+
-+ * mips.h: Put back R_MIPS_PC32 and R_MIPS_PC64.
-+
- 2004-04-24 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (R_MIPS_PC32, R_MIPS_PC64, R_MIPS_GNU_REL_LO16)
-Index: include/elf/mips.h
-===================================================================
-RCS file: /cvsroot/gcc/src-cvs/src/include/elf/mips.h,v
-retrieving revision 1.22
-diff -u -r1.22 mips.h
---- include/elf/mips.h 24 Apr 2004 22:07:14 -0000 1.22
-+++ include/elf/mips.h 5 May 2004 17:38:51 -0000
-@@ -76,6 +76,8 @@
- /* These relocs are used for the mips16. */
- RELOC_NUMBER (R_MIPS16_26, 100)
- RELOC_NUMBER (R_MIPS16_GPREL, 101)
-+ RELOC_NUMBER (R_MIPS_PC32, 248)
-+ RELOC_NUMBER (R_MIPS_PC64, 249)
- /* FIXME: this relocation is used internally by gas. */
- RELOC_NUMBER (R_MIPS_GNU_REL16_S2, 250)
- /* These are GNU extensions to enable C++ vtable garbage collection. */