ppc/svp64: support SVP64 vectors
[binutils-gdb.git] / bfd / elfn32-mips.c
index 07b753f0cc1e09fd96f99cb1973de9daac5a8f7a..ac604eda5eac81bb80ffc2e0e17e5faa0d4cd685 100644 (file)
@@ -112,7 +112,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* No relocation.  */
   HOWTO (R_MIPS_NONE,          /* type */
         0,                     /* rightshift */
-        3,                     /* size (0 = byte, 1 = short, 2 = long) */
+        0,                     /* size */
         0,                     /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -127,7 +127,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_16,            /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -142,7 +142,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 32 bit relocation.  */
   HOWTO (R_MIPS_32,            /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -157,7 +157,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 32 bit symbol relative relocation.  */
   HOWTO (R_MIPS_REL32,         /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -172,7 +172,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 26 bit jump address.  */
   HOWTO (R_MIPS_26,            /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -193,7 +193,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* High 16 bits of symbol value.  */
   HOWTO (R_MIPS_HI16,          /* type */
         16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -208,7 +208,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MIPS_LO16,          /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -223,7 +223,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* GP relative reference.  */
   HOWTO (R_MIPS_GPREL16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -238,7 +238,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Reference to literal section.  */
   HOWTO (R_MIPS_LITERAL,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -253,7 +253,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Reference to global offset table.  */
   HOWTO (R_MIPS_GOT16,         /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -270,7 +270,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
      We do the right thing here.  */
   HOWTO (R_MIPS_PC16,          /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -285,7 +285,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 16 bit call through global offset table.  */
   HOWTO (R_MIPS_CALL16,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -300,7 +300,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 32 bit GP relative reference.  */
   HOWTO (R_MIPS_GPREL32,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -321,7 +321,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* A 5 bit shift field.  */
   HOWTO (R_MIPS_SHIFT5,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         5,                     /* bitsize */
         false,                 /* pc_relative */
         6,                     /* bitpos */
@@ -336,7 +336,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* A 6 bit shift field.  */
   HOWTO (R_MIPS_SHIFT6,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         6,                     /* bitsize */
         false,                 /* pc_relative */
         6,                     /* bitpos */
@@ -351,7 +351,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* A 64 bit relocation.  */
   HOWTO (R_MIPS_64,            /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
+        8,                     /* size */
         64,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -366,7 +366,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Displacement in the global offset table.  */
   HOWTO (R_MIPS_GOT_DISP,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -381,7 +381,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_PAGE,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -396,7 +396,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_OFST,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -411,7 +411,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_HI16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -426,7 +426,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_LO16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -441,7 +441,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 64 bit subtraction.  */
   HOWTO (R_MIPS_SUB,           /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
+        8,                     /* size */
         64,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -457,7 +457,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* FIXME: Not handled correctly.  */
   HOWTO (R_MIPS_INSERT_A,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -474,7 +474,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* FIXME: Not handled correctly.  */
   HOWTO (R_MIPS_INSERT_B,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -490,7 +490,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* FIXME: Not handled correctly.  */
   HOWTO (R_MIPS_DELETE,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -514,7 +514,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_HI16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -529,7 +529,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_LO16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -544,7 +544,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* Section displacement.  */
   HOWTO (R_MIPS_SCN_DISP,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -558,7 +558,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_REL16,         /* type */
         0,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -578,7 +578,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
      It must be used for multigot GOT's (and only there).  */
   HOWTO (R_MIPS_RELGOT,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -594,7 +594,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
      relocation is required for correctness.  */
   HOWTO (R_MIPS_JALR,          /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -609,7 +609,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS GD/LD dynamic relocations.  */
   HOWTO (R_MIPS_TLS_DTPMOD32,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -623,7 +623,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_TLS_DTPREL32,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -641,7 +641,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS general dynamic variable reference.  */
   HOWTO (R_MIPS_TLS_GD,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -656,7 +656,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS local dynamic variable reference.  */
   HOWTO (R_MIPS_TLS_LDM,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -671,7 +671,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MIPS_TLS_DTPREL_HI16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -686,7 +686,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MIPS_TLS_DTPREL_LO16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -701,7 +701,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MIPS_TLS_GOTTPREL,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -716,7 +716,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS IE dynamic relocations.  */
   HOWTO (R_MIPS_TLS_TPREL32,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -733,7 +733,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MIPS_TLS_TPREL_HI16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -748,7 +748,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MIPS_TLS_TPREL_LO16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -763,7 +763,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
   /* 32 bit relocation with no addend.  */
   HOWTO (R_MIPS_GLOB_DAT,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -786,7 +786,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_PC21_S2,       /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         21,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -800,7 +800,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_PC26_S2,       /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -814,7 +814,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_PC18_S3,       /* type */
         3,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         18,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -828,7 +828,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_PC19_S2,       /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         19,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -842,7 +842,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_PCHI16,                /* type */
         16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -856,7 +856,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
 
   HOWTO (R_MIPS_PCLO16,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -877,7 +877,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* No relocation.  */
   HOWTO (R_MIPS_NONE,          /* type */
         0,                     /* rightshift */
-        0,                     /* size (0 = byte, 1 = short, 2 = long) */
+        0,                     /* size */
         0,                     /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -892,7 +892,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_16,            /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -901,13 +901,13 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
         "R_MIPS_16",           /* name */
         false,                 /* partial_inplace */
         0,                     /* src_mask */
-        0x0000,                /* dst_mask */
+        0x0000ffff,            /* dst_mask */
         false),                /* pcrel_offset */
 
   /* 32 bit relocation.  */
   HOWTO (R_MIPS_32,            /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -922,7 +922,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 32 bit symbol relative relocation.  */
   HOWTO (R_MIPS_REL32,         /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -937,7 +937,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 26 bit jump address.  */
   HOWTO (R_MIPS_26,            /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -955,7 +955,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* High 16 bits of symbol value.  */
   HOWTO (R_MIPS_HI16,          /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -970,7 +970,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MIPS_LO16,          /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -985,7 +985,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* GP relative reference.  */
   HOWTO (R_MIPS_GPREL16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1000,7 +1000,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Reference to literal section.  */
   HOWTO (R_MIPS_LITERAL,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1015,7 +1015,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Reference to global offset table.  */
   HOWTO (R_MIPS_GOT16,         /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1032,7 +1032,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
      We do the right thing here.  */
   HOWTO (R_MIPS_PC16,          /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1047,7 +1047,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 16 bit call through global offset table.  */
   HOWTO (R_MIPS_CALL16,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1062,7 +1062,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 32 bit GP relative reference.  */
   HOWTO (R_MIPS_GPREL32,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1081,7 +1081,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* A 5 bit shift field.  */
   HOWTO (R_MIPS_SHIFT5,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         5,                     /* bitsize */
         false,                 /* pc_relative */
         6,                     /* bitpos */
@@ -1096,7 +1096,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* A 6 bit shift field.  */
   HOWTO (R_MIPS_SHIFT6,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         6,                     /* bitsize */
         false,                 /* pc_relative */
         6,                     /* bitpos */
@@ -1111,7 +1111,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 64 bit relocation.  */
   HOWTO (R_MIPS_64,            /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
+        8,                     /* size */
         64,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1126,7 +1126,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Displacement in the global offset table.  */
   HOWTO (R_MIPS_GOT_DISP,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1141,7 +1141,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_PAGE,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1156,7 +1156,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MIPS_GOT_OFST,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1171,7 +1171,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_HI16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1186,7 +1186,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_GOT_LO16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1201,7 +1201,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 64 bit subtraction.  */
   HOWTO (R_MIPS_SUB,           /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
+        8,                     /* size */
         64,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1217,7 +1217,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* FIXME: Not handled correctly.  */
   HOWTO (R_MIPS_INSERT_A,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1234,7 +1234,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* FIXME: Not handled correctly.  */
   HOWTO (R_MIPS_INSERT_B,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1250,7 +1250,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* FIXME: Not handled correctly.  */
   HOWTO (R_MIPS_DELETE,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1265,7 +1265,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Get the higher value of a 64 bit addend.  */
   HOWTO (R_MIPS_HIGHER,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1280,7 +1280,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Get the highest value of a 64 bit addend.  */
   HOWTO (R_MIPS_HIGHEST,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1295,7 +1295,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_HI16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1310,7 +1310,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MIPS_CALL_LO16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1325,7 +1325,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* Section displacement, used by an associated event location section.  */
   HOWTO (R_MIPS_SCN_DISP,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1340,7 +1340,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 16 bit relocation.  */
   HOWTO (R_MIPS_REL16,         /* type */
         0,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1360,7 +1360,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
      It must be used for multigot GOT's (and only there).  */
   HOWTO (R_MIPS_RELGOT,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1376,7 +1376,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
      relocation is required for correctness.  */
   HOWTO (R_MIPS_JALR,          /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1391,7 +1391,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS GD/LD dynamic relocations.  */
   HOWTO (R_MIPS_TLS_DTPMOD32,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1405,7 +1405,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
 
   HOWTO (R_MIPS_TLS_DTPREL32,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1423,7 +1423,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS general dynamic variable reference.  */
   HOWTO (R_MIPS_TLS_GD,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1438,7 +1438,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS local dynamic variable reference.  */
   HOWTO (R_MIPS_TLS_LDM,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1453,7 +1453,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MIPS_TLS_DTPREL_HI16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1468,7 +1468,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MIPS_TLS_DTPREL_LO16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1483,7 +1483,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MIPS_TLS_GOTTPREL,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1498,7 +1498,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS IE dynamic relocations.  */
   HOWTO (R_MIPS_TLS_TPREL32,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1515,7 +1515,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MIPS_TLS_TPREL_HI16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1530,7 +1530,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MIPS_TLS_TPREL_LO16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1545,7 +1545,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
   /* 32 bit relocation with no addend.  */
   HOWTO (R_MIPS_GLOB_DAT,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1568,7 +1568,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
 
   HOWTO (R_MIPS_PC21_S2,       /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         21,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1582,7 +1582,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
 
   HOWTO (R_MIPS_PC26_S2,       /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1596,7 +1596,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
 
   HOWTO (R_MIPS_PC18_S3,       /* type */
         3,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         18,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1610,7 +1610,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
 
   HOWTO (R_MIPS_PC19_S2,       /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         19,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1624,7 +1624,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
 
   HOWTO (R_MIPS_PCHI16,                /* type */
         16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1638,7 +1638,7 @@ static reloc_howto_type elf_mips_howto_table_rela[] =
 
   HOWTO (R_MIPS_PCLO16,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1657,7 +1657,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* The reloc used for the mips16 jump instruction.  */
   HOWTO (R_MIPS16_26,          /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1675,7 +1675,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* The reloc used for the mips16 gprel instruction.  */
   HOWTO (R_MIPS16_GPREL,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1690,7 +1690,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* A MIPS16 reference to the global offset table.  */
   HOWTO (R_MIPS16_GOT16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1705,7 +1705,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* A MIPS16 call through the global offset table.  */
   HOWTO (R_MIPS16_CALL16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1720,7 +1720,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 high 16 bits of symbol value.  */
   HOWTO (R_MIPS16_HI16,                /* type */
         16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1735,7 +1735,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 low 16 bits of symbol value.  */
   HOWTO (R_MIPS16_LO16,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1750,7 +1750,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 TLS general dynamic variable reference.  */
   HOWTO (R_MIPS16_TLS_GD,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1765,7 +1765,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 TLS local dynamic variable reference.  */
   HOWTO (R_MIPS16_TLS_LDM,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1780,7 +1780,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 TLS local dynamic offset.  */
   HOWTO (R_MIPS16_TLS_DTPREL_HI16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1795,7 +1795,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 TLS local dynamic offset.  */
   HOWTO (R_MIPS16_TLS_DTPREL_LO16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1810,7 +1810,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 TLS thread pointer offset.  */
   HOWTO (R_MIPS16_TLS_GOTTPREL,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1825,7 +1825,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 TLS thread pointer offset.  */
   HOWTO (R_MIPS16_TLS_TPREL_HI16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1840,7 +1840,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 TLS thread pointer offset.  */
   HOWTO (R_MIPS16_TLS_TPREL_LO16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1855,7 +1855,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
   /* MIPS16 16-bit PC-relative branch offset.  */
   HOWTO (R_MIPS16_PC16_S1,     /* type */
         1,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -1873,7 +1873,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* The reloc used for the mips16 jump instruction.  */
   HOWTO (R_MIPS16_26,          /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1891,7 +1891,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* The reloc used for the mips16 gprel instruction.  */
   HOWTO (R_MIPS16_GPREL,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1906,7 +1906,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* A MIPS16 reference to the global offset table.  */
   HOWTO (R_MIPS16_GOT16,       /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1921,7 +1921,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* A MIPS16 call through the global offset table.  */
   HOWTO (R_MIPS16_CALL16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1936,7 +1936,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 high 16 bits of symbol value.  */
   HOWTO (R_MIPS16_HI16,                /* type */
         16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1951,7 +1951,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 low 16 bits of symbol value.  */
   HOWTO (R_MIPS16_LO16,                /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1966,7 +1966,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 TLS general dynamic variable reference.  */
   HOWTO (R_MIPS16_TLS_GD,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1981,7 +1981,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 TLS local dynamic variable reference.  */
   HOWTO (R_MIPS16_TLS_LDM,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -1996,7 +1996,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 TLS local dynamic offset.  */
   HOWTO (R_MIPS16_TLS_DTPREL_HI16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2011,7 +2011,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 TLS local dynamic offset.  */
   HOWTO (R_MIPS16_TLS_DTPREL_LO16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2026,7 +2026,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 TLS thread pointer offset.  */
   HOWTO (R_MIPS16_TLS_GOTTPREL,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2041,7 +2041,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 TLS thread pointer offset.  */
   HOWTO (R_MIPS16_TLS_TPREL_HI16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2056,7 +2056,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 TLS thread pointer offset.  */
   HOWTO (R_MIPS16_TLS_TPREL_LO16,      /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2071,7 +2071,7 @@ static reloc_howto_type elf_mips16_howto_table_rela[] =
   /* MIPS16 16-bit PC-relative branch offset.  */
   HOWTO (R_MIPS16_PC16_S1,     /* type */
         1,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2093,7 +2093,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* 26 bit jump address.  */
   HOWTO (R_MICROMIPS_26_S1,    /* type */
         1,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2111,7 +2111,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* High 16 bits of symbol value.  */
   HOWTO (R_MICROMIPS_HI16,     /* type */
         16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2126,7 +2126,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MICROMIPS_LO16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2141,7 +2141,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* GP relative reference.  */
   HOWTO (R_MICROMIPS_GPREL16,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2156,7 +2156,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Reference to literal section.  */
   HOWTO (R_MICROMIPS_LITERAL,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2171,7 +2171,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Reference to global offset table.  */
   HOWTO (R_MICROMIPS_GOT16,    /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2186,7 +2186,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* This is for microMIPS branches.  */
   HOWTO (R_MICROMIPS_PC7_S1,   /* type */
         1,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         7,                     /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2200,7 +2200,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
 
   HOWTO (R_MICROMIPS_PC10_S1,  /* type */
         1,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         10,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2214,7 +2214,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
 
   HOWTO (R_MICROMIPS_PC16_S1,  /* type */
         1,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2229,7 +2229,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* 16 bit call through global offset table.  */
   HOWTO (R_MICROMIPS_CALL16,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2247,7 +2247,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Displacement in the global offset table.  */
   HOWTO (R_MICROMIPS_GOT_DISP, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2262,7 +2262,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MICROMIPS_GOT_PAGE, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2277,7 +2277,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MICROMIPS_GOT_OFST, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2292,7 +2292,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_GOT_HI16, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2307,7 +2307,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_GOT_LO16, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2322,7 +2322,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* 64 bit subtraction.  Used in the N32 ABI.  */
   HOWTO (R_MICROMIPS_SUB,      /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
+        8,                     /* size */
         64,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2344,7 +2344,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_CALL_HI16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2359,7 +2359,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_CALL_LO16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2374,7 +2374,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* Section displacement.  */
   HOWTO (R_MICROMIPS_SCN_DISP,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2390,7 +2390,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
      relocation is required for correctness.  */
   HOWTO (R_MICROMIPS_JALR,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2406,7 +2406,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
      must be zero.  This is used for relaxation.  */
   HOWTO (R_MICROMIPS_HI0_LO16, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2426,7 +2426,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* TLS general dynamic variable reference.  */
   HOWTO (R_MICROMIPS_TLS_GD,           /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2441,7 +2441,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* TLS local dynamic variable reference.  */
   HOWTO (R_MICROMIPS_TLS_LDM,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2456,7 +2456,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MICROMIPS_TLS_DTPREL_HI16,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2471,7 +2471,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MICROMIPS_TLS_DTPREL_LO16,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2486,7 +2486,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MICROMIPS_TLS_GOTTPREL,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2504,7 +2504,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MICROMIPS_TLS_TPREL_HI16,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2519,7 +2519,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MICROMIPS_TLS_TPREL_LO16,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2536,7 +2536,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
   /* GP- and PC-relative relocations.  */
   HOWTO (R_MICROMIPS_GPREL7_S2,        /* type */
         2,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         7,                     /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2550,7 +2550,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
 
   HOWTO (R_MICROMIPS_PC23_S2,  /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         23,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2572,7 +2572,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* 26 bit jump address.  */
   HOWTO (R_MICROMIPS_26_S1,    /* type */
         1,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         26,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2590,7 +2590,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* High 16 bits of symbol value.  */
   HOWTO (R_MICROMIPS_HI16,     /* type */
         16,                    /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2605,7 +2605,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Low 16 bits of symbol value.  */
   HOWTO (R_MICROMIPS_LO16,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2620,7 +2620,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* GP relative reference.  */
   HOWTO (R_MICROMIPS_GPREL16,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2635,7 +2635,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Reference to literal section.  */
   HOWTO (R_MICROMIPS_LITERAL,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2650,7 +2650,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Reference to global offset table.  */
   HOWTO (R_MICROMIPS_GOT16,    /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2665,7 +2665,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* This is for microMIPS branches.  */
   HOWTO (R_MICROMIPS_PC7_S1,   /* type */
         1,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         7,                     /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2679,7 +2679,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
 
   HOWTO (R_MICROMIPS_PC10_S1,  /* type */
         1,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         10,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2693,7 +2693,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
 
   HOWTO (R_MICROMIPS_PC16_S1,  /* type */
         1,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -2708,7 +2708,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* 16 bit call through global offset table.  */
   HOWTO (R_MICROMIPS_CALL16,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2726,7 +2726,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Displacement in the global offset table.  */
   HOWTO (R_MICROMIPS_GOT_DISP, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2741,7 +2741,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Displacement to page pointer in the global offset table.  */
   HOWTO (R_MICROMIPS_GOT_PAGE, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2756,7 +2756,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Offset from page pointer in the global offset table.  */
   HOWTO (R_MICROMIPS_GOT_OFST, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2771,7 +2771,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_GOT_HI16, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2786,7 +2786,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_GOT_LO16, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2801,7 +2801,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* 64 bit subtraction.  Used in the N32 ABI.  */
   HOWTO (R_MICROMIPS_SUB,      /* type */
         0,                     /* rightshift */
-        4,                     /* size (0 = byte, 1 = short, 2 = long) */
+        8,                     /* size */
         64,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2816,7 +2816,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Get the higher value of a 64 bit addend.  */
   HOWTO (R_MICROMIPS_HIGHER,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2831,7 +2831,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Get the highest value of a 64 bit addend.  */
   HOWTO (R_MICROMIPS_HIGHEST,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2846,7 +2846,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* High 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_CALL_HI16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2861,7 +2861,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Low 16 bits of displacement in global offset table.  */
   HOWTO (R_MICROMIPS_CALL_LO16,        /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2876,7 +2876,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* Section displacement.  */
   HOWTO (R_MICROMIPS_SCN_DISP,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2892,7 +2892,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
      relocation is required for correctness.  */
   HOWTO (R_MICROMIPS_JALR,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2908,7 +2908,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
      must be zero.  This is used for relaxation.  */
   HOWTO (R_MICROMIPS_HI0_LO16, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2928,7 +2928,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* TLS general dynamic variable reference.  */
   HOWTO (R_MICROMIPS_TLS_GD,           /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2943,7 +2943,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* TLS local dynamic variable reference.  */
   HOWTO (R_MICROMIPS_TLS_LDM,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2958,7 +2958,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MICROMIPS_TLS_DTPREL_HI16,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2973,7 +2973,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* TLS local dynamic offset.  */
   HOWTO (R_MICROMIPS_TLS_DTPREL_LO16,  /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -2988,7 +2988,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MICROMIPS_TLS_GOTTPREL,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3006,7 +3006,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MICROMIPS_TLS_TPREL_HI16,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3021,7 +3021,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* TLS thread pointer offset.  */
   HOWTO (R_MICROMIPS_TLS_TPREL_LO16,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3038,7 +3038,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
   /* GP- and PC-relative relocations.  */
   HOWTO (R_MICROMIPS_GPREL7_S2,        /* type */
         2,                     /* rightshift */
-        1,                     /* size (0 = byte, 1 = short, 2 = long) */
+        2,                     /* size */
         7,                     /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3052,7 +3052,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
 
   HOWTO (R_MICROMIPS_PC23_S2,  /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         23,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -3069,7 +3069,7 @@ static reloc_howto_type elf_micromips_howto_table_rela[] =
 static reloc_howto_type elf_mips_gnu_vtinherit_howto =
   HOWTO (R_MIPS_GNU_VTINHERIT, /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         0,                     /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3085,7 +3085,7 @@ static reloc_howto_type elf_mips_gnu_vtinherit_howto =
 static reloc_howto_type elf_mips_gnu_vtentry_howto =
   HOWTO (R_MIPS_GNU_VTENTRY,   /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         0,                     /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3101,7 +3101,7 @@ static reloc_howto_type elf_mips_gnu_vtentry_howto =
 static reloc_howto_type elf_mips_gnu_rel16_s2 =
   HOWTO (R_MIPS_GNU_REL16_S2,  /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -3117,7 +3117,7 @@ static reloc_howto_type elf_mips_gnu_rel16_s2 =
 static reloc_howto_type elf_mips_gnu_rela16_s2 =
   HOWTO (R_MIPS_GNU_REL16_S2,  /* type */
         2,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         16,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -3133,7 +3133,7 @@ static reloc_howto_type elf_mips_gnu_rela16_s2 =
 static reloc_howto_type elf_mips_gnu_pcrel32 =
   HOWTO (R_MIPS_PC32,          /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         true,                  /* pc_relative */
         0,                     /* bitpos */
@@ -3166,7 +3166,7 @@ static reloc_howto_type elf_mips_copy_howto =
 static reloc_howto_type elf_mips_jump_slot_howto =
   HOWTO (R_MIPS_JUMP_SLOT,     /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3182,7 +3182,7 @@ static reloc_howto_type elf_mips_jump_slot_howto =
 static reloc_howto_type elf_mips_eh_howto =
   HOWTO (R_MIPS_EH,            /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        4,                     /* size */
         32,                    /* bitsize */
         false,                 /* pc_relative */
         0,                     /* bitpos */
@@ -3513,7 +3513,8 @@ struct elf_reloc_map {
 static const struct elf_reloc_map mips_reloc_map[] =
 {
   { BFD_RELOC_NONE, R_MIPS_NONE },
-  { BFD_RELOC_16, R_MIPS_16 },
+  { BFD_RELOC_MIPS_16, R_MIPS_16 },
+  { BFD_RELOC_16, R_MIPS_REL16 },
   { BFD_RELOC_32, R_MIPS_32 },
   /* There is no BFD reloc for R_MIPS_REL32.  */
   { BFD_RELOC_CTOR, R_MIPS_32 },
@@ -3543,7 +3544,6 @@ static const struct elf_reloc_map mips_reloc_map[] =
   { BFD_RELOC_MIPS_CALL_HI16, R_MIPS_CALL_HI16 },
   { BFD_RELOC_MIPS_CALL_LO16, R_MIPS_CALL_LO16 },
   { BFD_RELOC_MIPS_SCN_DISP, R_MIPS_SCN_DISP },
-  { BFD_RELOC_MIPS_REL16, R_MIPS_REL16 },
   /* Use of R_MIPS_ADD_IMMEDIATE and R_MIPS_PJUMP is deprecated.  */
   { BFD_RELOC_MIPS_RELGOT, R_MIPS_RELGOT },
   { BFD_RELOC_MIPS_JALR, R_MIPS_JALR },
@@ -4176,6 +4176,8 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
 #define bfd_elf32_bfd_is_target_special_symbol \
                                        _bfd_mips_elf_is_target_special_symbol
 #define bfd_elf32_find_nearest_line    _bfd_mips_elf_find_nearest_line
+#define bfd_elf32_find_nearest_line_with_alt \
+                               _bfd_mips_elf_find_nearest_line_with_alt
 #define bfd_elf32_find_inliner_info    _bfd_mips_elf_find_inliner_info
 #define bfd_elf32_new_section_hook     _bfd_mips_elf_new_section_hook
 #define bfd_elf32_set_section_contents _bfd_mips_elf_set_section_contents