Change regcache list to be an hash map
[deliverable/binutils-gdb.git] / bfd / elf32-sh-relocs.h
index 3488ef4edbe48dbcb71a7289e8b6f6fdb731e135..de33dc6adfbce4000cc4d5d8bb945c4c5a0486f4 100644 (file)
@@ -1,7 +1,26 @@
-  /* No relocation.  */
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+/* No relocation.  */
   HOWTO (R_SH_NONE,            /* type */
         0,                     /* rightshift */
-        0,                     /* size (0 = byte, 1 = short, 2 = long) */
+        3,                     /* size (0 = byte, 1 = short, 2 = long) */
         0,                     /* bitsize */
         FALSE,                 /* pc_relative */
         0,                     /* bitpos */
         0x0f,                  /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-#ifdef INCLUDE_SHMEDIA
-  /* Used in SHLLI.L and SHLRI.L.  */
-  HOWTO (R_SH_DIR5U,           /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        5,                     /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_unsigned, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_DIR5U",          /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xfc00,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in SHARI, SHLLI et al.  */
-  HOWTO (R_SH_DIR6U,           /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        6,                     /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_unsigned, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_DIR6U",          /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xfc00,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in BxxI, LDHI.L et al.  */
-  HOWTO (R_SH_DIR6S,           /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        6,                     /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_DIR6S",          /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xfc00,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in ADDI, ANDI et al.  */
-  HOWTO (R_SH_DIR10S,          /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        10,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_DIR10S",         /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in LD.UW, ST.W et al.         */
-  HOWTO (R_SH_DIR10SW, /* type */
-        1,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        11,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_DIR10SW",        /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in LD.L, FLD.S et al.         */
-  HOWTO (R_SH_DIR10SL, /* type */
-        2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        12,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_DIR10SL",        /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in FLD.D, FST.P et al.  */
-  HOWTO (R_SH_DIR10SQ, /* type */
-        3,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        13,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_DIR10SQ",        /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-#else
   EMPTY_HOWTO (45),
   EMPTY_HOWTO (46),
   EMPTY_HOWTO (47),
   EMPTY_HOWTO (49),
   EMPTY_HOWTO (50),
   EMPTY_HOWTO (51),
-#endif
 
   EMPTY_HOWTO (52),
 
         0xffffffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-#ifdef INCLUDE_SHMEDIA
-  /* Used in MOVI and SHORI (x & 65536).  */
-  HOWTO (R_SH_GOT_LOW16,       /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOT_LOW16",      /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
-  HOWTO (R_SH_GOT_MEDLOW16,    /* type */
-        16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOT_MEDLOW16",   /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
-  HOWTO (R_SH_GOT_MEDHI16,     /* type */
-        32,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOT_MEDHI16",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
-  HOWTO (R_SH_GOT_HI16,                /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOT_HI16",       /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI (x & 65536).  */
-  HOWTO (R_SH_GOTPLT_LOW16,    /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPLT_LOW16",   /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
-  HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */
-        16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPLT_MEDLOW16", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
-  HOWTO (R_SH_GOTPLT_MEDHI16,  /* type */
-        32,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPLT_MEDHI16", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
-  HOWTO (R_SH_GOTPLT_HI16,     /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPLT_HI16",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI (x & 65536).  */
-  HOWTO (R_SH_PLT_LOW16,       /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_PLT_LOW16",      /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
-  HOWTO (R_SH_PLT_MEDLOW16,    /* type */
-        16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_PLT_MEDLOW16",   /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
-  HOWTO (R_SH_PLT_MEDHI16,     /* type */
-        32,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_PLT_MEDHI16",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
-  HOWTO (R_SH_PLT_HI16,                /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_PLT_HI16",       /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI (x & 65536).  */
-  HOWTO (R_SH_GOTOFF_LOW16,    /* type */
-        0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTOFF_LOW16",   /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
-  HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */
-        16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTOFF_MEDLOW16", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
-  HOWTO (R_SH_GOTOFF_MEDHI16,  /* type */
-        32,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTOFF_MEDHI16", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
-  HOWTO (R_SH_GOTOFF_HI16,     /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTOFF_HI16",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
+  EMPTY_HOWTO (169),
+  EMPTY_HOWTO (170),
+  EMPTY_HOWTO (171),
+  EMPTY_HOWTO (172),
+  EMPTY_HOWTO (173),
+  EMPTY_HOWTO (174),
+  EMPTY_HOWTO (175),
+  EMPTY_HOWTO (176),
+  EMPTY_HOWTO (177),
+  EMPTY_HOWTO (178),
+  EMPTY_HOWTO (179),
+  EMPTY_HOWTO (180),
+  EMPTY_HOWTO (181),
+  EMPTY_HOWTO (182),
+  EMPTY_HOWTO (183),
+  EMPTY_HOWTO (184),
+  EMPTY_HOWTO (185),
+  EMPTY_HOWTO (186),
+  EMPTY_HOWTO (187),
+  EMPTY_HOWTO (188),
+  EMPTY_HOWTO (189),
+  EMPTY_HOWTO (190),
+  EMPTY_HOWTO (191),
+  EMPTY_HOWTO (192),
+  EMPTY_HOWTO (193),
+  EMPTY_HOWTO (194),
+  EMPTY_HOWTO (195),
+  EMPTY_HOWTO (196),
+  EMPTY_HOWTO (197),
+  EMPTY_HOWTO (198),
+  EMPTY_HOWTO (199),
+  EMPTY_HOWTO (200),
 
-  /* Used in MOVI and SHORI (x & 65536).  */
-  HOWTO (R_SH_GOTPC_LOW16,     /* type */
+  /* FDPIC-relative offset to a GOT entry, for movi20.  */
+  HOWTO (R_SH_GOT20,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPC_LOW16",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
-  HOWTO (R_SH_GOTPC_MEDLOW16,  /* type */
-        16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPC_MEDLOW16", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
-  HOWTO (R_SH_GOTPC_MEDHI16,   /* type */
-        32,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPC_MEDHI16",  /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
-  HOWTO (R_SH_GOTPC_HI16,      /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPC_HI16",     /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in LD.L, FLD.S et al.         */
-  HOWTO (R_SH_GOT10BY4,                /* type */
-        2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        12,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOT10BY4",       /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in LD.L, FLD.S et al.         */
-  HOWTO (R_SH_GOTPLT10BY4,     /* type */
-        2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        12,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPLT10BY4",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in FLD.D, FST.P et al.  */
-  HOWTO (R_SH_GOT10BY8,                /* type */
-        3,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        13,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOT10BY8",       /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in FLD.D, FST.P et al.  */
-  HOWTO (R_SH_GOTPLT10BY8,     /* type */
-        3,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        13,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_signed, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GOTPLT10BY8",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0xffc00,               /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  HOWTO (R_SH_COPY64,          /* type */
-        0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
+        20,                    /* bitsize */
         FALSE,                 /* pc_relative */
         0,                     /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
+        complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_COPY64",         /* name */
+        "R_SH_GOT20",          /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        ((bfd_vma) 0) - 1,     /* dst_mask */
+        0x00f0ffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-  HOWTO (R_SH_GLOB_DAT64,      /* type */
+  /* FDPIC-relative offset to a data object, for movi20.  */
+  HOWTO (R_SH_GOTOFF20,                /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
+        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        20,                    /* bitsize */
         FALSE,                 /* pc_relative */
         0,                     /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
+        complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_GLOB_DAT64",     /* name */
+        "R_SH_GOTOFF20",       /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        ((bfd_vma) 0) - 1,     /* dst_mask */
+        0x00f0ffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-  HOWTO (R_SH_JMP_SLOT64,      /* type */
+  /* FDPIC-relative offset to a GOT entry for a function descriptor.  */
+  HOWTO (R_SH_GOTFUNCDESC,     /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
+        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        32,                    /* bitsize */
         FALSE,                 /* pc_relative */
         0,                     /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
+        complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_JMP_SLOT64",     /* name */
+        "R_SH_GOTFUNCDESC",    /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        ((bfd_vma) 0) - 1,     /* dst_mask */
+        0xffffffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-  HOWTO (R_SH_RELATIVE64,      /* type */
+  /* FDPIC-relative offset to a GOT entry for a function descriptor,
+     for movi20.  */
+  HOWTO (R_SH_GOTFUNCDESC20,   /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        0,                     /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_RELATIVE64",     /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        ((bfd_vma) 0) - 1,     /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  EMPTY_HOWTO (197),
-  EMPTY_HOWTO (198),
-  EMPTY_HOWTO (199),
-  EMPTY_HOWTO (200),
-  EMPTY_HOWTO (201),
-  EMPTY_HOWTO (202),
-  EMPTY_HOWTO (203),
-  EMPTY_HOWTO (204),
-  EMPTY_HOWTO (205),
-  EMPTY_HOWTO (206),
-  EMPTY_HOWTO (207),
-  EMPTY_HOWTO (208),
-  EMPTY_HOWTO (209),
-  EMPTY_HOWTO (210),
-  EMPTY_HOWTO (211),
-  EMPTY_HOWTO (212),
-  EMPTY_HOWTO (213),
-  EMPTY_HOWTO (214),
-  EMPTY_HOWTO (215),
-  EMPTY_HOWTO (216),
-  EMPTY_HOWTO (217),
-  EMPTY_HOWTO (218),
-  EMPTY_HOWTO (219),
-  EMPTY_HOWTO (220),
-  EMPTY_HOWTO (221),
-  EMPTY_HOWTO (222),
-  EMPTY_HOWTO (223),
-  EMPTY_HOWTO (224),
-  EMPTY_HOWTO (225),
-  EMPTY_HOWTO (226),
-  EMPTY_HOWTO (227),
-  EMPTY_HOWTO (228),
-  EMPTY_HOWTO (229),
-  EMPTY_HOWTO (230),
-  EMPTY_HOWTO (231),
-  EMPTY_HOWTO (232),
-  EMPTY_HOWTO (233),
-  EMPTY_HOWTO (234),
-  EMPTY_HOWTO (235),
-  EMPTY_HOWTO (236),
-  EMPTY_HOWTO (237),
-  EMPTY_HOWTO (238),
-  EMPTY_HOWTO (239),
-  EMPTY_HOWTO (240),
-  EMPTY_HOWTO (241),
-
-  /* Relocations for SHmedia code.  None of these are partial_inplace or
-     use the field being relocated (except R_SH_PT_16).  */
-
-  /* The assembler will generate this reloc before a block of SHmedia
-     instructions.  A section should be processed as assuming it contains
-     data, unless this reloc is seen.  Note that a block of SHcompact
-     instructions are instead preceded by R_SH_CODE.
-     This is currently not implemented, but should be used for SHmedia
-     linker relaxation.  */
-  HOWTO (R_SH_SHMEDIA_CODE,    /* type */
-        0,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
-        0,                     /* bitsize */
+        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        20,                    /* bitsize */
         FALSE,                 /* pc_relative */
         0,                     /* bitpos */
-        complain_overflow_unsigned, /* complain_on_overflow */
-        sh_elf_ignore_reloc,   /* special_function */
-        "R_SH_SHMEDIA_CODE",   /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0,                     /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* The assembler will generate this reloc at a PTA or PTB instruction,
-     and the linker checks the right type of target, or changes a PTA to a
-     PTB, if the original insn was PT.  */
-  HOWTO (R_SH_PT_16,           /* type */
-        2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        18,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_PT_16",          /* name */
+        "R_SH_GOTFUNCDESC20",  /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        0x00f0ffff,            /* dst_mask */
+        FALSE),                /* pcrel_offset */
 
-  /* Used in unexpanded MOVI.  */
-  HOWTO (R_SH_IMMS16,          /* type */
+  /* FDPIC-relative offset to a function descriptor.  */
+  HOWTO (R_SH_GOTOFFFUNCDESC,  /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        16,                    /* bitsize */
+        32,                    /* bitsize */
         FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
+        0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMMS16",         /* name */
+        "R_SH_GOTOFFFUNCDESC", /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
+        0xffffffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-  /* Used in SHORI.  */
-  HOWTO (R_SH_IMMU16,          /* type */
+  /* FDPIC-relative offset to a function descriptor, for movi20.  */
+  HOWTO (R_SH_GOTOFFFUNCDESC20,        /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        16,                    /* bitsize */
+        20,                    /* bitsize */
         FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_unsigned, /* complain_on_overflow */
+        0,                     /* bitpos */
+        complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMMU16",         /* name */
+        "R_SH_GOTOFFFUNCDESC20", /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
+        0x00f0ffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-  /* Used in MOVI and SHORI (x & 65536).  */
-  HOWTO (R_SH_IMM_LOW16,       /* type */
+  /* Address of an official function descriptor.  */
+  HOWTO (R_SH_FUNCDESC,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
+        32,                    /* bitsize */
         FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
+        0,                     /* bitpos */
+        complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_LOW16",      /* name */
+        "R_SH_FUNCDESC",       /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
+        0xffffffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-  /* Used in MOVI and SHORI ((x - $) & 65536).  */
-  HOWTO (R_SH_IMM_LOW16_PCREL, /* type */
+  /* Function descriptor to be filled in by the dynamic linker.  */
+  HOWTO (R_SH_FUNCDESC_VALUE,  /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_LOW16_PCREL", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
-  HOWTO (R_SH_IMM_MEDLOW16,    /* type */
-        16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_MEDLOW16",   /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI (((x - $) >> 16) & 65536).  */
-  HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */
-        16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_MEDLOW16_PCREL", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
-  HOWTO (R_SH_IMM_MEDHI16,     /* type */
-        32,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_MEDHI16",    /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI (((x - $) >> 32) & 65536).  */
-  HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */
-        32,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_MEDHI16_PCREL", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
-  HOWTO (R_SH_IMM_HI16,                /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        FALSE,                 /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_HI16",       /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
-
-  /* Used in MOVI and SHORI (((x - $) >> 48) & 65536).  */
-  HOWTO (R_SH_IMM_HI16_PCREL,  /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_IMM_HI16_PCREL", /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        0x3fffc00,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-  /* For the .uaquad pseudo.  */
-  HOWTO (R_SH_64,              /* type */
-        0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
         FALSE,                 /* pc_relative */
         0,                     /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
+        complain_overflow_signed, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
-        "R_SH_64",             /* name */
+        "R_SH_FUNCDESC_VALUE", /* name */
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
-        ((bfd_vma) 0) - 1,     /* dst_mask */
+        0xffffffff,            /* dst_mask */
         FALSE),                /* pcrel_offset */
 
-  /* For the .uaquad pseudo, (x - $).  */
-  HOWTO (R_SH_64_PCREL,                /* type */
-        48,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        64,                    /* bitsize */
-        TRUE,                  /* pc_relative */
-        10,                    /* bitpos */
-        complain_overflow_dont, /* complain_on_overflow */
-        bfd_elf_generic_reloc, /* special_function */
-        "R_SH_64_PCREL",       /* name */
-        FALSE,                 /* partial_inplace */
-        0,                     /* src_mask */
-        ((bfd_vma) 0) - 1,     /* dst_mask */
-        TRUE),                 /* pcrel_offset */
-
-#endif
 #undef SH_PARTIAL32
 #undef SH_SRC_MASK32
 #undef SH_ELF_RELOC
This page took 0.035869 seconds and 4 git commands to generate.