Add new relocations for alpha explicit relocation support
authorMichael Meissner <gnu@the-meissners.org>
Sun, 28 Nov 1999 03:26:42 +0000 (03:26 +0000)
committerMichael Meissner <gnu@the-meissners.org>
Sun, 28 Nov 1999 03:26:42 +0000 (03:26 +0000)
bfd/ChangeLog
bfd/bfd-in2.h
bfd/elf64-alpha.c
bfd/libbfd.h
bfd/reloc.c

index d82166ac4cec2cf23e8c0c36dc0f8b18f200f943..2a2ff7b2303a02c4cd5f6e0d897241447a7e48e0 100644 (file)
@@ -1,3 +1,20 @@
+1999-11-27  Michael Meissner  <meissner@cygnus.com>
+
+       * reloc.c (BFD_RELOC_ALPHA_USER_LITERAL): New relocation for
+       internal use within gas for alpha explicit relocations.
+       (BFD_RELOC_ALPHA_USER_LITUSE_BASE): Ditto.
+       (BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF): Ditto.
+       (BFD_RELOC_ALPHA_USER_LITUSE_JSR): Ditto.
+       (BFD_RELOC_ALPHA_USER_GPDISP): Ditto.
+       (BFD_RELOC_ALPHA_USER_GPRELHIGH): Ditto.
+       (BFD_RELOC_ALPHA_USER_GPRELLOW): Ditto.
+
+       * elf64-alpha.c (elf64_alpha_reloc_map): Add mappings for
+       BFD_RELOC_ALPHA_USER_*.
+
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
 1999-11-26  Fred Fish  <fnf@cygnus.com>
 
        * elf.c (elfcore_read_notes): Add prototype for static function.
index a3ca2bf8de9e47cb3cd000e97a28c63382beb96a..9fe0cfbb576ea1da1accfd997420f9b389b23891 100644 (file)
@@ -1830,6 +1830,17 @@ The GNU linker currently doesn't do any of this optimizing. */
   BFD_RELOC_ALPHA_ELF_LITERAL,
   BFD_RELOC_ALPHA_LITUSE,
 
+/* The BFD_RELOC_ALPHA_USER_* relocations are used by the assembler to
+process the explicit !<reloc>!sequence relocations, and are mapped
+into the normal relocations at the end of processing. */
+  BFD_RELOC_ALPHA_USER_LITERAL,
+  BFD_RELOC_ALPHA_USER_LITUSE_BASE,
+  BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF,
+  BFD_RELOC_ALPHA_USER_LITUSE_JSR,
+  BFD_RELOC_ALPHA_USER_GPDISP,
+  BFD_RELOC_ALPHA_USER_GPRELHIGH,
+  BFD_RELOC_ALPHA_USER_GPRELLOW,
+
 /* The HINT relocation indicates a value that should be filled into the
 "hint" field of a jmp/jsr/ret instruction, for possible branch-
 prediction logic which may be provided on some processors. */
index 2a0cdb57962deab4cd6666dd686135e92e6bf91a..3a14bcc3a67c5f02318fbca28ab7cf737c6a5ce5 100644 (file)
@@ -972,6 +972,17 @@ static const struct elf_reloc_map elf64_alpha_reloc_map[] =
   {BFD_RELOC_16_PCREL,         R_ALPHA_SREL16},
   {BFD_RELOC_32_PCREL,         R_ALPHA_SREL32},
   {BFD_RELOC_64_PCREL,         R_ALPHA_SREL64},
+
+/* The BFD_RELOC_ALPHA_USER_* relocations are used by the assembler to process
+   the explicit !<reloc>!sequence relocations, and are mapped into the normal
+   relocations at the end of processing. */
+  {BFD_RELOC_ALPHA_USER_LITERAL,       R_ALPHA_LITERAL},
+  {BFD_RELOC_ALPHA_USER_LITUSE_BASE,   R_ALPHA_LITUSE},
+  {BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF, R_ALPHA_LITUSE},
+  {BFD_RELOC_ALPHA_USER_LITUSE_JSR,    R_ALPHA_LITUSE},
+  {BFD_RELOC_ALPHA_USER_GPDISP,                R_ALPHA_GPDISP},
+  {BFD_RELOC_ALPHA_USER_GPRELHIGH,     R_ALPHA_GPRELHIGH},
+  {BFD_RELOC_ALPHA_USER_GPRELLOW,      R_ALPHA_GPRELLOW},
 };
 
 /* Given a BFD reloc type, return a HOWTO structure.  */
index 4918d260742b114ba392ab2f3580e11acdc1f659..26bf7efdedc250d44199fa85afc98944a22fe615 100644 (file)
@@ -676,6 +676,13 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_ALPHA_LITERAL",
   "BFD_RELOC_ALPHA_ELF_LITERAL",
   "BFD_RELOC_ALPHA_LITUSE",
+  "BFD_RELOC_ALPHA_USER_LITERAL",
+  "BFD_RELOC_ALPHA_USER_LITUSE_BASE",
+  "BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF",
+  "BFD_RELOC_ALPHA_USER_LITUSE_JSR",
+  "BFD_RELOC_ALPHA_USER_GPDISP",
+  "BFD_RELOC_ALPHA_USER_GPRELHIGH",
+  "BFD_RELOC_ALPHA_USER_GPRELLOW",
   "BFD_RELOC_ALPHA_HINT",
   "BFD_RELOC_ALPHA_LINKAGE",
   "BFD_RELOC_ALPHA_CODEADDR",
index e749b606d3831cbc4da749a3a8f5f6ff14f4bae5..a0db15f1a3b6e88ab6c45ad6bb5ba81ee8986e41 100644 (file)
@@ -1960,6 +1960,25 @@ ENUMDOC
 
      The GNU linker currently doesn't do any of this optimizing.
 
+ENUM
+  BFD_RELOC_ALPHA_USER_LITERAL
+ENUMX
+  BFD_RELOC_ALPHA_USER_LITUSE_BASE
+ENUMX
+  BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF
+ENUMX
+  BFD_RELOC_ALPHA_USER_LITUSE_JSR
+ENUMX
+  BFD_RELOC_ALPHA_USER_GPDISP
+ENUMX
+  BFD_RELOC_ALPHA_USER_GPRELHIGH
+ENUMX
+  BFD_RELOC_ALPHA_USER_GPRELLOW
+ENUMDOC
+  The BFD_RELOC_ALPHA_USER_* relocations are used by the assembler to
+     process the explicit !<reloc>!sequence relocations, and are mapped
+     into the normal relocations at the end of processing.
+
 ENUM
   BFD_RELOC_ALPHA_HINT
 ENUMDOC