* elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
authorMark Mitchell <mark@codesourcery.com>
Wed, 2 Jun 1999 18:17:59 +0000 (18:17 +0000)
committerMark Mitchell <mark@codesourcery.com>
Wed, 2 Jun 1999 18:17:59 +0000 (18:17 +0000)
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
(mips_elf64_howto_table_rela): Likewise.

bfd/elf32-mips.c
bfd/elf64-mips.c

index 6828ba000415ef69ed523ab6ccd9321680df645b..0ec4fa6ea7da25488234c74503a5fa9dfe24fab5 100644 (file)
@@ -702,7 +702,23 @@ static reloc_howto_type elf_mips_howto_table[] =
   { R_MIPS_REL16 },
   { R_MIPS_ADD_IMMEDIATE },
   { R_MIPS_PJUMP },
-  { R_MIPS_RELGOT }
+  { R_MIPS_RELGOT },
+
+  /* Protected jump conversion.  This is an optimization hint.  No 
+     relocation is required for correctness.  */
+  HOWTO (R_MIPS_JALR,          /* type */
+        0,                     /* rightshift */
+        0,                     /* size (0 = byte, 1 = short, 2 = long) */
+        0,                     /* bitsize */
+        false,                 /* pc_relative */
+        0,                     /* bitpos */
+        complain_overflow_dont, /* complain_on_overflow */
+        bfd_elf_generic_reloc, /* special_function */
+        "R_MIPS_JALR",         /* name */
+        false,                 /* partial_inplace */
+        0x00000000,            /* src_mask */
+        0x00000000,            /* dst_mask */
+        false),                /* pcrel_offset */
 };
 
 /* The reloc used for BFD_RELOC_CTOR when doing a 64 bit link.  This
index 88e4c7feee8ad97a46972619f3ef45a05da34a33..36e607508d1edafc153dde939e9eb163cfefdfb4 100644 (file)
@@ -614,7 +614,23 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
         false,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false)                 /* pcrel_offset */
+        false),                /* pcrel_offset */
+
+  /* Protected jump conversion.  This is an optimization hint.  No 
+     relocation is required for correctness.  */
+  HOWTO (R_MIPS_JALR,          /* type */
+        0,                     /* rightshift */
+        0,                     /* size (0 = byte, 1 = short, 2 = long) */
+        0,                     /* bitsize */
+        false,                 /* pc_relative */
+        0,                     /* bitpos */
+        complain_overflow_dont, /* complain_on_overflow */
+        bfd_elf_generic_reloc, /* special_function */
+        "R_MIPS_JALR",         /* name */
+        false,                 /* partial_inplace */
+        0x00000000,            /* src_mask */
+        0x00000000,            /* dst_mask */
+        false),                /* pcrel_offset */
 };
 
 /* The relocation table used for SHT_RELA sections.  */
@@ -1152,7 +1168,23 @@ static reloc_howto_type mips_elf64_howto_table_rela[] =
         false,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        false)                 /* pcrel_offset */
+        false),                /* pcrel_offset */
+
+  /* Protected jump conversion.  This is an optimization hint.  No 
+     relocation is required for correctness.  */
+  HOWTO (R_MIPS_JALR,          /* type */
+        0,                     /* rightshift */
+        0,                     /* size (0 = byte, 1 = short, 2 = long) */
+        0,                     /* bitsize */
+        false,                 /* pc_relative */
+        0,                     /* bitpos */
+        complain_overflow_dont, /* complain_on_overflow */
+        bfd_elf_generic_reloc, /* special_function */
+        "R_MIPS_JALR",         /* name */
+        false,                 /* partial_inplace */
+        0x00000000,            /* src_mask */
+        0x00000000,            /* dst_mask */
+        false),                /* pcrel_offset */
 };
 
 /* Swap in a MIPS 64-bit Rel reloc.  */