reloc_howto_type MY (howto_table)[] =
{
/* ns32k immediate operands. */
- HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 0, 8, false, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 1, 8, false, 0, complain_overflow_signed,
_bfd_ns32k_reloc_imm, "NS32K_IMM_8",
true, 0x000000ff,0x000000ff, false),
- HOWTO (BFD_RELOC_NS32K_IMM_16, 0, 1, 16, false, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_IMM_16, 0, 2, 16, false, 0, complain_overflow_signed,
_bfd_ns32k_reloc_imm, "NS32K_IMM_16",
true, 0x0000ffff,0x0000ffff, false),
- HOWTO (BFD_RELOC_NS32K_IMM_32, 0, 2, 32, false, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_IMM_32, 0, 4, 32, false, 0, complain_overflow_signed,
_bfd_ns32k_reloc_imm, "NS32K_IMM_32",
true, 0xffffffff,0xffffffff, false),
- HOWTO (BFD_RELOC_NS32K_IMM_8_PCREL, 0, 0, 8, true, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_IMM_8_PCREL, 0, 1, 8, true, 0, complain_overflow_signed,
_bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_8",
true, 0x000000ff, 0x000000ff, false),
- HOWTO (BFD_RELOC_NS32K_IMM_16_PCREL, 0, 1, 16, true, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_IMM_16_PCREL, 0, 2, 16, true, 0, complain_overflow_signed,
_bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_16",
true, 0x0000ffff,0x0000ffff, false),
- HOWTO (BFD_RELOC_NS32K_IMM_32_PCREL, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_IMM_32_PCREL, 0, 4, 32, true, 0, complain_overflow_signed,
_bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_32",
true, 0xffffffff,0xffffffff, false),
/* ns32k displacements. */
- HOWTO (BFD_RELOC_NS32K_DISP_8, 0, 0, 7, false, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_DISP_8, 0, 1, 7, false, 0, complain_overflow_signed,
_bfd_ns32k_reloc_disp, "NS32K_DISP_8",
true, 0x000000ff,0x000000ff, false),
- HOWTO (BFD_RELOC_NS32K_DISP_16, 0, 1, 14, false, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_DISP_16, 0, 2, 14, false, 0, complain_overflow_signed,
_bfd_ns32k_reloc_disp, "NS32K_DISP_16",
true, 0x0000ffff, 0x0000ffff, false),
- HOWTO (BFD_RELOC_NS32K_DISP_32, 0, 2, 30, false, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_DISP_32, 0, 4, 30, false, 0, complain_overflow_signed,
_bfd_ns32k_reloc_disp, "NS32K_DISP_32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO (BFD_RELOC_NS32K_DISP_8_PCREL, 0, 0, 7, true, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_DISP_8_PCREL, 0, 1, 7, true, 0, complain_overflow_signed,
_bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_8",
true, 0x000000ff,0x000000ff, false),
- HOWTO (BFD_RELOC_NS32K_DISP_16_PCREL, 0, 1, 14, true, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_DISP_16_PCREL, 0, 2, 14, true, 0, complain_overflow_signed,
_bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_16",
true, 0x0000ffff,0x0000ffff, false),
- HOWTO (BFD_RELOC_NS32K_DISP_32_PCREL, 0, 2, 30, true, 0, complain_overflow_signed,
+ HOWTO (BFD_RELOC_NS32K_DISP_32_PCREL, 0, 4, 30, true, 0, complain_overflow_signed,
_bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_32",
true, 0xffffffff,0xffffffff, false),
/* Normal 2's complement. */
- HOWTO (BFD_RELOC_8, 0, 0, 8, false, 0, complain_overflow_bitfield,0,
+ HOWTO (BFD_RELOC_8, 0, 1, 8, false, 0, complain_overflow_bitfield,0,
"8", true, 0x000000ff,0x000000ff, false),
- HOWTO (BFD_RELOC_16, 0, 1, 16, false, 0, complain_overflow_bitfield,0,
+ HOWTO (BFD_RELOC_16, 0, 2, 16, false, 0, complain_overflow_bitfield,0,
"16", true, 0x0000ffff,0x0000ffff, false),
- HOWTO (BFD_RELOC_32, 0, 2, 32, false, 0, complain_overflow_bitfield,0,
+ HOWTO (BFD_RELOC_32, 0, 4, 32, false, 0, complain_overflow_bitfield,0,
"32", true, 0xffffffff,0xffffffff, false),
- HOWTO (BFD_RELOC_8_PCREL, 0, 0, 8, true, 0, complain_overflow_signed, 0,
+ HOWTO (BFD_RELOC_8_PCREL, 0, 1, 8, true, 0, complain_overflow_signed, 0,
"PCREL_8", true, 0x000000ff,0x000000ff, false),
- HOWTO (BFD_RELOC_16_PCREL, 0, 1, 16, true, 0, complain_overflow_signed, 0,
+ HOWTO (BFD_RELOC_16_PCREL, 0, 2, 16, true, 0, complain_overflow_signed, 0,
"PCREL_16", true, 0x0000ffff,0x0000ffff, false),
- HOWTO (BFD_RELOC_32_PCREL, 0, 2, 32, true, 0, complain_overflow_signed, 0,
+ HOWTO (BFD_RELOC_32_PCREL, 0, 4, 32, true, 0, complain_overflow_signed, 0,
"PCREL_32", true, 0xffffffff,0xffffffff, false),
};
reloc_howto_type howto_table_ext[] =
{
/* Type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone. */
- HOWTO (RELOC_8, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "8", false, 0, 0x000000ff, false),
- HOWTO (RELOC_16, 0, 1, 16, false, 0, complain_overflow_bitfield, 0, "16", false, 0, 0x0000ffff, false),
- HOWTO (RELOC_32, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "32", false, 0, 0xffffffff, false),
- HOWTO (RELOC_DISP8, 0, 0, 8, true, 0, complain_overflow_signed, 0, "DISP8", false, 0, 0x000000ff, false),
- HOWTO (RELOC_DISP16, 0, 1, 16, true, 0, complain_overflow_signed, 0, "DISP16", false, 0, 0x0000ffff, false),
- HOWTO (RELOC_DISP32, 0, 2, 32, true, 0, complain_overflow_signed, 0, "DISP32", false, 0, 0xffffffff, false),
- HOWTO (RELOC_WDISP30, 2, 2, 30, true, 0, complain_overflow_signed, 0, "WDISP30", false, 0, 0x3fffffff, false),
- HOWTO (RELOC_WDISP22, 2, 2, 22, true, 0, complain_overflow_signed, 0, "WDISP22", false, 0, 0x003fffff, false),
- HOWTO (RELOC_HI22, 10, 2, 22, false, 0, complain_overflow_bitfield, 0, "HI22", false, 0, 0x003fffff, false),
- HOWTO (RELOC_22, 0, 2, 22, false, 0, complain_overflow_bitfield, 0, "22", false, 0, 0x003fffff, false),
- HOWTO (RELOC_13, 0, 2, 13, false, 0, complain_overflow_bitfield, 0, "13", false, 0, 0x00001fff, false),
- HOWTO (RELOC_LO10, 0, 2, 10, false, 0, complain_overflow_dont, 0, "LO10", false, 0, 0x000003ff, false),
- HOWTO (RELOC_SFA_BASE,0, 2, 32, false, 0, complain_overflow_bitfield, 0, "SFA_BASE", false, 0, 0xffffffff, false),
- HOWTO (RELOC_SFA_OFF13,0, 2, 32, false, 0, complain_overflow_bitfield, 0, "SFA_OFF13", false, 0, 0xffffffff, false),
- HOWTO (RELOC_BASE10, 0, 2, 10, false, 0, complain_overflow_dont, 0, "BASE10", false, 0, 0x000003ff, false),
- HOWTO (RELOC_BASE13, 0, 2, 13, false, 0, complain_overflow_signed, 0, "BASE13", false, 0, 0x00001fff, false),
- HOWTO (RELOC_BASE22, 10, 2, 22, false, 0, complain_overflow_bitfield, 0, "BASE22", false, 0, 0x003fffff, false),
- HOWTO (RELOC_PC10, 0, 2, 10, true, 0, complain_overflow_dont, 0, "PC10", false, 0, 0x000003ff, true),
- HOWTO (RELOC_PC22, 10, 2, 22, true, 0, complain_overflow_signed, 0, "PC22", false, 0, 0x003fffff, true),
- HOWTO (RELOC_JMP_TBL, 2, 2, 30, true, 0, complain_overflow_signed, 0, "JMP_TBL", false, 0, 0x3fffffff, false),
- HOWTO (RELOC_SEGOFF16,0, 2, 0, false, 0, complain_overflow_bitfield, 0, "SEGOFF16", false, 0, 0x00000000, false),
- HOWTO (RELOC_GLOB_DAT,0, 2, 0, false, 0, complain_overflow_bitfield, 0, "GLOB_DAT", false, 0, 0x00000000, false),
- HOWTO (RELOC_JMP_SLOT,0, 2, 0, false, 0, complain_overflow_bitfield, 0, "JMP_SLOT", false, 0, 0x00000000, false),
- HOWTO (RELOC_RELATIVE,0, 2, 0, false, 0, complain_overflow_bitfield, 0, "RELATIVE", false, 0, 0x00000000, false),
- HOWTO (0, 0, 3, 0, false, 0, complain_overflow_dont, 0, "R_SPARC_NONE",false, 0, 0x00000000, true),
- HOWTO (0, 0, 3, 0, false, 0, complain_overflow_dont, 0, "R_SPARC_NONE",false, 0, 0x00000000, true),
+ HOWTO (RELOC_8, 0, 1, 8, false, 0, complain_overflow_bitfield, 0, "8", false, 0, 0x000000ff, false),
+ HOWTO (RELOC_16, 0, 2, 16, false, 0, complain_overflow_bitfield, 0, "16", false, 0, 0x0000ffff, false),
+ HOWTO (RELOC_32, 0, 4, 32, false, 0, complain_overflow_bitfield, 0, "32", false, 0, 0xffffffff, false),
+ HOWTO (RELOC_DISP8, 0, 1, 8, true, 0, complain_overflow_signed, 0, "DISP8", false, 0, 0x000000ff, false),
+ HOWTO (RELOC_DISP16, 0, 2, 16, true, 0, complain_overflow_signed, 0, "DISP16", false, 0, 0x0000ffff, false),
+ HOWTO (RELOC_DISP32, 0, 4, 32, true, 0, complain_overflow_signed, 0, "DISP32", false, 0, 0xffffffff, false),
+ HOWTO (RELOC_WDISP30, 2, 4, 30, true, 0, complain_overflow_signed, 0, "WDISP30", false, 0, 0x3fffffff, false),
+ HOWTO (RELOC_WDISP22, 2, 4, 22, true, 0, complain_overflow_signed, 0, "WDISP22", false, 0, 0x003fffff, false),
+ HOWTO (RELOC_HI22, 10, 4, 22, false, 0, complain_overflow_bitfield, 0, "HI22", false, 0, 0x003fffff, false),
+ HOWTO (RELOC_22, 0, 4, 22, false, 0, complain_overflow_bitfield, 0, "22", false, 0, 0x003fffff, false),
+ HOWTO (RELOC_13, 0, 4, 13, false, 0, complain_overflow_bitfield, 0, "13", false, 0, 0x00001fff, false),
+ HOWTO (RELOC_LO10, 0, 4, 10, false, 0, complain_overflow_dont, 0, "LO10", false, 0, 0x000003ff, false),
+ HOWTO (RELOC_SFA_BASE,0, 4, 32, false, 0, complain_overflow_bitfield, 0, "SFA_BASE", false, 0, 0xffffffff, false),
+ HOWTO (RELOC_SFA_OFF13,0, 4, 32, false, 0, complain_overflow_bitfield, 0, "SFA_OFF13", false, 0, 0xffffffff, false),
+ HOWTO (RELOC_BASE10, 0, 4, 10, false, 0, complain_overflow_dont, 0, "BASE10", false, 0, 0x000003ff, false),
+ HOWTO (RELOC_BASE13, 0, 4, 13, false, 0, complain_overflow_signed, 0, "BASE13", false, 0, 0x00001fff, false),
+ HOWTO (RELOC_BASE22, 10, 4, 22, false, 0, complain_overflow_bitfield, 0, "BASE22", false, 0, 0x003fffff, false),
+ HOWTO (RELOC_PC10, 0, 4, 10, true, 0, complain_overflow_dont, 0, "PC10", false, 0, 0x000003ff, true),
+ HOWTO (RELOC_PC22, 10, 4, 22, true, 0, complain_overflow_signed, 0, "PC22", false, 0, 0x003fffff, true),
+ HOWTO (RELOC_JMP_TBL, 2, 4, 30, true, 0, complain_overflow_signed, 0, "JMP_TBL", false, 0, 0x3fffffff, false),
+ HOWTO (RELOC_SEGOFF16,0, 4, 0, false, 0, complain_overflow_bitfield, 0, "SEGOFF16", false, 0, 0x00000000, false),
+ HOWTO (RELOC_GLOB_DAT,0, 4, 0, false, 0, complain_overflow_bitfield, 0, "GLOB_DAT", false, 0, 0x00000000, false),
+ HOWTO (RELOC_JMP_SLOT,0, 4, 0, false, 0, complain_overflow_bitfield, 0, "JMP_SLOT", false, 0, 0x00000000, false),
+ HOWTO (RELOC_RELATIVE,0, 4, 0, false, 0, complain_overflow_bitfield, 0, "RELATIVE", false, 0, 0x00000000, false),
+ HOWTO (0, 0, 0, 0, false, 0, complain_overflow_dont, 0, "R_SPARC_NONE",false, 0, 0x00000000, true),
+ HOWTO (0, 0, 0, 0, false, 0, complain_overflow_dont, 0, "R_SPARC_NONE",false, 0, 0x00000000, true),
#define RELOC_SPARC_REV32 RELOC_WDISP19
- HOWTO (RELOC_SPARC_REV32, 0, 2, 32, false, 0, complain_overflow_dont, 0,"R_SPARC_REV32",false, 0, 0xffffffff, false),
+ HOWTO (RELOC_SPARC_REV32, 0, 4, 32, false, 0, complain_overflow_dont, 0,"R_SPARC_REV32",false, 0, 0xffffffff, false),
};
/* Convert standard reloc records to "arelent" format (incl byte swap). */
reloc_howto_type howto_table_std[] =
{
/* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone. */
-HOWTO ( 0, 0, 0, 8, false, 0, complain_overflow_bitfield,0,"8", true, 0x000000ff,0x000000ff, false),
-HOWTO ( 1, 0, 1, 16, false, 0, complain_overflow_bitfield,0,"16", true, 0x0000ffff,0x0000ffff, false),
-HOWTO ( 2, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"32", true, 0xffffffff,0xffffffff, false),
-HOWTO ( 3, 0, 4, 64, false, 0, complain_overflow_bitfield,0,"64", true, 0xdeaddead,0xdeaddead, false),
-HOWTO ( 4, 0, 0, 8, true, 0, complain_overflow_signed, 0,"DISP8", true, 0x000000ff,0x000000ff, false),
-HOWTO ( 5, 0, 1, 16, true, 0, complain_overflow_signed, 0,"DISP16", true, 0x0000ffff,0x0000ffff, false),
-HOWTO ( 6, 0, 2, 32, true, 0, complain_overflow_signed, 0,"DISP32", true, 0xffffffff,0xffffffff, false),
-HOWTO ( 7, 0, 4, 64, true, 0, complain_overflow_signed, 0,"DISP64", true, 0xfeedface,0xfeedface, false),
-HOWTO ( 8, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"GOT_REL", false, 0,0x00000000, false),
-HOWTO ( 9, 0, 1, 16, false, 0, complain_overflow_bitfield,0,"BASE16", false,0xffffffff,0xffffffff, false),
-HOWTO (10, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"BASE32", false,0xffffffff,0xffffffff, false),
+HOWTO ( 0, 0, 1, 8, false, 0, complain_overflow_bitfield,0,"8", true, 0x000000ff,0x000000ff, false),
+HOWTO ( 1, 0, 2, 16, false, 0, complain_overflow_bitfield,0,"16", true, 0x0000ffff,0x0000ffff, false),
+HOWTO ( 2, 0, 4, 32, false, 0, complain_overflow_bitfield,0,"32", true, 0xffffffff,0xffffffff, false),
+HOWTO ( 3, 0, 8, 64, false, 0, complain_overflow_bitfield,0,"64", true, 0xdeaddead,0xdeaddead, false),
+HOWTO ( 4, 0, 1, 8, true, 0, complain_overflow_signed, 0,"DISP8", true, 0x000000ff,0x000000ff, false),
+HOWTO ( 5, 0, 2, 16, true, 0, complain_overflow_signed, 0,"DISP16", true, 0x0000ffff,0x0000ffff, false),
+HOWTO ( 6, 0, 4, 32, true, 0, complain_overflow_signed, 0,"DISP32", true, 0xffffffff,0xffffffff, false),
+HOWTO ( 7, 0, 8, 64, true, 0, complain_overflow_signed, 0,"DISP64", true, 0xfeedface,0xfeedface, false),
+HOWTO ( 8, 0, 4, 0, false, 0, complain_overflow_bitfield,0,"GOT_REL", false, 0,0x00000000, false),
+HOWTO ( 9, 0, 2, 16, false, 0, complain_overflow_bitfield,0,"BASE16", false,0xffffffff,0xffffffff, false),
+HOWTO (10, 0, 4, 32, false, 0, complain_overflow_bitfield,0,"BASE32", false,0xffffffff,0xffffffff, false),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
- HOWTO (16, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"JMP_TABLE", false, 0,0x00000000, false),
+ HOWTO (16, 0, 4, 0, false, 0, complain_overflow_bitfield,0,"JMP_TABLE", false, 0,0x00000000, false),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
- HOWTO (32, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"RELATIVE", false, 0,0x00000000, false),
+ HOWTO (32, 0, 4, 0, false, 0, complain_overflow_bitfield,0,"RELATIVE", false, 0,0x00000000, false),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
EMPTY_HOWTO (-1),
- HOWTO (40, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"BASEREL", false, 0,0x00000000, false),
+ HOWTO (40, 0, 4, 0, false, 0, complain_overflow_bitfield,0,"BASEREL", false, 0,0x00000000, false),
};
#define TABLE_SIZE(TABLE) (sizeof (TABLE) / sizeof (TABLE[0]))
const char *name;
};
-#define HOWTO_RSIZE(sz) (sz < 0 ? -sz : sz)
+#define HOWTO_RSIZE(sz) (sz == 1 || sz == -1 ? 0 : sz == 2 || sz == -2 ? 1 : sz == 4 || sz == -4 ? 2 : sz == 0 ? 3 : sz == 8 || sz == -8 ? 4 : sz == 3 || sz == -3 ? 5 : 0x777)
#define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name, \
inplace, src_mask, dst_mask, pcrel_off) \
{ (unsigned) type, HOWTO_RSIZE (size), bits, right, left, ovf, \
size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name }
#define EMPTY_HOWTO(C) \
- HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \
+ HOWTO ((C), 0, 1, 0, false, 0, complain_overflow_dont, NULL, \
NULL, false, 0, 0, false)
unsigned int bfd_get_reloc_size (reloc_howto_type *);
of the gp register are loaded. */
HOWTO (ALPHA_R_IGNORE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 32 bit reference to a symbol. */
HOWTO (ALPHA_R_REFLONG, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 64 bit reference to a symbol. */
HOWTO (ALPHA_R_REFQUAD, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
added in. */
HOWTO (ALPHA_R_GPREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
reloc always seems to be against the .lita section. */
HOWTO (ALPHA_R_LITERAL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
relocation. */
HOWTO (ALPHA_R_LITUSE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
address. */
HOWTO (ALPHA_R_GPDISP, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
relative offset in the instruction. */
HOWTO (ALPHA_R_BRADDR, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A hint for a jump to a register. */
HOWTO (ALPHA_R_HINT, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
14, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 16 bit PC relative offset. */
HOWTO (ALPHA_R_SREL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32 bit PC relative offset. */
HOWTO (ALPHA_R_SREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 64 bit PC relative offset. */
HOWTO (ALPHA_R_SREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Push a value on the reloc evaluation stack. */
HOWTO (ALPHA_R_OP_PUSH, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
a bitfield of size r_size starting at bit position r_offset. */
HOWTO (ALPHA_R_OP_STORE, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
relocation stack. */
HOWTO (ALPHA_R_OP_PSUB, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
given value. */
HOWTO (ALPHA_R_OP_PRSHIFT, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Adjust the GP value for a new range in the object file. */
HOWTO (ALPHA_R_GPVALUE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#ifdef ARM_WINCE
HOWTO (ARM_26D,
2,
- 2,
+ 4,
24,
true,
0,
PCRELOFFSET),
HOWTO (ARM_32,
0,
- 2,
+ 4,
32,
false,
0,
PCRELOFFSET),
HOWTO (ARM_RVA32,
0,
- 2,
+ 4,
32,
false,
0,
PCRELOFFSET),
HOWTO (ARM_26,
2,
- 2,
+ 4,
24,
true,
0,
PCRELOFFSET),
HOWTO (ARM_THUMB12,
1,
- 1,
+ 2,
11,
true,
0,
EMPTY_HOWTO (-1),
HOWTO (ARM_SECTION,
0,
- 1,
+ 2,
16,
false,
0,
PCRELOFFSET),
HOWTO (ARM_SECREL,
0,
- 2,
+ 4,
32,
false,
0,
#else /* not ARM_WINCE */
HOWTO (ARM_8,
0,
- 0,
+ 1,
8,
false,
0,
PCRELOFFSET),
HOWTO (ARM_16,
0,
- 1,
+ 2,
16,
false,
0,
PCRELOFFSET),
HOWTO (ARM_32,
0,
- 2,
+ 4,
32,
false,
0,
PCRELOFFSET),
HOWTO (ARM_26,
2,
- 2,
+ 4,
24,
true,
0,
PCRELOFFSET),
HOWTO (ARM_DISP8,
0,
- 0,
+ 1,
8,
true,
0,
true),
HOWTO (ARM_DISP16,
0,
- 1,
+ 2,
16,
true,
0,
true),
HOWTO (ARM_DISP32,
0,
- 2,
+ 4,
32,
true,
0,
true),
HOWTO (ARM_26D,
2,
- 2,
+ 4,
24,
false,
0,
EMPTY_HOWTO (-1),
HOWTO (ARM_NEG16,
0,
- -1,
+ -2,
16,
false,
0,
false),
HOWTO (ARM_NEG32,
0,
- -2,
+ -4,
32,
false,
0,
false),
HOWTO (ARM_RVA32,
0,
- 2,
+ 4,
32,
false,
0,
PCRELOFFSET),
HOWTO (ARM_THUMB9,
1,
- 1,
+ 2,
8,
true,
0,
PCRELOFFSET),
HOWTO (ARM_THUMB12,
1,
- 1,
+ 2,
11,
true,
0,
PCRELOFFSET),
HOWTO (ARM_THUMB23,
1,
- 2,
+ 4,
22,
true,
0,
static reloc_howto_type fake_arm26_reloc =
HOWTO (ARM_26,
2,
- 2,
+ 4,
24,
true,
0,
EMPTY_HOWTO (5),
HOWTO (R_DIR32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* PE IMAGE_REL_I386_DIR32NB relocation (7). */
HOWTO (R_IMAGEBASE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit word section relocation (012). */
HOWTO (R_SECTION, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit longword section relative relocation (013). */
HOWTO (R_SECREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Byte relocation (017). */
HOWTO (R_RELBYTE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit word relocation (020). */
HOWTO (R_RELWORD, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit longword relocation (021). */
HOWTO (R_RELLONG, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Byte PC relative relocation (022). */
HOWTO (R_PCRBYTE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 16-bit word PC relative relocation (023). */
HOWTO (R_PCRWORD, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32-bit longword PC relative relocation (024). */
HOWTO (R_PCRLONG, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Unused: */
HOWTO (IMAGE_REL_MCORE_ABSOLUTE,/* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (IMAGE_REL_MCORE_ADDR32,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
Should not appear in object files. */
HOWTO (IMAGE_REL_MCORE_PCREL_IMM8BY4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
Only useful pieces at the relocated address are the opcode (5 bits) */
HOWTO (IMAGE_REL_MCORE_PCREL_IMM11BY2,/* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 4 bits + 1 zero bit; 'loopt' instruction only; unsupported. */
HOWTO (IMAGE_REL_MCORE_PCREL_IMM4BY2, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
4, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32-bit pc-relative. Eventually this will help support PIC code. */
HOWTO (IMAGE_REL_MCORE_PCREL_32,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
is a relocation that we are allowed to safely ignore. */
HOWTO (IMAGE_REL_MCORE_PCREL_JSR_IMM11BY2,/* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (IMAGE_REL_MCORE_RVA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
bfd_perform_relocation to do nothing. */
HOWTO (MIPS_R_IGNORE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit reference to a symbol, normally from a data section. */
HOWTO (MIPS_R_REFHALF, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit reference to a symbol, normally from a data section. */
HOWTO (MIPS_R_REFWORD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 26 bit absolute jump address. */
HOWTO (MIPS_R_JMPADDR, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
mips_refhi_reloc. */
HOWTO (MIPS_R_REFHI, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The low 16 bits of a symbol value. */
HOWTO (MIPS_R_REFLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
function mips_gprel_reloc. */
HOWTO (MIPS_R_GPREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
Handled by the function mips_gprel_reloc. */
HOWTO (MIPS_R_LITERAL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
be removed. (It used to be used for embedded-PIC support.) */
HOWTO (MIPS_R_PCREL16, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 0x00: Standard 32 bit relocation. */
HOWTO (R_POS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x01: 32 bit relocation, but store negative value. */
HOWTO (R_NEG, /* type */
0, /* rightshift */
- -2, /* size (0 = byte, 1 = short, 2 = long) */
+ -4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x02: 32 bit PC relative relocation. */
HOWTO (R_REL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 0x03: 16 bit TOC relative relocation. */
HOWTO (R_TOC, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x04: Same as R_TOC */
HOWTO (R_TRL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x05: External TOC relative symbol. */
HOWTO (R_GL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x06: Local TOC relative symbol. */
HOWTO (R_TCL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x08: Same as R_RBA. */
HOWTO (R_BA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x0a: Same as R_RBR. */
HOWTO (R_BR, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 0x0c: Same as R_POS. */
HOWTO (R_RL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x0d: Same as R_POS. */
HOWTO (R_RLA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x0f: Non-relocating reference. Bitsize is 1 so that r_rsize is 0. */
HOWTO (R_REF, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
1, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x13: Same as R_TOC. */
HOWTO (R_TRLA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x14: Modifiable relative branch. */
HOWTO (R_RRTBI, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x15: Modifiable absolute branch. */
HOWTO (R_RRTBA, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x16: Modifiable call absolute indirect. */
HOWTO (R_CAI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x17: Modifiable call relative. */
HOWTO (R_CREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x18: Modifiable branch absolute. */
HOWTO (R_RBA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x19: Modifiable branch absolute. */
HOWTO (R_RBAC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1a: Modifiable branch relative. */
HOWTO (R_RBR, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1b: Modifiable branch absolute. */
HOWTO (R_RBRC, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1c: 16 bit Non modifiable absolute branch. */
HOWTO (R_BA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1d: Modifiable branch relative. */
HOWTO (R_RBR, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 0x1e: Modifiable branch relative. */
HOWTO (R_RBA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x20: General-dynamic TLS relocation. */
HOWTO (R_TLS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x21: Initial-exec TLS relocation. */
HOWTO (R_TLS_IE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x22: Local-dynamic TLS relocation. */
HOWTO (R_TLS_LD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x23: Local-exec TLS relocation. */
HOWTO (R_TLS_LE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x24: TLS relocation. */
HOWTO (R_TLSM, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x25: TLS module relocation. */
HOWTO (R_TLSML, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x30: High-order 16 bit TOC relative relocation. */
HOWTO (R_TOCU, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x31: Low-order 16 bit TOC relative relocation. */
HOWTO (R_TOCL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type xcoff_dynamic_reloc =
HOWTO (0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Windows CE */
HOWTO (R_SH_IMM32CE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_PCDISP8BY2, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_PCDISP, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
12, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_IMM32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#ifdef COFF_WITH_PE
HOWTO (R_SH_IMAGEBASE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_PCRELIMM8BY2, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_PCRELIMM8BY4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_IMM16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_SWITCH16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_SWITCH32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_USES, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_COUNT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_ALIGN, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_CODE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DATA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_LABEL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_SWITCH8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
reloc_howto_type tic30_coff_howto_table[] =
{
- HOWTO (R_TIC30_ABS16, 2, 1, 16, false, 0, 0, NULL,
+ HOWTO (R_TIC30_ABS16, 2, 2, 16, false, 0, 0, NULL,
"16", false, 0x0000FFFF, 0x0000FFFF, false),
- HOWTO (R_TIC30_ABS24, 2, 2, 24, false, 8, complain_overflow_bitfield, NULL,
+ HOWTO (R_TIC30_ABS24, 2, 4, 24, false, 8, complain_overflow_bitfield, NULL,
"24", false, 0xFFFFFF00, 0xFFFFFF00, false),
- HOWTO (R_TIC30_LDP, 18, 0, 24, false, 0, complain_overflow_bitfield, NULL,
+ HOWTO (R_TIC30_LDP, 18, 1, 24, false, 0, complain_overflow_bitfield, NULL,
"LDP", false, 0x00FF0000, 0x000000FF, false),
- HOWTO (R_TIC30_ABS32, 2, 2, 32, false, 0, complain_overflow_bitfield, NULL,
+ HOWTO (R_TIC30_ABS32, 2, 4, 32, false, 0, complain_overflow_bitfield, NULL,
"32", false, 0xFFFFFFFF, 0xFFFFFFFF, false),
- HOWTO (R_TIC30_PC16, 2, 1, 16, true, 0, complain_overflow_signed, NULL,
+ HOWTO (R_TIC30_PC16, 2, 2, 16, true, 0, complain_overflow_signed, NULL,
"PCREL", false, 0x0000FFFF, 0x0000FFFF, false),
EMPTY_HOWTO (-1)
};
reloc_howto_type tic4x_howto_table[] =
{
- HOWTO(R_RELWORD, 0, 2, 16, false, 0, complain_overflow_signed, tic4x_relocation, "RELWORD", true, 0x0000ffff, 0x0000ffff, false),
- HOWTO(R_REL24, 0, 2, 24, false, 0, complain_overflow_bitfield, tic4x_relocation, "REL24", true, 0x00ffffff, 0x00ffffff, false),
- HOWTO(R_RELLONG, 0, 2, 32, false, 0, complain_overflow_dont, tic4x_relocation, "RELLONG", true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_PCRWORD, 0, 2, 16, true, 0, complain_overflow_signed, tic4x_relocation, "PCRWORD", true, 0x0000ffff, 0x0000ffff, false),
- HOWTO(R_PCR24, 0, 2, 24, true, 0, complain_overflow_signed, tic4x_relocation, "PCR24", true, 0x00ffffff, 0x00ffffff, false),
- HOWTO(R_PARTLS16, 0, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTLS16", true, 0x0000ffff, 0x0000ffff, false),
- HOWTO(R_PARTMS8, 16, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTMS8", true, 0x0000ffff, 0x0000ffff, false),
- HOWTO(R_RELWORD, 0, 2, 16, false, 0, complain_overflow_signed, tic4x_relocation, "ARELWORD", true, 0x0000ffff, 0x0000ffff, false),
- HOWTO(R_REL24, 0, 2, 24, false, 0, complain_overflow_signed, tic4x_relocation, "AREL24", true, 0x00ffffff, 0x00ffffff, false),
- HOWTO(R_RELLONG, 0, 2, 32, false, 0, complain_overflow_signed, tic4x_relocation, "ARELLONG", true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_PCRWORD, 0, 2, 16, true, 0, complain_overflow_signed, tic4x_relocation, "APCRWORD", true, 0x0000ffff, 0x0000ffff, false),
- HOWTO(R_PCR24, 0, 2, 24, true, 0, complain_overflow_signed, tic4x_relocation, "APCR24", true, 0x00ffffff, 0x00ffffff, false),
- HOWTO(R_PARTLS16, 0, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTLS16", true, 0x0000ffff, 0x0000ffff, false),
- HOWTO(R_PARTMS8, 16, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTMS8", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_RELWORD, 0, 4, 16, false, 0, complain_overflow_signed, tic4x_relocation, "RELWORD", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_REL24, 0, 4, 24, false, 0, complain_overflow_bitfield, tic4x_relocation, "REL24", true, 0x00ffffff, 0x00ffffff, false),
+ HOWTO(R_RELLONG, 0, 4, 32, false, 0, complain_overflow_dont, tic4x_relocation, "RELLONG", true, 0xffffffff, 0xffffffff, false),
+ HOWTO(R_PCRWORD, 0, 4, 16, true, 0, complain_overflow_signed, tic4x_relocation, "PCRWORD", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_PCR24, 0, 4, 24, true, 0, complain_overflow_signed, tic4x_relocation, "PCR24", true, 0x00ffffff, 0x00ffffff, false),
+ HOWTO(R_PARTLS16, 0, 4, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTLS16", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_PARTMS8, 16, 4, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTMS8", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_RELWORD, 0, 4, 16, false, 0, complain_overflow_signed, tic4x_relocation, "ARELWORD", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_REL24, 0, 4, 24, false, 0, complain_overflow_signed, tic4x_relocation, "AREL24", true, 0x00ffffff, 0x00ffffff, false),
+ HOWTO(R_RELLONG, 0, 4, 32, false, 0, complain_overflow_signed, tic4x_relocation, "ARELLONG", true, 0xffffffff, 0xffffffff, false),
+ HOWTO(R_PCRWORD, 0, 4, 16, true, 0, complain_overflow_signed, tic4x_relocation, "APCRWORD", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_PCR24, 0, 4, 24, true, 0, complain_overflow_signed, tic4x_relocation, "APCR24", true, 0x00ffffff, 0x00ffffff, false),
+ HOWTO(R_PARTLS16, 0, 4, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTLS16", true, 0x0000ffff, 0x0000ffff, false),
+ HOWTO(R_PARTMS8, 16, 4, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTMS8", true, 0x0000ffff, 0x0000ffff, false),
};
#define HOWTO_SIZE (sizeof(tic4x_howto_table) / sizeof(tic4x_howto_table[0]))
reloc_howto_type tic54x_howto_table[] =
{
- /* type,rightshift,size (0=byte, 1=short, 2=long),
+ /* type,rightshift,size,
bit size, pc_relative, bitpos, dont complain_on_overflow,
special_function, name, partial_inplace, src_mask, dst_mask, pcrel_offset. */
/* NORMAL BANK */
/* 16-bit direct reference to symbol's address. */
- HOWTO (R_RELWORD,0,1,16,false,0,complain_overflow_dont,
+ HOWTO (R_RELWORD,0,2,16,false,0,complain_overflow_dont,
tic54x_relocation,"REL16",false,0xFFFF,0xFFFF,false),
/* 7 LSBs of an address */
- HOWTO (R_PARTLS7,0,1,7,false,0,complain_overflow_dont,
+ HOWTO (R_PARTLS7,0,2,7,false,0,complain_overflow_dont,
tic54x_relocation,"LS7",false,0x007F,0x007F,false),
/* 9 MSBs of an address */
/* TI assembler doesn't shift its encoding, and is thus incompatible */
- HOWTO (R_PARTMS9,7,1,9,false,0,complain_overflow_dont,
+ HOWTO (R_PARTMS9,7,2,9,false,0,complain_overflow_dont,
tic54x_relocation,"MS9",false,0x01FF,0x01FF,false),
/* 23-bit relocation */
- HOWTO (R_EXTWORD,0,2,23,false,0,complain_overflow_dont,
+ HOWTO (R_EXTWORD,0,4,23,false,0,complain_overflow_dont,
tic54x_relocation,"RELEXT",false,0x7FFFFF,0x7FFFFF,false),
/* 16 bits of 23-bit extended address */
- HOWTO (R_EXTWORD16,0,1,16,false,0,complain_overflow_dont,
+ HOWTO (R_EXTWORD16,0,2,16,false,0,complain_overflow_dont,
tic54x_relocation,"RELEXT16",false,0x7FFFFF,0x7FFFFF,false),
/* upper 7 bits of 23-bit extended address */
- HOWTO (R_EXTWORDMS7,16,1,7,false,0,complain_overflow_dont,
+ HOWTO (R_EXTWORDMS7,16,2,7,false,0,complain_overflow_dont,
tic54x_relocation,"RELEXTMS7",false,0x7F,0x7F,false),
/* ABSOLUTE BANK */
/* 16-bit direct reference to symbol's address, absolute */
- HOWTO (R_RELWORD,0,1,16,false,0,complain_overflow_dont,
+ HOWTO (R_RELWORD,0,2,16,false,0,complain_overflow_dont,
tic54x_relocation,"AREL16",false,0xFFFF,0xFFFF,false),
/* 7 LSBs of an address, absolute */
- HOWTO (R_PARTLS7,0,1,7,false,0,complain_overflow_dont,
+ HOWTO (R_PARTLS7,0,2,7,false,0,complain_overflow_dont,
tic54x_relocation,"ALS7",false,0x007F,0x007F,false),
/* 9 MSBs of an address, absolute */
/* TI assembler doesn't shift its encoding, and is thus incompatible */
- HOWTO (R_PARTMS9,7,1,9,false,0,complain_overflow_dont,
+ HOWTO (R_PARTMS9,7,2,9,false,0,complain_overflow_dont,
tic54x_relocation,"AMS9",false,0x01FF,0x01FF,false),
/* 23-bit direct reference, absolute */
- HOWTO (R_EXTWORD,0,2,23,false,0,complain_overflow_dont,
+ HOWTO (R_EXTWORD,0,4,23,false,0,complain_overflow_dont,
tic54x_relocation,"ARELEXT",false,0x7FFFFF,0x7FFFFF,false),
/* 16 bits of 23-bit extended address, absolute */
- HOWTO (R_EXTWORD16,0,1,16,false,0,complain_overflow_dont,
+ HOWTO (R_EXTWORD16,0,2,16,false,0,complain_overflow_dont,
tic54x_relocation,"ARELEXT16",false,0x7FFFFF,0x7FFFFF,false),
/* upper 7 bits of 23-bit extended address, absolute */
- HOWTO (R_EXTWORDMS7,16,1,7,false,0,complain_overflow_dont,
+ HOWTO (R_EXTWORDMS7,16,2,7,false,0,complain_overflow_dont,
tic54x_relocation,"ARELEXTMS7",false,0x7F,0x7F,false),
/* 32-bit relocation exclusively for stabs */
- HOWTO (R_RELLONG,0,2,32,false,0,complain_overflow_dont,
+ HOWTO (R_RELLONG,0,4,32,false,0,complain_overflow_dont,
tic54x_relocation,"STAB",false,0xFFFFFFFF,0xFFFFFFFF,false),
};
EMPTY_HOWTO (0),
HOWTO (R_AMD64_DIR64, /* type 1*/
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long, 4 = long long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_AMD64_DIR32, /* type 2 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* PE IMAGE_REL_AMD64_ADDR32NB relocation (3). */
HOWTO (R_AMD64_IMAGEBASE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit longword PC relative relocation (4). */
HOWTO (R_AMD64_PCRLONG, /* type 4 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_AMD64_PCRLONG_1, /* type 5 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
PCRELOFFSET), /* pcrel_offset */
HOWTO (R_AMD64_PCRLONG_2, /* type 6 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
PCRELOFFSET), /* pcrel_offset */
HOWTO (R_AMD64_PCRLONG_3, /* type 7 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
PCRELOFFSET), /* pcrel_offset */
HOWTO (R_AMD64_PCRLONG_4, /* type 8 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
PCRELOFFSET), /* pcrel_offset */
HOWTO (R_AMD64_PCRLONG_5, /* type 9 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 16-bit word section relocation (10). */
HOWTO (R_AMD64_SECTION, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit longword section relative relocation (11). */
HOWTO (R_AMD64_SECREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#ifndef DONT_EXTEND_AMD64
HOWTO (R_AMD64_PCRQUAD,
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Byte relocation (15). */
HOWTO (R_RELBYTE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit word relocation (16). */
HOWTO (R_RELWORD, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit longword relocation (17). */
HOWTO (R_RELLONG, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Byte PC relative relocation (18). */
HOWTO (R_PCRBYTE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 16-bit word PC relative relocation (19). */
HOWTO (R_PCRWORD, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32-bit longword PC relative relocation (20). */
HOWTO (R_PCRLONG, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_32,
R_IMM32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_24,
R_IMM24, /* type */
0, /* rightshift */
- 5, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_16,
R_IMM16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_8,
R_IMM8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_8_PCREL,
R_JR, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_DISP8,
R_OFF8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE0,
R_BYTE0, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE1,
R_BYTE1, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE2,
R_BYTE2, /* type */
16, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE3,
R_BYTE3, /* type */
24, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_WORD0,
R_WORD0, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_WORD1,
R_WORD1, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_16_BE,
R_IMM16BE, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
static reloc_howto_type r_imm32 =
-HOWTO (R_IMM32, 0, 2, 32, false, 0,
+HOWTO (R_IMM32, 0, 4, 32, false, 0,
complain_overflow_bitfield, 0, "r_imm32", true, 0xffffffff,
0xffffffff, false);
static reloc_howto_type r_imm4l =
-HOWTO (R_IMM4L, 0, 0, 4, false, 0,
+HOWTO (R_IMM4L, 0, 1, 4, false, 0,
complain_overflow_bitfield, 0, "r_imm4l", true, 0xf, 0xf, false);
static reloc_howto_type r_da =
-HOWTO (R_IMM16, 0, 1, 16, false, 0,
+HOWTO (R_IMM16, 0, 2, 16, false, 0,
complain_overflow_bitfield, 0, "r_da", true, 0x0000ffff, 0x0000ffff,
false);
static reloc_howto_type r_imm8 =
-HOWTO (R_IMM8, 0, 0, 8, false, 0,
+HOWTO (R_IMM8, 0, 1, 8, false, 0,
complain_overflow_bitfield, 0, "r_imm8", true, 0x000000ff, 0x000000ff,
false);
static reloc_howto_type r_rel16 =
-HOWTO (R_REL16, 0, 1, 16, false, 0,
+HOWTO (R_REL16, 0, 2, 16, false, 0,
complain_overflow_bitfield, 0, "r_rel16", true, 0x0000ffff, 0x0000ffff,
true);
static reloc_howto_type r_jr =
-HOWTO (R_JR, 1, 0, 8, true, 0, complain_overflow_signed, 0,
+HOWTO (R_JR, 1, 1, 8, true, 0, complain_overflow_signed, 0,
"r_jr", true, 0xff, 0xff, true);
static reloc_howto_type r_disp7 =
-HOWTO (R_DISP7, 0, 0, 7, true, 0, complain_overflow_bitfield, 0,
+HOWTO (R_DISP7, 0, 1, 7, true, 0, complain_overflow_bitfield, 0,
"r_disp7", true, 0x7f, 0x7f, true);
static reloc_howto_type r_callr =
-HOWTO (R_CALLR, 1, 1, 12, true, 0, complain_overflow_signed, 0,
+HOWTO (R_CALLR, 1, 2, 12, true, 0, complain_overflow_signed, 0,
"r_callr", true, 0xfff, 0xfff, true);
#define BADMAG(x) Z8KBADMAG(x)
/* 0x00: Standard 64 bit relocation. */
HOWTO (R_POS, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x01: 64 bit relocation, but store negative value. */
HOWTO (R_NEG, /* type */
0, /* rightshift */
- -4, /* size (0 = byte, 1 = short, 2 = long) */
+ -8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x02: 64 bit PC relative relocation. */
HOWTO (R_REL, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 0x03: 16 bit TOC relative relocation. */
HOWTO (R_TOC, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x04: Same as R_TOC. */
HOWTO (R_TRL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x05: External TOC relative symbol. */
HOWTO (R_GL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x06: Local TOC relative symbol. */
HOWTO (R_TCL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x08: Same as R_RBA. */
HOWTO (R_BA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x0a: Same as R_RBR. */
HOWTO (R_BR, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 0x0c: Same as R_POS. */
HOWTO (R_RL, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x0d: Same as R_POS. */
HOWTO (R_RLA, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x0f: Non-relocating reference. Bitsize is 1 so that r_rsize is 0. */
HOWTO (R_REF, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
1, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x13: Same as R_TOC */
HOWTO (R_TRLA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x14: Modifiable relative branch. */
HOWTO (R_RRTBI, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x15: Modifiable absolute branch. */
HOWTO (R_RRTBA, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x16: Modifiable call absolute indirect. */
HOWTO (R_CAI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x17: Modifiable call relative. */
HOWTO (R_CREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x18: Modifiable branch absolute. */
HOWTO (R_RBA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x19: Modifiable branch absolute. */
HOWTO (R_RBAC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1a: Modifiable branch relative. */
HOWTO (R_RBR, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1b: Modifiable branch absolute. */
HOWTO (R_RBRC, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1c: Standard 32 bit relocation. */
HOWTO (R_POS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1d: 16 bit Non modifiable absolute branch. */
HOWTO (R_BA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x1e: Modifiable branch relative. */
HOWTO (R_RBR, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 0x1f: Modifiable branch absolute. */
HOWTO (R_RBA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x20: General-dynamic TLS relocation. */
HOWTO (R_TLS, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x21: Initial-exec TLS relocation. */
HOWTO (R_TLS_IE, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x22: Local-dynamic TLS relocation. */
HOWTO (R_TLS_LD, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x23: Local-exec TLS relocation. */
HOWTO (R_TLS_LE, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x24: TLS relocation. */
HOWTO (R_TLSM, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x25: TLS module relocation. */
HOWTO (R_TLSML, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x26: 32 bit relocation, but store negative value. */
HOWTO (R_NEG, /* type */
0, /* rightshift */
- -2, /* size (0 = byte, 1 = short, 2 = long) */
+ -4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TOCU, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0x31: Low-order 16 bit TOC relative relocation. */
HOWTO (R_TOCL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type xcoff64_dynamic_reloc =
HOWTO (0, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The values in DIR32 are to placate the check in
_bfd_stab_section_find_nearest_line. */
- HOW (R_PARISC_NONE, 3, 0, false, dont, 0),
- HOW (R_PARISC_DIR32, 2, 32, false, bitfield, 0xffffffff),
- HOW (R_PARISC_DIR21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_DIR17R, 2, 17, false, bitfield, 0),
- HOW (R_PARISC_DIR17F, 2, 17, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DIR14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DIR14F, 2, 14, false, bitfield, 0),
+ HOW (R_PARISC_NONE, 0, 0, false, dont, 0),
+ HOW (R_PARISC_DIR32, 4, 32, false, bitfield, 0xffffffff),
+ HOW (R_PARISC_DIR21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_DIR17R, 4, 17, false, bitfield, 0),
+ HOW (R_PARISC_DIR17F, 4, 17, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DIR14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DIR14F, 4, 14, false, bitfield, 0),
/* 8 */
- HOW (R_PARISC_PCREL12F, 2, 12, true, bitfield, 0),
- HOW (R_PARISC_PCREL32, 2, 32, true, bitfield, 0),
- HOW (R_PARISC_PCREL21L, 2, 21, true, bitfield, 0),
- HOW (R_PARISC_PCREL17R, 2, 17, true, bitfield, 0),
- HOW (R_PARISC_PCREL17F, 2, 17, true, bitfield, 0),
- HOW (R_PARISC_PCREL17C, 2, 17, true, bitfield, 0),
- HOW (R_PARISC_PCREL14R, 2, 14, true, bitfield, 0),
- HOW (R_PARISC_PCREL14F, 2, 14, true, bitfield, 0),
+ HOW (R_PARISC_PCREL12F, 4, 12, true, bitfield, 0),
+ HOW (R_PARISC_PCREL32, 4, 32, true, bitfield, 0),
+ HOW (R_PARISC_PCREL21L, 4, 21, true, bitfield, 0),
+ HOW (R_PARISC_PCREL17R, 4, 17, true, bitfield, 0),
+ HOW (R_PARISC_PCREL17F, 4, 17, true, bitfield, 0),
+ HOW (R_PARISC_PCREL17C, 4, 17, true, bitfield, 0),
+ HOW (R_PARISC_PCREL14R, 4, 14, true, bitfield, 0),
+ HOW (R_PARISC_PCREL14F, 4, 14, true, bitfield, 0),
/* 16 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DPREL21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_DPREL14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DPREL14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DPREL14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DPREL14F, 2, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DPREL21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_DPREL14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DPREL14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DPREL14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DPREL14F, 4, 14, false, bitfield, 0),
/* 24 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DLTREL21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DLTREL14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DLTREL14F, 2, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DLTREL21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DLTREL14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DLTREL14F, 4, 14, false, bitfield, 0),
/* 32 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DLTIND21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DLTIND14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DLTIND14F, 2, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DLTIND21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DLTIND14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DLTIND14F, 4, 14, false, bitfield, 0),
/* 40 */
- HOW (R_PARISC_SETBASE, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_SECREL32, 2, 32, false, bitfield, 0xffffffff),
- HOW (R_PARISC_BASEREL21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_BASEREL17R, 2, 17, false, bitfield, 0),
- HOW (R_PARISC_BASEREL17F, 2, 17, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_BASEREL14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_BASEREL14F, 2, 14, false, bitfield, 0),
+ HOW (R_PARISC_SETBASE, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_SECREL32, 4, 32, false, bitfield, 0xffffffff),
+ HOW (R_PARISC_BASEREL21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_BASEREL17R, 4, 17, false, bitfield, 0),
+ HOW (R_PARISC_BASEREL17F, 4, 17, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_BASEREL14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_BASEREL14F, 4, 14, false, bitfield, 0),
/* 48 */
- HOW (R_PARISC_SEGBASE, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_SEGREL32, 2, 32, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF14F, 2, 14, false, bitfield, 0),
+ HOW (R_PARISC_SEGBASE, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_SEGREL32, 4, 32, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF14F, 4, 14, false, bitfield, 0),
/* 56 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR32, 2, 32, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR32, 4, 32, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 64 */
- HOW (R_PARISC_FPTR64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_PLABEL32, 2, 32, false, bitfield, 0),
- HOW (R_PARISC_PLABEL21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_PLABEL14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_FPTR64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_PLABEL32, 4, 32, false, bitfield, 0),
+ HOW (R_PARISC_PLABEL21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_PLABEL14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 72 */
- HOW (R_PARISC_PCREL64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_PCREL22C, 2, 22, false, bitfield, 0),
- HOW (R_PARISC_PCREL22F, 2, 22, false, bitfield, 0),
- HOW (R_PARISC_PCREL14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_PCREL14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_PCREL16F, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_PCREL16WF, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_PCREL16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_PCREL64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_PCREL22C, 4, 22, false, bitfield, 0),
+ HOW (R_PARISC_PCREL22F, 4, 22, false, bitfield, 0),
+ HOW (R_PARISC_PCREL14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_PCREL14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_PCREL16F, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_PCREL16WF, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_PCREL16DF, 4, 16, false, bitfield, 0),
/* 80 */
- HOW (R_PARISC_DIR64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DIR14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DIR14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DIR16F, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_DIR16WF, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_DIR16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_DIR64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DIR14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DIR14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DIR16F, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_DIR16WF, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_DIR16DF, 4, 16, false, bitfield, 0),
/* 88 */
- HOW (R_PARISC_GPREL64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DLTREL14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DLTREL14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_GPREL16F, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_GPREL16WF, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_GPREL16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_GPREL64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DLTREL14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DLTREL14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_GPREL16F, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_GPREL16WF, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_GPREL16DF, 4, 16, false, bitfield, 0),
/* 96 */
- HOW (R_PARISC_LTOFF64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_DLTIND14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_DLTIND14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_LTOFF16F, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_LTOFF16WF, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_LTOFF16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_DLTIND14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_DLTIND14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF16F, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF16WF, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF16DF, 4, 16, false, bitfield, 0),
/* 104 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_BASEREL14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_BASEREL14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_BASEREL14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_BASEREL14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 112 */
- HOW (R_PARISC_SEGREL64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF16F, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF16WF, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_PLTOFF16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_SEGREL64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF16F, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF16WF, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_PLTOFF16DF, 4, 16, false, bitfield, 0),
/* 120 */
- HOW (R_PARISC_LTOFF_FPTR64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR16F, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR16WF, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_FPTR16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR16F, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR16WF, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_FPTR16DF, 4, 16, false, bitfield, 0),
/* 128 */
- HOW (R_PARISC_COPY, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_IPLT, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_EPLT, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_COPY, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_IPLT, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_EPLT, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 136 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 144 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
/* 152 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_TPREL32, 2, 32, false, dont, 0),
- HOW (R_PARISC_TPREL21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_TPREL14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_TPREL32, 4, 32, false, dont, 0),
+ HOW (R_PARISC_TPREL21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_TPREL14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
/* 160 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_LTOFF_TP21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_TP14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_TP14F, 2, 14, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_LTOFF_TP21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_TP14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_TP14F, 4, 14, false, bitfield, 0),
/* 168 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 176 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 184 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
/* 192 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 200 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 208 */
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, dont, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, dont, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
/* 216 */
- HOW (R_PARISC_TPREL64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_TPREL14WR, 2, 14, false, dont, 0),
- HOW (R_PARISC_TPREL14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_TPREL16F, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_TPREL16WF, 2, 16, false, dont, 0),
- HOW (R_PARISC_TPREL16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_TPREL64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_TPREL14WR, 4, 14, false, dont, 0),
+ HOW (R_PARISC_TPREL14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_TPREL16F, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_TPREL16WF, 4, 16, false, dont, 0),
+ HOW (R_PARISC_TPREL16DF, 4, 16, false, bitfield, 0),
/* 224 */
- HOW (R_PARISC_LTOFF_TP64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_UNIMPLEMENTED, 0, 0, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_TP14WR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_TP14DR, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_TP16F, 2, 16, false, dont, 0),
- HOW (R_PARISC_LTOFF_TP16WF, 2, 16, false, bitfield, 0),
- HOW (R_PARISC_LTOFF_TP16DF, 2, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_TP64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_UNIMPLEMENTED, 1, 0, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_TP14WR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_TP14DR, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_TP16F, 4, 16, false, dont, 0),
+ HOW (R_PARISC_LTOFF_TP16WF, 4, 16, false, bitfield, 0),
+ HOW (R_PARISC_LTOFF_TP16DF, 4, 16, false, bitfield, 0),
/* 232 */
- HOW (R_PARISC_GNU_VTENTRY, 0, 0, false, dont, 0),
- HOW (R_PARISC_GNU_VTINHERIT, 0, 0, false, dont, 0),
- HOW (R_PARISC_TLS_GD21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_TLS_GD14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_TLS_GDCALL, 0, 0, false, dont, 0),
- HOW (R_PARISC_TLS_LDM21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_TLS_LDM14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_TLS_LDMCALL, 0, 0, false, dont, 0),
+ HOW (R_PARISC_GNU_VTENTRY, 1, 0, false, dont, 0),
+ HOW (R_PARISC_GNU_VTINHERIT, 1, 0, false, dont, 0),
+ HOW (R_PARISC_TLS_GD21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_TLS_GD14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_TLS_GDCALL, 1, 0, false, dont, 0),
+ HOW (R_PARISC_TLS_LDM21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_TLS_LDM14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_TLS_LDMCALL, 1, 0, false, dont, 0),
/* 240 */
- HOW (R_PARISC_TLS_LDO21L, 2, 21, false, bitfield, 0),
- HOW (R_PARISC_TLS_LDO14R, 2, 14, false, bitfield, 0),
- HOW (R_PARISC_TLS_DTPMOD32, 2, 32, false, bitfield, 0),
- HOW (R_PARISC_TLS_DTPMOD64, 4, 64, false, bitfield, 0),
- HOW (R_PARISC_TLS_DTPOFF32, 2, 32, false, bitfield, 0),
- HOW (R_PARISC_TLS_DTPOFF64, 4, 64, false, bitfield, 0)
+ HOW (R_PARISC_TLS_LDO21L, 4, 21, false, bitfield, 0),
+ HOW (R_PARISC_TLS_LDO14R, 4, 14, false, bitfield, 0),
+ HOW (R_PARISC_TLS_DTPMOD32, 4, 32, false, bitfield, 0),
+ HOW (R_PARISC_TLS_DTPMOD64, 8, 64, false, bitfield, 0),
+ HOW (R_PARISC_TLS_DTPOFF32, 4, 32, false, bitfield, 0),
+ HOW (R_PARISC_TLS_DTPOFF64, 8, 64, false, bitfield, 0)
#undef HOW
};
/* Dummy relocation. Does nothing. */
HOWTO (R_MN10200_NONE,
0,
- 3,
+ 0,
0,
false,
0,
/* Standard 32 bit reloc. */
HOWTO (R_MN10200_32,
0,
- 2,
+ 4,
32,
false,
0,
/* Standard 16 bit reloc. */
HOWTO (R_MN10200_16,
0,
- 1,
+ 2,
16,
false,
0,
/* Standard 8 bit reloc. */
HOWTO (R_MN10200_8,
0,
- 0,
+ 1,
8,
false,
0,
/* Standard 24 bit reloc. */
HOWTO (R_MN10200_24,
0,
- 2,
+ 4,
24,
false,
0,
/* Simple 8 pc-relative reloc. */
HOWTO (R_MN10200_PCREL8,
0,
- 0,
+ 1,
8,
true,
0,
/* Simple 16 pc-relative reloc. */
HOWTO (R_MN10200_PCREL16,
0,
- 1,
+ 2,
16,
true,
0,
to get the pc-relative offset correct. */
HOWTO (R_MN10200_PCREL24,
0,
- 2,
+ 4,
24,
true,
0,
/* Dummy relocation. Does nothing. */
HOWTO (R_MN10300_NONE,
0,
- 3,
+ 0,
0,
false,
0,
/* Standard 32 bit reloc. */
HOWTO (R_MN10300_32,
0,
- 2,
+ 4,
32,
false,
0,
/* Standard 16 bit reloc. */
HOWTO (R_MN10300_16,
0,
- 1,
+ 2,
16,
false,
0,
/* Standard 8 bit reloc. */
HOWTO (R_MN10300_8,
0,
- 0,
+ 1,
8,
false,
0,
/* Standard 32bit pc-relative reloc. */
HOWTO (R_MN10300_PCREL32,
0,
- 2,
+ 4,
32,
true,
0,
/* Standard 16bit pc-relative reloc. */
HOWTO (R_MN10300_PCREL16,
0,
- 1,
+ 2,
16,
true,
0,
/* Standard 8 pc-relative reloc. */
HOWTO (R_MN10300_PCREL8,
0,
- 0,
+ 1,
8,
true,
0,
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_MN10300_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_MN10300_GNU_VTENTRY, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Standard 24 bit reloc. */
HOWTO (R_MN10300_24,
0,
- 2,
+ 4,
24,
false,
0,
false),
HOWTO (R_MN10300_GOTPC32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GOTPC16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GOTOFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GOTOFF24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GOTOFF16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_PLT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_PLT16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GOT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GOT24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GOT16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_GD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_LD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_LDO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_GOTIE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_IE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_LE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_DTPMOD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_DTPOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_TLS_TPOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_SYM_DIFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MN10300_ALIGN, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
example.
HOWTO (R_ARC_NONE, // Type.
0, // Rightshift.
- 2, // Size (0 = byte, 1 = short, 2 = long).
+ 4, // Size.
32, // Bitsize.
false, // PC_relative.
0, // Bitpos.
/* Only 32 bit data relocations should be marked as ME. */ \
if (strstr (#FORMULA, " ME ") != NULL) \
{ \
- BFD_ASSERT (SIZE == 2); \
+ BFD_ASSERT (SIZE == 4); \
}
#include "elf/arc-reloc.def"
/* No relocation. */
HOWTO (R_ARM_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_PC24, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32 bit absolute */
HOWTO (R_ARM_ABS32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* standard 32bit pc-relative reloc */
HOWTO (R_ARM_REL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 8 bit absolute - R_ARM_LDR_PC_G0 in AAELF */
HOWTO (R_ARM_LDR_PC_G0, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 16 bit absolute */
HOWTO (R_ARM_ABS16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 12 bit absolute */
HOWTO (R_ARM_ABS12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_ABS5, /* type */
6, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
5, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8 bit absolute */
HOWTO (R_ARM_ABS8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_SBREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_CALL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_PC8, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_BREL_ADJ, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_DESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_SWI8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* BLX instruction for the ARM. */
HOWTO (R_ARM_XPC25, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* BLX instruction for the Thumb. */
HOWTO (R_ARM_THM_XPC22, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_DTPMOD32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_DTPOFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_TPOFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_JUMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GOTOFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GOTPC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GOT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_PLT32, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_CALL, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_JUMP24, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_JUMP24, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_BASE_ABS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_PCREL7_0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_PCREL15_8, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
true, /* pc_relative */
8, /* bitpos */
HOWTO (R_ARM_ALU_PCREL23_15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
true, /* pc_relative */
16, /* bitpos */
HOWTO (R_ARM_LDR_SBREL_11_0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_SBREL_19_12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
8, /* bitsize */
false, /* pc_relative */
12, /* bitpos */
HOWTO (R_ARM_ALU_SBREL_27_20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
8, /* bitsize */
false, /* pc_relative */
20, /* bitpos */
HOWTO (R_ARM_TARGET1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ROSEGREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_V4BX, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TARGET2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_PREL31, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
31, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_MOVW_ABS_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_MOVT_ABS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_MOVW_PREL_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_MOVT_PREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_MOVW_ABS_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_MOVT_ABS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_MOVW_PREL_NC,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_MOVT_PREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_JUMP19, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_JUMP6, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
6, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
versa. */
HOWTO (R_ARM_THM_ALU_PREL_11_0,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
13, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_PC12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
13, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ABS32_NOI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_REL32_NOI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_PC_G0_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_PC_G0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_PC_G1_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_PC_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_PC_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDR_PC_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDR_PC_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDRS_PC_G0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDRS_PC_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDRS_PC_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDC_PC_G0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDC_PC_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDC_PC_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_SB_G0_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_SB_G0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_SB_G1_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_SB_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_ALU_SB_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDR_SB_G0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDR_SB_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDR_SB_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDRS_SB_G0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDRS_SB_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDRS_SB_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDC_SB_G0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDC_SB_G1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_LDC_SB_G2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_MOVW_BREL_NC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_MOVT_BREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_MOVW_BREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_MOVW_BREL_NC,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_MOVT_BREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_MOVW_BREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_GOTDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_CALL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_DESCSEQ, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_TLS_CALL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_PLT32_ABS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GOT_ABS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GOT_PREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GOT_BREL12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_GOTOFF12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_ARM_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_ARM_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_JUMP11, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_JUMP8, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* TLS relocations */
HOWTO (R_ARM_TLS_GD32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_LDM32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_LDO32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_IE32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_LE32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_LDO12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_LE12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_TLS_IE12GP, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_THM_TLS_DESCSEQ, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
EMPTY_HOWTO (131),
HOWTO (R_ARM_THM_ALU_ABS_G0_NC,/* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
false), /* pcrel_offset. */
HOWTO (R_ARM_THM_ALU_ABS_G1_NC,/* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
false), /* pcrel_offset. */
HOWTO (R_ARM_THM_ALU_ABS_G2_NC,/* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
false), /* pcrel_offset. */
HOWTO (R_ARM_THM_ALU_ABS_G3_NC,/* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
/* Relocations for Armv8.1-M Mainline. */
HOWTO (R_ARM_THM_BF16, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
true), /* pcrel_offset. */
HOWTO (R_ARM_THM_BF12, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
12, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
true), /* pcrel_offset. */
HOWTO (R_ARM_THM_BF18, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
18, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
{
HOWTO (R_ARM_IRELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_ARM_GOTFUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_ARM_GOTOFFFUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_ARM_FUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_ARM_FUNCDESC_VALUE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_ARM_TLS_GD32_FDPIC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_ARM_TLS_LDM32_FDPIC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_ARM_TLS_IE32_FDPIC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_ARM_RREL32, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_RABS32, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_RPC24, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_ARM_RBASE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_AVR_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_AVR_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 7 bit PC relative relocation. */
HOWTO (R_AVR_7_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
7, /* bitsize */
true, /* pc_relative */
3, /* bitpos */
/* A 13 bit PC relative relocation. */
HOWTO (R_AVR_13_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
13, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_AVR_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
Will be changed when linker stubs are needed. */
HOWTO (R_AVR_16_PM, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. */
HOWTO (R_AVR_LO8_LDI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. */
HOWTO (R_AVR_HI8_LDI, /* type */
8, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
a 32 bit link-time constant. */
HOWTO (R_AVR_HH8_LDI, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. */
HOWTO (R_AVR_LO8_LDI_NEG, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. */
HOWTO (R_AVR_HI8_LDI_NEG, /* type */
8, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. */
HOWTO (R_AVR_HH8_LDI_NEG, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will not be changed when linker stubs are needed. */
HOWTO (R_AVR_LO8_LDI_PM, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will not be changed when linker stubs are needed. */
HOWTO (R_AVR_HI8_LDI_PM, /* type */
9, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will not be changed when linker stubs are needed. */
HOWTO (R_AVR_HH8_LDI_PM, /* type */
17, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will not be changed when linker stubs are needed. */
HOWTO (R_AVR_LO8_LDI_PM_NEG, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will not be changed when linker stubs are needed. */
HOWTO (R_AVR_HI8_LDI_PM_NEG, /* type */
9, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will not be changed when linker stubs are needed. */
HOWTO (R_AVR_HH8_LDI_PM_NEG, /* type */
17, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relocation for CALL command in ATmega. */
HOWTO (R_AVR_CALL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
23, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. */
HOWTO (R_AVR_LDI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For ldd/sdd command. */
HOWTO (R_AVR_6, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
6, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For sbiw/adiw command. */
HOWTO (R_AVR_6_ADIW, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
6, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Most significant 8 bit value of a 32 bit link-time constant. */
HOWTO (R_AVR_MS8_LDI, /* type */
24, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Negative most significant 8 bit value of a 32 bit link-time constant. */
HOWTO (R_AVR_MS8_LDI_NEG, /* type */
24, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will be changed when linker stubs are needed. */
HOWTO (R_AVR_LO8_LDI_GS, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
For LDI command. Will be changed when linker stubs are needed. */
HOWTO (R_AVR_HI8_LDI_GS, /* type */
9, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8 bit offset. */
HOWTO (R_AVR_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* lo8-part to use in .byte lo8(sym). */
HOWTO (R_AVR_8_LO8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* hi8-part to use in .byte hi8(sym). */
HOWTO (R_AVR_8_HI8, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* hlo8-part to use in .byte hlo8(sym). */
HOWTO (R_AVR_8_HLO8, /* type */
16, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_AVR_DIFF8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_AVR_DIFF16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_AVR_DIFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 7 bit immediate for LDS/STS in Tiny core. */
HOWTO (R_AVR_LDS_STS_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
7, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_AVR_PORT6, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
6, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_AVR_PORT5, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
5, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit PC relative relocation. */
HOWTO (R_AVR_32_PCREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. . */
HOWTO (R_BFIN_UNUSED0, /* type. */
0, /* rightshift. */
- 3, /* size (0 = byte, 1 = short, 2 = long). */
+ 0, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL5M2, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long).. */
+ 2, /* size. */
4, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_UNUSED1, /* type. */
0, /* rightshift. */
- 3, /* size (0 = byte, 1 = short, 2 = long). */
+ 0, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL10, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
10, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
aligned on a word boundary so
only 12 bits have to be used.
Right shift the rightmost bit.. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
12, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_RIMM16, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_LUIMM16, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_HUIMM16, /* type. */
16, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL12_JUMP_S, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
12, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL24_JUMP_X, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
24, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL24, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
24, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_UNUSEDB, /* type. */
0, /* rightshift. */
- 3, /* size (0 = byte, 1 = short, 2 = long). */
+ 0, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_UNUSEDC, /* type. */
0, /* rightshift. */
- 3, /* size (0 = byte, 1 = short, 2 = long). */
+ 0, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL24_JUMP_L, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
24, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL24_CALL_X, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
24, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_VAR_EQ_SYMB, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_BYTE_DATA, /* type. */
0, /* rightshift. */
- 0, /* size (0 = byte, 1 = short, 2 = long). */
+ 1, /* size. */
8, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_BYTE2_DATA, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_BYTE4_DATA, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_PCREL11, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
10, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
the symbol. */
HOWTO (R_BFIN_GOT17M4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_BFIN_GOTHI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_BFIN_GOTLO, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The 32-bit address of the canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC_GOT17M4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC_GOTHI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC_GOTLO, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The 32-bit address of the canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC_VALUE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC_GOTOFF17M4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC_GOTOFFHI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_BFIN_FUNCDESC_GOTOFFLO, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_BFIN_GOTOFF17M4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_BFIN_GOTOFFHI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_BFIN_GOTOFFLO, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_BFIN_PLTPC, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_BFIN_GOT, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_BFIN_GNU_VTINHERIT, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_BFIN_GNU_VTENTRY, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
{
HOWTO (R_CR16_NONE, /* type */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_NUM8, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_NUM16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_NUM32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_NUM32a, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_REGREL4, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
4, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_REGREL4a, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
4, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_REGREL14, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
14, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_REGREL14a, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
14, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_REGREL16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_REGREL20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_REGREL20a, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_ABS20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_ABS24, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_IMM4, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
4, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_IMM8, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_IMM16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_IMM20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_IMM24, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_IMM32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_IMM32a, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_DISP4, /* type */
1, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
4, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_DISP8, /* type */
1, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_DISP16, /* type */
0, /* rightshift REVIITS: To sync with WinIDEA*/
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
but its not done, to sync with WinIDEA and CR16 4.1 tools */
HOWTO (R_CR16_DISP24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_DISP24a, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_CR16_SWITCH8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_CR16_SWITCH16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_CR16_SWITCH32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_GOT_REGREL20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_GOTC_REGREL20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CR16_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_CRIS_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_CRIS_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_CRIS_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_CRIS_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit PC-relative relocation. */
HOWTO (R_CRIS_8_PCREL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit PC-relative relocation. */
HOWTO (R_CRIS_16_PCREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 32 bit PC-relative relocation. */
HOWTO (R_CRIS_32_PCREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_CRIS_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_CRIS_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
run has to have the data at some particular address. */
HOWTO (R_CRIS_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Like R_CRIS_32, but used when setting global offset table entries. */
HOWTO (R_CRIS_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Marks a procedure linkage table entry for a symbol. */
HOWTO (R_CRIS_JUMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
addend. */
HOWTO (R_CRIS_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Like R_CRIS_32, but referring to the GOT table entry for the symbol. */
HOWTO (R_CRIS_16_GOT, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRIS_32_GOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the GOT table for the symbol. */
HOWTO (R_CRIS_16_GOTPLT, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRIS_32_GOTPLT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
be necessary. */
HOWTO (R_CRIS_32_GOTREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
to create PLT entry for symbol. */
HOWTO (R_CRIS_32_PLT_GOTREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_CRIS_32_PLT_PCREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
tests to actually refuse gracefully to handle these and PIC
relocs for cross-format linking. */
#define TLSHOWTO32(name) \
- HOWTO (name, 0, 2, 32, false, 0, complain_overflow_bitfield, \
+ HOWTO (name, 0, 4, 32, false, 0, complain_overflow_bitfield, \
bfd_elf_generic_reloc, #name, false, 0, 0xffffffff, false)
#define TLSHOWTO16X(name, X) \
- HOWTO (name, 0, 1, 16, false, 0, complain_overflow_ ## X, \
+ HOWTO (name, 0, 2, 16, false, 0, complain_overflow_ ## X, \
bfd_elf_generic_reloc, #name, false, 0, 0xffff, false)
#define TLSHOWTO16(name) TLSHOWTO16X(name, unsigned)
#define TLSHOWTO16S(name) TLSHOWTO16X(name, signed)
{
HOWTO (R_CRX_NONE, /* type */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REL4, /* type */
1, /* rightshift */
- 0, /* size */
+ 1, /* size */
4, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REL8, /* type */
1, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REL8_CMP, /* type */
1, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REL16, /* type */
1, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REL24, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REL32, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REGREL12, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REGREL22, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
22, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REGREL28, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
28, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_REGREL32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_ABS16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_ABS32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_NUM8, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_NUM16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_NUM32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_IMM16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_CRX_IMM32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_CRX_SWITCH8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_CRX_SWITCH16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_CRX_SWITCH32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 0 */
HOWTO (R_CKCORE_NONE, /* type */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 1. */
HOWTO (R_CKCORE_ADDR32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 2: Only for csky v1. */
HOWTO (R_CKCORE_PCREL_IMM8BY4, /* type */
2, /* rightshift */
- 1, /* size */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 3: Only for csky v1. */
HOWTO (R_CKCORE_PCREL_IMM11BY2, /* type */
1, /* rightshift */
- 1, /* size */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
/* 4: DELETED. */
- HOWTO (R_CKCORE_PCREL_IMM4BY2,0,0,0,0,0,0,0,"R_CKCORE_PCREL_IMM4BY2",0,0,0,0),
+ HOWTO (R_CKCORE_PCREL_IMM4BY2,0,1,0,0,0,0,0,"R_CKCORE_PCREL_IMM4BY2",0,0,0,0),
/* 5. */
HOWTO (R_CKCORE_PCREL32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 6: Only for csky v1. */
HOWTO (R_CKCORE_PCREL_JSR_IMM11BY2, /* type */
1, /* rightshift */
- 1, /* size */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 7: GNU extension to record C++ vtable member usage. */
HOWTO (R_CKCORE_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8: GNU extension to record C++ vtable hierarchy. */
HOWTO (R_CKCORE_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 9. */
HOWTO (R_CKCORE_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* FIXME: It is a bug that copy relocations are not implemented. */
HOWTO (R_CKCORE_COPY, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
/* 11: None. */
- HOWTO (R_CKCORE_GLOB_DAT,0,0,0,0,0,0,0,"R_CKCORE_GLOB_DAT",0,0,0,0),
+ HOWTO (R_CKCORE_GLOB_DAT,0,1,0,0,0,0,0,"R_CKCORE_GLOB_DAT",0,0,0,0),
/* 12: None. */
- HOWTO (R_CKCORE_JUMP_SLOT,0,0,0,0,0,0,0,"R_CKCORE_JUMP_SLOT",0,0,0,0),
+ HOWTO (R_CKCORE_JUMP_SLOT,0,1,0,0,0,0,0,"R_CKCORE_JUMP_SLOT",0,0,0,0),
/* 13. */
HOWTO (R_CKCORE_GOTOFF, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 14. */
HOWTO (R_CKCORE_GOTPC, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 15. */
HOWTO (R_CKCORE_GOT32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16. */
HOWTO (R_CKCORE_PLT32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
/* 17: None. */
- HOWTO (R_CKCORE_ADDRGOT,0,0,0,0,0,0,0,"R_CKCORE_ADDRGOT",0,0,0,0),
+ HOWTO (R_CKCORE_ADDRGOT,0,1,0,0,0,0,0,"R_CKCORE_ADDRGOT",0,0,0,0),
/* 18: None. */
- HOWTO (R_CKCORE_ADDRPLT,0,0,0,0,0,0,0,"R_CKCORE_ADDRPLT",0,0,0,0),
+ HOWTO (R_CKCORE_ADDRPLT,0,1,0,0,0,0,0,"R_CKCORE_ADDRPLT",0,0,0,0),
/* 19: Only for csky v2. */
HOWTO (R_CKCORE_PCREL_IMM26BY2, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 20: Only for csky v2. */
HOWTO (R_CKCORE_PCREL_IMM16BY2, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 21: Only for csky v2. */
HOWTO (R_CKCORE_PCREL_IMM16BY4, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 22: Only for csky v2. */
HOWTO (R_CKCORE_PCREL_IMM10BY2, /* type */
1, /* rightshift */
- 1, /* size */
+ 2, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 23: Only for csky v2. */
HOWTO (R_CKCORE_PCREL_IMM10BY4, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 24: Only for csky v2. */
HOWTO (R_CKCORE_ADDR_HI16, /* type */
16, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 25. */
HOWTO (R_CKCORE_ADDR_LO16, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 26. */
HOWTO (R_CKCORE_GOTPC_HI16, /* type */
16, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 27. */
HOWTO (R_CKCORE_GOTPC_LO16, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 28. */
HOWTO (R_CKCORE_GOTOFF_HI16, /* type */
16, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 29. */
HOWTO (R_CKCORE_GOTOFF_LO16, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 30. */
HOWTO (R_CKCORE_GOT12, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 31. */
HOWTO (R_CKCORE_GOT_HI16, /* type */
16, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32. */
HOWTO (R_CKCORE_GOT_LO16, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 33. */
HOWTO (R_CKCORE_PLT12, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 34. */
HOWTO (R_CKCORE_PLT_HI16, /* type */
16, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 35. */
HOWTO (R_CKCORE_PLT_LO16, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
/* 36: None. */
- HOWTO (R_CKCORE_ADDRGOT_HI16,0,0,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
+ HOWTO (R_CKCORE_ADDRGOT_HI16,0,1,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
/* 37: None. */
- HOWTO (R_CKCORE_ADDRGOT_LO16,0,0,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
+ HOWTO (R_CKCORE_ADDRGOT_LO16,0,1,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
/* 38: None. */
- HOWTO (R_CKCORE_ADDRPLT_HI16,0,0,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
+ HOWTO (R_CKCORE_ADDRPLT_HI16,0,1,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
/* 39: None. */
- HOWTO (R_CKCORE_ADDRPLT_LO16,0,0,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
+ HOWTO (R_CKCORE_ADDRPLT_LO16,0,1,0,0,0,0,0,"R_CKCORE_",0,0,0,0),
/* 40. */
HOWTO (R_CKCORE_PCREL_JSR_IMM26BY2, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 41. */
HOWTO (R_CKCORE_TOFFSET_LO16, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 42. */
HOWTO (R_CKCORE_DOFFSET_LO16, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 43. */
HOWTO (R_CKCORE_PCREL_IMM18BY2, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
18, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 44. */
HOWTO (R_CKCORE_DOFFSET_IMM18, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 45. */
HOWTO (R_CKCORE_DOFFSET_IMM18BY2, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 46. */
HOWTO (R_CKCORE_DOFFSET_IMM18BY4, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 47. */
HOWTO (R_CKCORE_GOTOFF_IMM18, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 48. */
HOWTO (R_CKCORE_GOT_IMM18BY4, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 49. */
HOWTO (R_CKCORE_PLT_IMM18BY4, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 50: for lrw16. */
HOWTO (R_CKCORE_PCREL_IMM7BY4, /* type */
2, /* rightshift */
- 1, /* size */
+ 2, /* size */
7, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 51: for static nptl. */
HOWTO (R_CKCORE_TLS_LE32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 52: for static nptl. */
HOWTO (R_CKCORE_TLS_IE32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 53: for pic nptl. */
HOWTO (R_CKCORE_TLS_GD32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 54: for pic nptl. */
HOWTO (R_CKCORE_TLS_LDM32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 55: for pic nptl. */
HOWTO (R_CKCORE_TLS_LDO32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
/* 56: for linker. */
- HOWTO (R_CKCORE_TLS_DTPMOD32,0,0,0,0,0,0,0,"R_CKCORE_TLS_DTPMOD32",0,0,0,0),
+ HOWTO (R_CKCORE_TLS_DTPMOD32,0,1,0,0,0,0,0,"R_CKCORE_TLS_DTPMOD32",0,0,0,0),
/* 57: for linker. */
- HOWTO (R_CKCORE_TLS_DTPOFF32,0,0,0,0,0,0,0,"R_CKCORE_TLS_DTPOFF32",0,0,0,0),
+ HOWTO (R_CKCORE_TLS_DTPOFF32,0,1,0,0,0,0,0,"R_CKCORE_TLS_DTPOFF32",0,0,0,0),
/* 58: for linker. */
- HOWTO (R_CKCORE_TLS_TPOFF32,0,0,0,0,0,0,0,"R_CKCORE_TLS_TPOFF32",0,0,0,0),
+ HOWTO (R_CKCORE_TLS_TPOFF32,0,1,0,0,0,0,0,"R_CKCORE_TLS_TPOFF32",0,0,0,0),
/* 59: for ck807f. */
HOWTO (R_CKCORE_PCREL_FLRW_IMM8BY4, /* type */
2, /* rightshift */
- 2, /* size */
+ 4, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 60: for 810 not to generate jsri. */
HOWTO (R_CKCORE_NOJSRI, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 61: for callgraph. */
HOWTO (R_CKCORE_CALLGRAPH, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
/* 62: IRELATIVE*/
- HOWTO (R_CKCORE_IRELATIVE,0,0,0,0,0,0,0,"R_CKCORE_IRELATIVE",0,0,0,0),
+ HOWTO (R_CKCORE_IRELATIVE,0,1,0,0,0,0,0,"R_CKCORE_IRELATIVE",0,0,0,0),
/* 63: for bloop instruction */
HOWTO (R_CKCORE_PCREL_BLOOP_IMM4BY4, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
4, /* bitsize */
1, /* pc_relative */
0, /* bitpos */
/* 64: for bloop instruction */
HOWTO (R_CKCORE_PCREL_BLOOP_IMM12BY4, /* type */
1, /* rightshift */
- 2, /* size */
+ 4, /* size */
12, /* bitsize */
1, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_D10V_NONE, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* An PC Relative 10-bit relocation, shifted by 2, right container. */
HOWTO (R_D10V_10_PCREL_R, /* Type. */
2, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
8, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* An PC Relative 10-bit relocation, shifted by 2, left container. */
HOWTO (R_D10V_10_PCREL_L, /* Type. */
2, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
8, /* Bitsize. */
true, /* PC_relative. */
15, /* Bitpos. */
/* A 16 bit absolute relocation. */
HOWTO (R_D10V_16, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* An 18 bit absolute relocation, right shifted 2. */
HOWTO (R_D10V_18, /* Type. */
2, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A relative 18 bit relocation, right shifted by 2. */
HOWTO (R_D10V_18_PCREL, /* Type. */
2, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A 32 bit absolute relocation. */
HOWTO (R_D10V_32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_D10V_GNU_VTINHERIT, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_D10V_GNU_VTENTRY, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* This reloc does nothing. */
HOWTO (R_D30V_NONE, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A 6 bit absolute relocation. */
HOWTO (R_D30V_6, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
6, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A relative 9 bit relocation, right shifted by 3. */
HOWTO (R_D30V_9_PCREL, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
6, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A relative 9 bit relocation, right shifted by 3. */
HOWTO (R_D30V_9_PCREL_R, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
6, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* An absolute 15 bit relocation, right shifted by 3. */
HOWTO (R_D30V_15, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
12, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A relative 15 bit relocation, right shifted by 3. */
HOWTO (R_D30V_15_PCREL, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
12, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A relative 15 bit relocation, right shifted by 3. */
HOWTO (R_D30V_15_PCREL_R, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
12, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* An absolute 21 bit relocation, right shifted by 3. */
HOWTO (R_D30V_21, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
18, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A relative 21 bit relocation, right shifted by 3. */
HOWTO (R_D30V_21_PCREL, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
18, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A relative 21 bit relocation, right shifted by 3, in the Right container. */
HOWTO (R_D30V_21_PCREL_R, /* Type. */
3, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
18, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A D30V 32 bit absolute relocation. */
HOWTO (R_D30V_32, /* Type. */
0, /* Rightshift. */
- 4, /* Size (0 = byte, 1 = short, 2 = long). */
+ 8, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A relative 32 bit relocation. */
HOWTO (R_D30V_32_PCREL, /* Type. */
0, /* Rightshift. */
- 4, /* Size (0 = byte, 1 = short, 2 = long). */
+ 8, /* Size. */
32, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A regular 32 bit absolute relocation. */
HOWTO (R_D30V_32_NORMAL, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* No relocation. */
HOWTO (R_DLX_NONE, /* Type. */
0, /* Rightshift. */
- 3, /* size (0 = byte, 1 = short, 2 = long). */
+ 0, /* size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 8 bit relocation. */
HOWTO (R_DLX_RELOC_8, /* Type. */
0, /* Rightshift. */
- 0, /* Size (0 = byte, 1 = short, 2 = long). */
+ 1, /* Size. */
8, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 16 bit relocation. */
HOWTO (R_DLX_RELOC_16, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 32 bit relocation. */
HOWTO (R_DLX_RELOC_32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_DLX_GNU_VTINHERIT, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_DLX_GNU_VTENTRY, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
static reloc_howto_type elf_dlx_gnu_rel16_s2 =
HOWTO (R_DLX_RELOC_16_PCREL, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
static reloc_howto_type elf_dlx_gnu_rel26_s2 =
HOWTO (R_DLX_RELOC_26_PCREL, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
26, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
static reloc_howto_type elf_dlx_reloc_16_hi =
HOWTO (R_DLX_RELOC_16_HI, /* Type. */
16, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
static reloc_howto_type elf_dlx_reloc_16_lo =
HOWTO (R_DLX_RELOC_16_LO, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
#define AHOW(t,rs,s,bs,pr,bp,co,name,sm,dm) \
HOWTO(t, /* type */ \
rs, /* rightshift */ \
- s, /* size (0 = byte, 1 = short, 2 = long) */ \
+ s, /* size */ \
bs, /* bitsize */ \
pr, /* pc_relative */ \
bp, /* bitpos */ \
pr) /* pcrel_offset */
/* This reloc does nothing. */
- AHOW (R_EPIPHANY_NONE, 0, 3,0, false, 0, complain_overflow_dont, "R_EPIPHANY_NONE", 0, 0),
+ AHOW (R_EPIPHANY_NONE, 0, 0,0, false, 0, complain_overflow_dont, "R_EPIPHANY_NONE", 0, 0),
/* 8 bit absolute (not likely) */
- AHOW (R_EPIPHANY_8, 0, 0, 8, false, 0, complain_overflow_bitfield, "R_EPIPHANY_8", 0x000000ff, 0x000000ff),
+ AHOW (R_EPIPHANY_8, 0, 1, 8, false, 0, complain_overflow_bitfield, "R_EPIPHANY_8", 0x000000ff, 0x000000ff),
/* 16 bit absolute */
- AHOW (R_EPIPHANY_16, 0, 1,16, false, 0, complain_overflow_bitfield, "R_EPIPHANY_16", 0x0000ffff, 0x00ff1fe0),
+ AHOW (R_EPIPHANY_16, 0, 2,16, false, 0, complain_overflow_bitfield, "R_EPIPHANY_16", 0x0000ffff, 0x00ff1fe0),
/* A 32 bit absolute relocation. */
- AHOW (R_EPIPHANY_32, 0, 2,32, false, 0, complain_overflow_dont, "R_EPIPHANY_32", 0xffffffff, 0xffffffff),
+ AHOW (R_EPIPHANY_32, 0, 4,32, false, 0, complain_overflow_dont, "R_EPIPHANY_32", 0xffffffff, 0xffffffff),
/* 8 bit relative relocation */
- HOWTO ( R_EPIPHANY_8_PCREL, 0, 0, 8, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
+ HOWTO ( R_EPIPHANY_8_PCREL, 0, 1, 8, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
/* 16 bit relative relocation */
- HOWTO ( R_EPIPHANY_16_PCREL, 0, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
+ HOWTO ( R_EPIPHANY_16_PCREL, 0, 2, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
/* 32 bit relative relocation */
- HOWTO ( R_EPIPHANY_32_PCREL, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
+ HOWTO ( R_EPIPHANY_32_PCREL, 0, 4, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
/* 8 bit pc-relative relocation */
- AHOW (R_EPIPHANY_SIMM8, 1, 0, 8, true, 8, complain_overflow_signed, "R_EPIPHANY_SIMM8", 0x000000ff, 0x0000ff00),
+ AHOW (R_EPIPHANY_SIMM8, 1, 1, 8, true, 8, complain_overflow_signed, "R_EPIPHANY_SIMM8", 0x000000ff, 0x0000ff00),
/* 24 bit pc-relative relocation */
- AHOW (R_EPIPHANY_SIMM24, 1, 2,24, true, 8, complain_overflow_signed, "R_EPIPHANY_SIMM24", 0x00ffffff, 0xffffff00),
+ AHOW (R_EPIPHANY_SIMM24, 1, 4,24, true, 8, complain_overflow_signed, "R_EPIPHANY_SIMM24", 0x00ffffff, 0xffffff00),
/* %HIGH(EA) */
- AHOW (R_EPIPHANY_HIGH, 0, 2,16, false, 0, complain_overflow_dont, "R_EPIPHANY_HIGH", 0x0ff01fe0, 0x0ff01fe0),
+ AHOW (R_EPIPHANY_HIGH, 0, 4,16, false, 0, complain_overflow_dont, "R_EPIPHANY_HIGH", 0x0ff01fe0, 0x0ff01fe0),
/* %LOW(EA) */
- AHOW (R_EPIPHANY_LOW, 0, 2,16, false, 0, complain_overflow_dont, "R_EPIPHANY_LOW", 0x0ff01fe0, 0x0ff01fe0),
+ AHOW (R_EPIPHANY_LOW, 0, 4,16, false, 0, complain_overflow_dont, "R_EPIPHANY_LOW", 0x0ff01fe0, 0x0ff01fe0),
/* simm11 */
- AHOW (R_EPIPHANY_SIMM11, 0, 2,11, false, 0, complain_overflow_bitfield, "R_EPIPHANY_SIMM11", 0x00ff0380, 0x00ff0380),
+ AHOW (R_EPIPHANY_SIMM11, 0, 4,11, false, 0, complain_overflow_bitfield, "R_EPIPHANY_SIMM11", 0x00ff0380, 0x00ff0380),
/* imm12 - sign-magnitude */
- AHOW (R_EPIPHANY_IMM11, 0, 2,11, false, 0, complain_overflow_bitfield, "R_EPIPHANY_IMM12", 0x00ff0380, 0x00ff0380),
+ AHOW (R_EPIPHANY_IMM11, 0, 4,11, false, 0, complain_overflow_bitfield, "R_EPIPHANY_IMM12", 0x00ff0380, 0x00ff0380),
/* imm8 */
- AHOW (R_EPIPHANY_IMM8, 0, 1, 8, false, 8, complain_overflow_signed, "R_EPIPHANY_IMM8", 0x0000ff00, 0x0000ff00)
+ AHOW (R_EPIPHANY_IMM8, 0, 2, 8, false, 8, complain_overflow_signed, "R_EPIPHANY_IMM8", 0x0000ff00, 0x0000ff00)
};
/* This reloc does nothing. */
HOWTO (R_FR30_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_FR30_8, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
/* A 20 bit absolute relocation. */
HOWTO (R_FR30_20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_FR30_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit into 48 bits absolute relocation. */
HOWTO (R_FR30_48, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 6 bit absolute relocation. */
HOWTO (R_FR30_6_IN_4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
6, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_FR30_8_IN_8, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
/* A 9 bit absolute relocation. */
HOWTO (R_FR30_9_IN_8, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
9, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
/* A 10 bit absolute relocation. */
HOWTO (R_FR30_10_IN_8, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
/* A PC relative 9 bit relocation, right shifted by 1. */
HOWTO (R_FR30_9_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
9, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A PC relative 12 bit relocation, right shifted by 1. */
HOWTO (R_FR30_12_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
12, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_FR30_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_FR30_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_FRV_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_FRV_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit pc-relative relocation. */
HOWTO (R_FRV_LABEL16, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 24-bit pc-relative relocation. */
HOWTO (R_FRV_LABEL24, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_FRV_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FRV_HI16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FRV_GPREL12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FRV_GPRELU12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FRV_GPREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FRV_GPRELHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FRV_GPRELLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_FRV_GOT12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The 32-bit address of the canonical descriptor of a function. */
HOWTO (R_FRV_FUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_FRV_FUNCDESC_GOT12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_FRV_FUNCDESC_GOTHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_FRV_FUNCDESC_GOTLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The 64-bit descriptor of a function. */
HOWTO (R_FRV_FUNCDESC_VALUE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_FRV_FUNCDESC_GOTOFF12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_FRV_FUNCDESC_GOTOFFHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
canonical descriptor of a function. */
HOWTO (R_FRV_FUNCDESC_GOTOFFLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_FRV_GOTOFF12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTOFFHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTOFFLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the module. */
HOWTO (R_FRV_GETTLSOFF, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
valid as a REL, dynamic relocation. */
HOWTO (R_FRV_TLSDESC_VALUE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
descriptor of the symbol. */
HOWTO (R_FRV_GOTTLSDESC12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTTLSDESCHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTTLSDESCLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
address to the thread-local symbol address. */
HOWTO (R_FRV_TLSMOFF12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the thread-local symbol address. */
HOWTO (R_FRV_TLSMOFFHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the thread-local symbol address. */
HOWTO (R_FRV_TLSMOFFLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
for a symbol. */
HOWTO (R_FRV_GOTTLSOFF12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTTLSOFFHI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
symbol. */
HOWTO (R_FRV_GOTTLSOFFLO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
address) to a thread-local symbol. */
HOWTO (R_FRV_TLSOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the two input registers of an ldd instruction. */
HOWTO (R_FRV_TLSDESC_RELAX, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
of the two register operands of an calll instruction. */
HOWTO (R_FRV_GETTLSOFF_RELAX, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the two input registers of an ld instruction. */
HOWTO (R_FRV_TLSOFF_RELAX, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the thread-local symbol address. */
HOWTO (R_FRV_TLSMOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf32_frv_vtinherit_howto =
HOWTO (R_FRV_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf32_frv_vtentry_howto =
HOWTO (R_FRV_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf32_frv_rel_32_howto =
HOWTO (R_FRV_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf32_frv_rel_funcdesc_howto =
HOWTO (R_FRV_FUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf32_frv_rel_funcdesc_value_howto =
HOWTO (R_FRV_FUNCDESC_VALUE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
thread. */
HOWTO (R_FRV_TLSDESC_VALUE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
address) to a thread-local symbol. */
HOWTO (R_FRV_TLSOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_FT32_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FT32_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FT32_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FT32_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FT32_10, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
HOWTO (R_FT32_20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FT32_17, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FT32_18, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_FT32_RELAX, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
HOWTO (R_FT32_SC0, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_FT32_SC1, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
22, /* bitsize */
true, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_FT32_15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_FT32_DIFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
};
\f
-\f
/* Map BFD reloc types to FT32 ELF reloc types. */
struct ft32_reloc_map
static reloc_howto_type dummy =
HOWTO (0, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_NONE_X 0
HOWTO (R_H8_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR32_X (R_H8_NONE_X + 1)
HOWTO (R_H8_DIR32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR16_X (R_H8_DIR32_X + 1)
HOWTO (R_H8_DIR16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR8_X (R_H8_DIR16_X + 1)
HOWTO (R_H8_DIR8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR16A8_X (R_H8_DIR8_X + 1)
HOWTO (R_H8_DIR16A8, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR16R8_X (R_H8_DIR16A8_X + 1)
HOWTO (R_H8_DIR16R8, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR24A8_X (R_H8_DIR16R8_X + 1)
HOWTO (R_H8_DIR24A8, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR24R8_X (R_H8_DIR24A8_X + 1)
HOWTO (R_H8_DIR24R8, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DIR32A16_X (R_H8_DIR24R8_X + 1)
HOWTO (R_H8_DIR32A16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_DISP32A16_X (R_H8_DIR32A16_X + 1)
HOWTO (R_H8_DISP32A16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define R_H8_PCREL16_X (R_H8_DISP32A16_X + 1)
HOWTO (R_H8_PCREL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
#define R_H8_PCREL8_X (R_H8_PCREL16_X + 1)
HOWTO (R_H8_PCREL8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf_howto_table[]=
{
- HOWTO(R_386_NONE, 0, 3, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_386_NONE, 0, 0, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_NONE",
true, 0x00000000, 0x00000000, false),
- HOWTO(R_386_32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_PC32, 0, 2, 32, true, 0, complain_overflow_dont,
+ HOWTO(R_386_PC32, 0, 4, 32, true, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_PC32",
true, 0xffffffff, 0xffffffff, true),
- HOWTO(R_386_GOT32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_GOT32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_GOT32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_PLT32, 0, 2, 32, true, 0, complain_overflow_dont,
+ HOWTO(R_386_PLT32, 0, 4, 32, true, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_PLT32",
true, 0xffffffff, 0xffffffff, true),
- HOWTO(R_386_COPY, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_COPY, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_COPY",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_GLOB_DAT, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_GLOB_DAT, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_GLOB_DAT",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_JUMP_SLOT, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_JUMP_SLOT, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_JUMP_SLOT",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_RELATIVE, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_RELATIVE, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_RELATIVE",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_GOTOFF, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_GOTOFF, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_GOTOFF",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_GOTPC, 0, 2, 32, true, 0, complain_overflow_dont,
+ HOWTO(R_386_GOTPC, 0, 4, 32, true, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_GOTPC",
true, 0xffffffff, 0xffffffff, true),
#define R_386_ext_offset (R_386_TLS_TPOFF - R_386_standard)
/* These relocs are a GNU extension. */
- HOWTO(R_386_TLS_TPOFF, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_TPOFF, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_TPOFF",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_IE, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_IE, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_IE",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_GOTIE, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_GOTIE, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_GOTIE",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_LE, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_LE, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_LE",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_GD, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_GD, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_GD",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_LDM, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_LDM, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_LDM",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_386_16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_386_16",
true, 0xffff, 0xffff, false),
- HOWTO(R_386_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_386_PC16, 0, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_386_PC16",
true, 0xffff, 0xffff, true),
- HOWTO(R_386_8, 0, 0, 8, false, 0, complain_overflow_bitfield,
+ HOWTO(R_386_8, 0, 1, 8, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_386_8",
true, 0xff, 0xff, false),
- HOWTO(R_386_PC8, 0, 0, 8, true, 0, complain_overflow_signed,
+ HOWTO(R_386_PC8, 0, 1, 8, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_386_PC8",
true, 0xff, 0xff, true),
#define R_386_ext (R_386_PC8 + 1 - R_386_ext_offset)
#define R_386_tls_offset (R_386_TLS_LDO_32 - R_386_ext)
/* These are common with Solaris TLS implementation. */
- HOWTO(R_386_TLS_LDO_32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_LDO_32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_LDO_32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_IE_32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_IE_32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_IE_32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_LE_32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_LE_32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_LE_32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_DTPMOD32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_DTPMOD32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_DTPMOD32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_DTPOFF32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_DTPOFF32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_TPOFF32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_TPOFF32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_TPOFF32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_SIZE32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_SIZE32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_SIZE32",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_GOTDESC, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_GOTDESC, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_GOTDESC",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_TLS_DESC_CALL, 0, 3, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_DESC_CALL, 0, 0, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_DESC_CALL",
false, 0, 0, false),
- HOWTO(R_386_TLS_DESC, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_TLS_DESC, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_TLS_DESC",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_IRELATIVE, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_IRELATIVE, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_IRELATIVE",
true, 0xffffffff, 0xffffffff, false),
- HOWTO(R_386_GOT32X, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO(R_386_GOT32X, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_386_GOT32X",
true, 0xffffffff, 0xffffffff, false),
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_386_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_386_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
pr) /* pcrel_offset */
/* This reloc does nothing. */
- IP2K_HOWTO (R_IP2K_NONE, 0,3,0, false, 0, "R_IP2K_NONE", 0, 0),
+ IP2K_HOWTO (R_IP2K_NONE, 0,0,0, false, 0, "R_IP2K_NONE", 0, 0),
/* A 16 bit absolute relocation. */
- IP2K_HOWTO (R_IP2K_16, 0,1,16, false, 0, "R_IP2K_16", 0, 0xffff),
+ IP2K_HOWTO (R_IP2K_16, 0,2,16, false, 0, "R_IP2K_16", 0, 0xffff),
/* A 32 bit absolute relocation. */
- IP2K_HOWTO (R_IP2K_32, 0,2,32, false, 0, "R_IP2K_32", 0, 0xffffffff),
+ IP2K_HOWTO (R_IP2K_32, 0,4,32, false, 0, "R_IP2K_32", 0, 0xffffffff),
/* A 8-bit data relocation for the FR9 field. Ninth bit is computed specially. */
- IP2K_HOWTO (R_IP2K_FR9, 0,1,9, false, 0, "R_IP2K_FR9", 0, 0x00ff),
+ IP2K_HOWTO (R_IP2K_FR9, 0,2,9, false, 0, "R_IP2K_FR9", 0, 0x00ff),
/* A 4-bit data relocation. */
- IP2K_HOWTO (R_IP2K_BANK, 8,1,4, false, 0, "R_IP2K_BANK", 0, 0x000f),
+ IP2K_HOWTO (R_IP2K_BANK, 8,2,4, false, 0, "R_IP2K_BANK", 0, 0x000f),
/* A 13-bit insn relocation - word address => right-shift 1 bit extra. */
- IP2K_HOWTO (R_IP2K_ADDR16CJP, 1,1,13, false, 0, "R_IP2K_ADDR16CJP", 0, 0x1fff),
+ IP2K_HOWTO (R_IP2K_ADDR16CJP, 1,2,13, false, 0, "R_IP2K_ADDR16CJP", 0, 0x1fff),
/* A 3-bit insn relocation - word address => right-shift 1 bit extra. */
- IP2K_HOWTO (R_IP2K_PAGE3, 14,1,3, false, 0, "R_IP2K_PAGE3", 0, 0x0007),
+ IP2K_HOWTO (R_IP2K_PAGE3, 14,2,3, false, 0, "R_IP2K_PAGE3", 0, 0x0007),
/* Two 8-bit data relocations. */
- IP2K_HOWTO (R_IP2K_LO8DATA, 0,1,8, false, 0, "R_IP2K_LO8DATA", 0, 0x00ff),
- IP2K_HOWTO (R_IP2K_HI8DATA, 8,1,8, false, 0, "R_IP2K_HI8DATA", 0, 0x00ff),
+ IP2K_HOWTO (R_IP2K_LO8DATA, 0,2,8, false, 0, "R_IP2K_LO8DATA", 0, 0x00ff),
+ IP2K_HOWTO (R_IP2K_HI8DATA, 8,2,8, false, 0, "R_IP2K_HI8DATA", 0, 0x00ff),
/* Two 8-bit insn relocations. word address => right-shift 1 bit extra. */
- IP2K_HOWTO (R_IP2K_LO8INSN, 1,1,8, false, 0, "R_IP2K_LO8INSN", 0, 0x00ff),
- IP2K_HOWTO (R_IP2K_HI8INSN, 9,1,8, false, 0, "R_IP2K_HI8INSN", 0, 0x00ff),
+ IP2K_HOWTO (R_IP2K_LO8INSN, 1,2,8, false, 0, "R_IP2K_LO8INSN", 0, 0x00ff),
+ IP2K_HOWTO (R_IP2K_HI8INSN, 9,2,8, false, 0, "R_IP2K_HI8INSN", 0, 0x00ff),
/* Special 1 bit relocation for SKIP instructions. */
- IP2K_HOWTO (R_IP2K_PC_SKIP, 1,1,1, false, 12, "R_IP2K_PC_SKIP", 0xfffe, 0x1000),
+ IP2K_HOWTO (R_IP2K_PC_SKIP, 1,2,1, false, 12, "R_IP2K_PC_SKIP", 0xfffe, 0x1000),
/* 16 bit word address. */
- IP2K_HOWTO (R_IP2K_TEXT, 1,1,16, false, 0, "R_IP2K_TEXT", 0, 0xffff),
+ IP2K_HOWTO (R_IP2K_TEXT, 1,2,16, false, 0, "R_IP2K_TEXT", 0, 0xffff),
/* A 7-bit offset relocation for the FR9 field. Eigth and ninth bit comes from insn. */
- IP2K_HOWTO (R_IP2K_FR_OFFSET, 0,1,9, false, 0, "R_IP2K_FR_OFFSET", 0x180, 0x007f),
+ IP2K_HOWTO (R_IP2K_FR_OFFSET, 0,2,9, false, 0, "R_IP2K_FR_OFFSET", 0x180, 0x007f),
/* Bits 23:16 of an address. */
- IP2K_HOWTO (R_IP2K_EX8DATA, 16,1,8, false, 0, "R_IP2K_EX8DATA", 0, 0x00ff),
+ IP2K_HOWTO (R_IP2K_EX8DATA, 16,2,8, false, 0, "R_IP2K_EX8DATA", 0, 0x00ff),
};
HOWTO (R_IQ2000_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_IQ2000_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_IQ2000_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
31, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 26 bit branch address. */
HOWTO (R_IQ2000_26, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16 bit PC relative reference. */
HOWTO (R_IQ2000_PC16, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* high 16 bits of symbol value. */
HOWTO (R_IQ2000_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 16 bits of symbol value. */
HOWTO (R_IQ2000_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit jump offset. */
HOWTO (R_IQ2000_OFFSET_16, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 21-bit jump offset. */
HOWTO (R_IQ2000_OFFSET_21, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* unsigned high 16 bits of value. */
HOWTO (R_IQ2000_OFFSET_21, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute debug relocation. */
HOWTO (R_IQ2000_32_DEBUG, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type iq2000_elf_vtinherit_howto =
HOWTO (R_IQ2000_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type iq2000_elf_vtentry_howto =
HOWTO (R_IQ2000_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_LM32_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_LM32_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_LM32_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_LM32_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_GPREL16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_CALL, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_BRANCH, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_LM32_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_LM32_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_16_GOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_GOTOFF_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_GOTOFF_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_LM32_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_M32C_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
about overflow. */
HOWTO (R_M32C_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_8_PCREL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_16_PCREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_LO16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_HI8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_HI16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_RL_JUMP, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_RL_1ADDR, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32C_RL_2ADDR, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_M32R_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_M32R_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_M32R_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 24 bit address. */
HOWTO (R_M32R_24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
again. */
HOWTO (R_M32R_10_PCREL, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 18 bit relocation, right shifted by 2. */
HOWTO (R_M32R_18_PCREL, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
again. */
HOWTO (R_M32R_26_PCREL, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 16 bits of address when lower 16 is or'd in. */
HOWTO (R_M32R_HI16_ULO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 16 bits of address when lower 16 is added in. */
HOWTO (R_M32R_HI16_SLO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 16 bits of address. */
HOWTO (R_M32R_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 16 bits offset. */
HOWTO (R_M32R_SDA16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_M32R_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_M32R_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_M32R_16_RELA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_M32R_32_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 24 bit address. */
HOWTO (R_M32R_24_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32R_10_PCREL_RELA, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 18 bit relocation, right shifted by 2. */
HOWTO (R_M32R_18_PCREL_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 26 bit relocation, right shifted by 2. */
HOWTO (R_M32R_26_PCREL_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 16 bits of address when lower 16 is or'd in. */
HOWTO (R_M32R_HI16_ULO_RELA, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 16 bits of address when lower 16 is added in. */
HOWTO (R_M32R_HI16_SLO_RELA, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 16 bits of address. */
HOWTO (R_M32R_LO16_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 16 bits offset. */
HOWTO (R_M32R_SDA16_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_M32R_RELA_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_M32R_RELA_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit PC relative relocation. */
HOWTO (R_M32R_REL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_M32R_GOT24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
entry for the symbol. */
HOWTO (R_M32R_26_PLTREL, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
run has to have the data at some particular address. */
HOWTO (R_M32R_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
entries. */
HOWTO (R_M32R_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Marks a procedure linkage table entry for a symbol. */
HOWTO (R_M32R_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
addend. */
HOWTO (R_M32R_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32R_GOTOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
table register. */
HOWTO (R_M32R_GOTPC24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_M32R_GOT16_HI_ULO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_M32R_GOT16_HI_SLO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_M32R_GOT16_LO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_M32R_GOTPC_HI_ULO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_M32R_GOTPC_HI_SLO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO (R_M32R_GOTPC_LO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32R_GOTOFF_HI_ULO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32R_GOTOFF_HI_SLO, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_M32R_GOTOFF_LO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_M68HC11_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation */
HOWTO (R_M68HC11_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation (upper address) */
HOWTO (R_M68HC11_HI8, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation (upper address) */
HOWTO (R_M68HC11_LO8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit PC-rel relocation */
HOWTO (R_M68HC11_PCREL_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation */
HOWTO (R_M68HC11_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
code relocation. It's used by gas for -gstabs generation. */
HOWTO (R_M68HC11_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 3 bit absolute relocation */
HOWTO (R_M68HC11_3B, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
3, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit PC-rel relocation */
HOWTO (R_M68HC11_PCREL_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_M68HC11_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_M68HC11_GNU_VTENTRY, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 24 bit relocation */
HOWTO (R_M68HC11_24, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16-bit low relocation */
HOWTO (R_M68HC11_LO16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A page relocation */
HOWTO (R_M68HC11_PAGE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Mark beginning of a jump instruction (any form). */
HOWTO (R_M68HC11_RL_JUMP, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Mark beginning of Gcc relaxation group instruction. */
HOWTO (R_M68HC11_RL_GROUP, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_M68HC11_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation */
HOWTO (R_M68HC11_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation (upper address) */
HOWTO (R_M68HC11_HI8, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation (upper address) */
HOWTO (R_M68HC11_LO8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit PC-rel relocation */
HOWTO (R_M68HC11_PCREL_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation */
HOWTO (R_M68HC11_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
code relocation. It's used by gas for -gstabs generation. */
HOWTO (R_M68HC11_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 3 bit absolute relocation */
HOWTO (R_M68HC11_3B, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
3, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit PC-rel relocation */
HOWTO (R_M68HC11_PCREL_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_M68HC11_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_M68HC11_GNU_VTENTRY, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 24 bit relocation */
HOWTO (R_M68HC11_24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16-bit low relocation */
HOWTO (R_M68HC11_LO16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A page relocation */
HOWTO (R_M68HC11_PAGE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_M68HC12_16B, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 9 bit PC-rel relocation. */
HOWTO (R_M68HC12_PCREL_9, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize (result is >>1) */
true, /* pc_relative */
0, /* bitpos */
/* A 10 bit PC-rel relocation. */
HOWTO (R_M68HC12_PCREL_10, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize (result is >>1) */
true, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation (upper address). */
HOWTO (R_M68HC12_HI8XG, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation (lower address). */
HOWTO (R_M68HC12_LO8XG, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Mark beginning of a jump instruction (any form). */
HOWTO (R_M68HC11_RL_JUMP, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Mark beginning of Gcc relaxation group instruction. */
HOWTO (R_M68HC11_RL_GROUP, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type howto_table[] =
{
- HOWTO(R_68K_NONE, 0, 3, 0, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_NONE", false, 0, 0x00000000,false),
- HOWTO(R_68K_32, 0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_32", false, 0, 0xffffffff,false),
- HOWTO(R_68K_16, 0, 1,16, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_16", false, 0, 0x0000ffff,false),
- HOWTO(R_68K_8, 0, 0, 8, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_8", false, 0, 0x000000ff,false),
- HOWTO(R_68K_PC32, 0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32", false, 0, 0xffffffff,true),
- HOWTO(R_68K_PC16, 0, 1,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC16", false, 0, 0x0000ffff,true),
- HOWTO(R_68K_PC8, 0, 0, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC8", false, 0, 0x000000ff,true),
- HOWTO(R_68K_GOT32, 0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32", false, 0, 0xffffffff,true),
- HOWTO(R_68K_GOT16, 0, 1,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16", false, 0, 0x0000ffff,true),
- HOWTO(R_68K_GOT8, 0, 0, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8", false, 0, 0x000000ff,true),
- HOWTO(R_68K_GOT32O, 0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O", false, 0, 0xffffffff,false),
- HOWTO(R_68K_GOT16O, 0, 1,16, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16O", false, 0, 0x0000ffff,false),
- HOWTO(R_68K_GOT8O, 0, 0, 8, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8O", false, 0, 0x000000ff,false),
- HOWTO(R_68K_PLT32, 0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32", false, 0, 0xffffffff,true),
- HOWTO(R_68K_PLT16, 0, 1,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16", false, 0, 0x0000ffff,true),
- HOWTO(R_68K_PLT8, 0, 0, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8", false, 0, 0x000000ff,true),
- HOWTO(R_68K_PLT32O, 0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O", false, 0, 0xffffffff,false),
- HOWTO(R_68K_PLT16O, 0, 1,16, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16O", false, 0, 0x0000ffff,false),
- HOWTO(R_68K_PLT8O, 0, 0, 8, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8O", false, 0, 0x000000ff,false),
- HOWTO(R_68K_COPY, 0, 0, 0, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_COPY", false, 0, 0xffffffff,false),
- HOWTO(R_68K_GLOB_DAT, 0, 2,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_GLOB_DAT", false, 0, 0xffffffff,false),
- HOWTO(R_68K_JMP_SLOT, 0, 2,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_JMP_SLOT", false, 0, 0xffffffff,false),
- HOWTO(R_68K_RELATIVE, 0, 2,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_RELATIVE", false, 0, 0xffffffff,false),
+ HOWTO(R_68K_NONE, 0, 0, 0, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_NONE", false, 0, 0x00000000,false),
+ HOWTO(R_68K_32, 0, 4,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_32", false, 0, 0xffffffff,false),
+ HOWTO(R_68K_16, 0, 2,16, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_16", false, 0, 0x0000ffff,false),
+ HOWTO(R_68K_8, 0, 1, 8, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_8", false, 0, 0x000000ff,false),
+ HOWTO(R_68K_PC32, 0, 4,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32", false, 0, 0xffffffff,true),
+ HOWTO(R_68K_PC16, 0, 2,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC16", false, 0, 0x0000ffff,true),
+ HOWTO(R_68K_PC8, 0, 1, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC8", false, 0, 0x000000ff,true),
+ HOWTO(R_68K_GOT32, 0, 4,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32", false, 0, 0xffffffff,true),
+ HOWTO(R_68K_GOT16, 0, 2,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16", false, 0, 0x0000ffff,true),
+ HOWTO(R_68K_GOT8, 0, 1, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8", false, 0, 0x000000ff,true),
+ HOWTO(R_68K_GOT32O, 0, 4,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O", false, 0, 0xffffffff,false),
+ HOWTO(R_68K_GOT16O, 0, 2,16, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16O", false, 0, 0x0000ffff,false),
+ HOWTO(R_68K_GOT8O, 0, 1, 8, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8O", false, 0, 0x000000ff,false),
+ HOWTO(R_68K_PLT32, 0, 4,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32", false, 0, 0xffffffff,true),
+ HOWTO(R_68K_PLT16, 0, 2,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16", false, 0, 0x0000ffff,true),
+ HOWTO(R_68K_PLT8, 0, 1, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8", false, 0, 0x000000ff,true),
+ HOWTO(R_68K_PLT32O, 0, 4,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O", false, 0, 0xffffffff,false),
+ HOWTO(R_68K_PLT16O, 0, 2,16, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16O", false, 0, 0x0000ffff,false),
+ HOWTO(R_68K_PLT8O, 0, 1, 8, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8O", false, 0, 0x000000ff,false),
+ HOWTO(R_68K_COPY, 0, 1, 0, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_COPY", false, 0, 0xffffffff,false),
+ HOWTO(R_68K_GLOB_DAT, 0, 4,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_GLOB_DAT", false, 0, 0xffffffff,false),
+ HOWTO(R_68K_JMP_SLOT, 0, 4,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_JMP_SLOT", false, 0, 0xffffffff,false),
+ HOWTO(R_68K_RELATIVE, 0, 4,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_RELATIVE", false, 0, 0xffffffff,false),
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_68K_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_68K_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS general dynamic variable reference. */
HOWTO (R_68K_TLS_GD32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_GD16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_GD8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS local dynamic variable reference. */
HOWTO (R_68K_TLS_LDM32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_LDM16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_LDM8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_LDO32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_LDO16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_LDO8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS initial execution variable reference. */
HOWTO (R_68K_TLS_IE32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_IE16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_IE8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS local execution variable reference. */
HOWTO (R_68K_TLS_LE32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_LE16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_LE8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS GD/LD dynamic relocations. */
HOWTO (R_68K_TLS_DTPMOD32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_DTPREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_68K_TLS_TPREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_MCORE_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A standard 32 bit relocation. */
HOWTO (R_MCORE_ADDR32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
Should not appear in object files. */
HOWTO (R_MCORE_PCRELIMM8BY4, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
Only useful pieces at the relocated address are the opcode (5 bits) */
HOWTO (R_MCORE_PCRELIMM11BY2,/* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 4 bits + 1 zero bit; 'loopt' instruction only; unsupported. */
HOWTO (R_MCORE_PCRELIMM4BY2, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
4, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32-bit pc-relative. Eventually this will help support PIC code. */
HOWTO (R_MCORE_PCREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
is a relocation that we are allowed to safely ignore. */
HOWTO (R_MCORE_PCRELJSR_IMM11BY2,/* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_MCORE_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_MCORE_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MCORE_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type mep_elf_howto_table [] =
{
/* type, size, bits, leftshift, rightshift, pcrel, OD/OS/OU, mask. */
- MEPREL (R_MEP_NONE, 3, 0, 0, 0, 0, N, 0),
- MEPREL (R_RELC, 0, 0, 0, 0, 0, N, 0),
+ MEPREL (R_MEP_NONE, 0, 0, 0, 0, 0, N, 0),
+ MEPREL (R_RELC, 1, 0, 0, 0, 0, N, 0),
/* MEPRELOC:HOWTO */
/* This section generated from bfd/mep-relocs.pl from include/elf/mep.h. */
- MEPREL (R_MEP_8, 0, 8, 0, 0, 0, U, 0xff),
- MEPREL (R_MEP_16, 1, 16, 0, 0, 0, U, 0xffff),
- MEPREL (R_MEP_32, 2, 32, 0, 0, 0, U, 0xffffffff),
- MEPREL (R_MEP_PCREL8A2, 1, 8, 1, 1, 1, S, 0x00fe),
- MEPREL (R_MEP_PCREL12A2,1, 12, 1, 1, 1, S, 0x0ffe),
- MEPREL (R_MEP_PCREL17A2,2, 17, 0, 1, 1, S, 0x0000ffff),
- MEPREL (R_MEP_PCREL24A2,2, 24, 0, 1, 1, S, 0x07f0ffff),
- MEPREL (R_MEP_PCABS24A2,2, 24, 0, 1, 0, U, 0x07f0ffff),
- MEPREL (R_MEP_LOW16, 2, 16, 0, 0, 0, N, 0x0000ffff),
- MEPREL (R_MEP_HI16U, 2, 32, 0,16, 0, N, 0x0000ffff),
- MEPREL (R_MEP_HI16S, 2, 32, 0,16, 0, N, 0x0000ffff),
- MEPREL (R_MEP_GPREL, 2, 16, 0, 0, 0, S, 0x0000ffff),
- MEPREL (R_MEP_TPREL, 2, 16, 0, 0, 0, S, 0x0000ffff),
- MEPREL (R_MEP_TPREL7, 1, 7, 0, 0, 0, U, 0x007f),
- MEPREL (R_MEP_TPREL7A2, 1, 7, 1, 1, 0, U, 0x007e),
- MEPREL (R_MEP_TPREL7A4, 1, 7, 2, 2, 0, U, 0x007c),
- MEPREL (R_MEP_UIMM24, 2, 24, 0, 0, 0, U, 0x00ffffff),
- MEPREL (R_MEP_ADDR24A4, 2, 24, 0, 2, 0, U, 0x00fcffff),
- MEPREL (R_MEP_GNU_VTINHERIT,1, 0,16,32, 0, N, 0x0000),
- MEPREL (R_MEP_GNU_VTENTRY,1, 0,16,32, 0, N, 0x0000),
+ MEPREL (R_MEP_8, 1, 8, 0, 0, 0, U, 0xff),
+ MEPREL (R_MEP_16, 2, 16, 0, 0, 0, U, 0xffff),
+ MEPREL (R_MEP_32, 4, 32, 0, 0, 0, U, 0xffffffff),
+ MEPREL (R_MEP_PCREL8A2, 2, 8, 1, 1, 1, S, 0x00fe),
+ MEPREL (R_MEP_PCREL12A2,2, 12, 1, 1, 1, S, 0x0ffe),
+ MEPREL (R_MEP_PCREL17A2,4, 17, 0, 1, 1, S, 0x0000ffff),
+ MEPREL (R_MEP_PCREL24A2,4, 24, 0, 1, 1, S, 0x07f0ffff),
+ MEPREL (R_MEP_PCABS24A2,4, 24, 0, 1, 0, U, 0x07f0ffff),
+ MEPREL (R_MEP_LOW16, 4, 16, 0, 0, 0, N, 0x0000ffff),
+ MEPREL (R_MEP_HI16U, 4, 32, 0,16, 0, N, 0x0000ffff),
+ MEPREL (R_MEP_HI16S, 4, 32, 0,16, 0, N, 0x0000ffff),
+ MEPREL (R_MEP_GPREL, 4, 16, 0, 0, 0, S, 0x0000ffff),
+ MEPREL (R_MEP_TPREL, 4, 16, 0, 0, 0, S, 0x0000ffff),
+ MEPREL (R_MEP_TPREL7, 2, 7, 0, 0, 0, U, 0x007f),
+ MEPREL (R_MEP_TPREL7A2, 2, 7, 1, 1, 0, U, 0x007e),
+ MEPREL (R_MEP_TPREL7A4, 2, 7, 2, 2, 0, U, 0x007c),
+ MEPREL (R_MEP_UIMM24, 4, 24, 0, 0, 0, U, 0x00ffffff),
+ MEPREL (R_MEP_ADDR24A4, 4, 24, 0, 2, 0, U, 0x00fcffff),
+ MEPREL (R_MEP_GNU_VTINHERIT,2, 0,16,32, 0, N, 0x0000),
+ MEPREL (R_MEP_GNU_VTENTRY,2, 0,16,32, 0, N, 0x0000),
/* MEPRELOC:END */
};
/* High order 16 bit absolute. */
HOWTO (R_METAG_HIADDR16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* Low order 16 bit absolute. */
HOWTO (R_METAG_LOADDR16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* 32 bit absolute. */
HOWTO (R_METAG_ADDR32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* No relocation. */
HOWTO (R_METAG_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 19 bit pc relative */
HOWTO (R_METAG_RELBRANCH, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
5, /* bitpos */
/* GET/SET offset */
HOWTO (R_METAG_GETSETOFF, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
12, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
HOWTO (R_METAG_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_METAG_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High order 16 bit GOT offset */
HOWTO (R_METAG_HI16_GOTOFF, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* Low order 16 bit GOT offset */
HOWTO (R_METAG_LO16_GOTOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* GET/SET GOT offset */
HOWTO (R_METAG_GETSET_GOTOFF, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
12, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
/* GET/SET GOT relative */
HOWTO (R_METAG_GETSET_GOT, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
12, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
/* High order 16 bit GOT reference */
HOWTO (R_METAG_HI16_GOTPC, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* Low order 16 bit GOT reference */
HOWTO (R_METAG_LO16_GOTPC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* High order 16 bit PLT */
HOWTO (R_METAG_HI16_PLT, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* Low order 16 bit PLT */
HOWTO (R_METAG_LO16_PLT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_RELBRANCH_PLT, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
5, /* bitpos */
/* Dummy relocs used by the linker internally. */
HOWTO (R_METAG_GOTOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_METAG_PLT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
run has to have the data at some particular address. */
HOWTO (R_METAG_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Marks a procedure linkage table entry for a symbol. */
HOWTO (R_METAG_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
addend. */
HOWTO (R_METAG_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_METAG_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_METAG_TLS_GD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_LDM, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_LDO_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_LDO_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* Dummy reloc used by the linker internally. */
HOWTO (R_METAG_TLS_LDO, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_IE, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
/* Dummy reloc used by the linker internally. */
HOWTO (R_METAG_TLS_IENONPIC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_IENONPIC_HI16,/* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_IENONPIC_LO16,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_TPOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_METAG_TLS_DTPMOD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_METAG_TLS_DTPOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Dummy reloc used by the linker internally. */
HOWTO (R_METAG_TLS_LE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_METAG_TLS_LE_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
HOWTO (R_METAG_TLS_LE_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
3, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_MICROBLAZE_NONE, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A standard 32 bit relocation. */
HOWTO (R_MICROBLAZE_32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A standard PCREL 32 bit relocation. */
HOWTO (R_MICROBLAZE_32_PCREL,/* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit PCREL relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_64_PCREL,/* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* The low half of a PCREL 32 bit relocation. */
HOWTO (R_MICROBLAZE_32_PCREL_LO, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit relocation. Table entry not really used. */
HOWTO (R_MICROBLAZE_64, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* The low half of a 32 bit relocation. */
HOWTO (R_MICROBLAZE_32_LO, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Read-only small data section relocation. */
HOWTO (R_MICROBLAZE_SRO32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Read-write small data area relocation. */
HOWTO (R_MICROBLAZE_SRW32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* This reloc does nothing. Used for relaxation. */
HOWTO (R_MICROBLAZE_64_NONE, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* Symbol Op Symbol relocation. */
HOWTO (R_MICROBLAZE_32_SYM_OP_SYM, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_MICROBLAZE_GNU_VTINHERIT, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_MICROBLAZE_GNU_VTENTRY, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit GOTPC relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_GOTPC_64, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit TEXTPCREL relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_TEXTPCREL_64, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit GOT relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_GOT_64, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit TEXTREL relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_TEXTREL_64, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit PLT relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_PLT_64, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* Table-entry not really used. */
HOWTO (R_MICROBLAZE_REL, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* Table-entry not really used. */
HOWTO (R_MICROBLAZE_JUMP_SLOT,/* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* Table-entry not really used. */
HOWTO (R_MICROBLAZE_GLOB_DAT,/* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A 64 bit GOT relative relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_GOTOFF_64, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A 32 bit GOT relative relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_GOTOFF_32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* COPY relocation. Table-entry not really used. */
HOWTO (R_MICROBLAZE_COPY, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Marker relocs for TLS. */
HOWTO (R_MICROBLAZE_TLS,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MICROBLAZE_TLSGD,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MICROBLAZE_TLSLD,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
definition of its TLS sym. */
HOWTO (R_MICROBLAZE_TLSDTPMOD32,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
contains the definition of sym, minus 0x8000. Used for initializing GOT */
HOWTO (R_MICROBLAZE_TLSDTPREL32,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
contains the definition of sym, minus 0x8000. */
HOWTO (R_MICROBLAZE_TLSDTPREL64,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
sym+add and the value of the thread pointer (r13). */
HOWTO (R_MICROBLAZE_TLSGOTTPREL32,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
sym+add and the value of the thread pointer (r13). */
HOWTO (R_MICROBLAZE_TLSTPREL32,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
needed to put the most significant bit in the right place. */
HOWTO (R_MIPS_SHIFT6, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
6, /* bitsize */
false, /* pc_relative */
6, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 64 bit subtraction. Used in the N32 ABI. */
HOWTO (R_MIPS_SUB, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
HOWTO (R_MIPS_PCHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MIPS_PCLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf_mips_ctor64_howto =
HOWTO (R_MIPS_64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
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 */
static reloc_howto_type elf_mips_copy_howto =
HOWTO (R_MIPS_COPY, /* type */
0, /* rightshift */
- 0, /* this one is variable size */
+ 1, /* this one is variable size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
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 */
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 */
/* This reloc does nothing. */
HOWTO (R_MOXIE_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_MOXIE_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 10 bit PC-relative relocation. */
HOWTO (R_MOXIE_PCREL10, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
10, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
{
HOWTO (R_MSP430_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 10 bit PC relative relocation. */
HOWTO (R_MSP430_10_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_MSP430_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit PC relative relocation for command address. */
HOWTO (R_MSP430_16_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation, byte operations. */
HOWTO (R_MSP430_16_BYTE, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation for command address. */
HOWTO (R_MSP430_16_PCREL_BYTE,/* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 10 bit PC relative relocation for complicated polymorphs. */
HOWTO (R_MSP430_2X_PCREL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit relaxable relocation for command address. */
HOWTO (R_MSP430_RL_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 8-bit absolute relocation. */
, HOWTO (R_MSP430_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between two symbols to be the real addend of the second reloc. */
HOWTO (R_MSP430_SYM_DIFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
size is one byte here. */
HOWTO (R_MSP430_GNU_SET_ULEB128, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
size is one byte here. */
HOWTO (R_MSP430_GNU_SUB_ULEB128, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_MSP430_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430_ABS32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430_ABS16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430_ABS8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430_PCR16, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_PCR20_EXT_SRC,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_PCR20_EXT_DST,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_PCR20_EXT_ODST,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_ABS20_EXT_SRC,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_ABS20_EXT_DST,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_ABS20_EXT_ODST,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_ABS20_ADR_SRC,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_ABS20_ADR_DST,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_PCR16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_PCR20_CALL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430X_ABS16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430_ABS_HI16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MSP430_PREL31, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 10 bit PC relative relocation. */
HOWTO (R_MSP430X_10_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 10 bit PC relative relocation for complicated polymorphs. */
HOWTO (R_MSP430X_2X_PCREL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
between two symbols to be the real addend of the second reloc. */
HOWTO (R_MSP430X_SYM_DIFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
size is one byte here. */
HOWTO (R_MSP430X_GNU_SET_ULEB128, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
size is one byte here. */
HOWTO (R_MSP430X_GNU_SUB_ULEB128, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_MT_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_MT_16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_MT_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit pc-relative relocation. */
HOWTO (R_MT_32_PCREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit pc-relative relocation. */
HOWTO (R_MT_PC16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* high 16 bits of symbol value. */
HOWTO (R_MT_HI16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 16 bits of symbol value. */
HOWTO (R_MT_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO2 (R_NDS32_NONE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO2 (R_NDS32_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO2 (R_NDS32_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 20 bit address. */
HOWTO2 (R_NDS32_20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
again. */
HOWTO2 (R_NDS32_9_PCREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 15 bit relocation, right shifted by 1. */
HOWTO2 (R_NDS32_15_PCREL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
14, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 17 bit relocation, right shifted by 1. */
HOWTO2 (R_NDS32_17_PCREL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
again. */
HOWTO2 (R_NDS32_25_PCREL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 20 bits of address when lower 12 is or'd in. */
HOWTO2 (R_NDS32_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S3, /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
9, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S2, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S1, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
11, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 15 bits offset. */
HOWTO2 (R_NDS32_SDA15S3, /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 15 bits offset. */
HOWTO2 (R_NDS32_SDA15S2, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 15 bits offset. */
HOWTO2 (R_NDS32_SDA15S1, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 15 bits offset. */
HOWTO2 (R_NDS32_SDA15S0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO2 (R_NDS32_GNU_VTINHERIT,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO2 (R_NDS32_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO2 (R_NDS32_16_RELA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO2 (R_NDS32_32_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 20 bit address. */
HOWTO2 (R_NDS32_20_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_9_PCREL_RELA, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 15 bit relocation, right shifted by 1. */
HOWTO2 (R_NDS32_15_PCREL_RELA,/* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
14, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 17 bit relocation, right shifted by 1. */
HOWTO2 (R_NDS32_17_PCREL_RELA,/* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative 25 bit relocation, right shifted by 2. */
HOWTO2 (R_NDS32_25_PCREL_RELA,/* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 20 bits of address when lower 16 is or'd in. */
HOWTO2 (R_NDS32_HI20_RELA, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S3_RELA, /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
9, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S2_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S1_RELA, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
11, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S0_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 15 bits offset. */
HOWTO2 (R_NDS32_SDA15S3_RELA, /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 15 bits offset. */
HOWTO2 (R_NDS32_SDA15S2_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_SDA15S1_RELA, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_SDA15S0_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO2 (R_NDS32_RELA_GNU_VTINHERIT,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO2 (R_NDS32_RELA_GNU_VTENTRY,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO2 (R_NDS32_GOT20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
entry for the symbol. */
HOWTO2 (R_NDS32_25_PLTREL, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
run has to have the data at some particular address. */
HOWTO2 (R_NDS32_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
entries. */
HOWTO2 (R_NDS32_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Marks a procedure linkage table entry for a symbol. */
HOWTO2 (R_NDS32_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
addend. */
HOWTO2 (R_NDS32_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_GOTOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
table register. */
HOWTO2 (R_NDS32_GOTPC20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO2 (R_NDS32_GOT_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x000fffff, /* src_mask */
0x000fffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_GOT_LO12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the symbol. */
HOWTO2 (R_NDS32_GOTPC_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x000fffff, /* src_mask */
0x000fffff, /* dst_mask */
true), /* pcrel_offset */
+
HOWTO2 (R_NDS32_GOTPC_LO12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_GOTOFF_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x000fffff, /* src_mask */
0x000fffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_GOTOFF_LO12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
in order to make next label aligned on word boundary. */
HOWTO2 (R_NDS32_INSN16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Alignment hint for label. */
HOWTO2 (R_NDS32_LABEL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for unconditional call sequence */
HOWTO2 (R_NDS32_LONGCALL1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional call sequence. */
HOWTO2 (R_NDS32_LONGCALL2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional call sequence. */
HOWTO2 (R_NDS32_LONGCALL3, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for unconditional branch sequence. */
HOWTO2 (R_NDS32_LONGJUMP1, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional branch sequence. */
HOWTO2 (R_NDS32_LONGJUMP2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional branch sequence. */
HOWTO2 (R_NDS32_LONGJUMP3, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for load/store sequence. */
HOWTO2 (R_NDS32_LOADSTORE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for load/store sequence. */
HOWTO2 (R_NDS32_9_FIXED_RELA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for load/store sequence. */
HOWTO2 (R_NDS32_15_FIXED_RELA,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for load/store sequence. */
HOWTO2 (R_NDS32_17_FIXED_RELA,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for load/store sequence. */
HOWTO2 (R_NDS32_25_FIXED_RELA,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 20 bits of PLT symbol offset relative to PC. */
HOWTO2 (R_NDS32_PLTREL_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 12 bits of PLT symbol offset relative to PC. */
HOWTO2 (R_NDS32_PLTREL_LO12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 20 bits of PLT symbol offset relative to GOT (GP). */
HOWTO2 (R_NDS32_PLT_GOTREL_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 12 bits of PLT symbol offset relative to GOT (GP). */
HOWTO2 (R_NDS32_PLT_GOTREL_LO12,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 12 bits offset. */
HOWTO2 (R_NDS32_SDA12S2_DP_RELA,/* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 12 bits offset. */
HOWTO2 (R_NDS32_SDA12S2_SP_RELA,/* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_LO12S2_DP_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 12 bits of address. */
HOWTO2 (R_NDS32_LO12S2_SP_RELA,/* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x000003ff, /* src_mask */
0x000003ff, /* dst_mask */
false), /* pcrel_offset */
+
/* Lower 12 bits of address. Special identity for or case. */
HOWTO2 (R_NDS32_LO12S0_ORI_RELA,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x00000fff, /* src_mask */
0x00000fff, /* dst_mask */
false), /* pcrel_offset */
+
/* Small data area 19 bits offset. */
HOWTO2 (R_NDS32_SDA16S3_RELA, /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Small data area 15 bits offset. */
HOWTO2 (R_NDS32_SDA17S2_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_SDA18S1_RELA, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_SDA19S0_RELA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO2 (R_NDS32_DWARF2_OP1_RELA,/* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xff, /* src_mask */
0xff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_DWARF2_OP2_RELA,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffff, /* src_mask */
0xffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_DWARF2_LEB_RELA,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_UPDATE_TA_RELA,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffff, /* src_mask */
0xffff, /* dst_mask */
false), /* pcrel_offset */
+
/* Like R_NDS32_PCREL, but referring to the procedure linkage table
entry for the symbol. */
HOWTO2 (R_NDS32_9_PLTREL, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
0xff, /* src_mask */
0xff, /* dst_mask */
true), /* pcrel_offset */
+
/* Low 20 bits of PLT symbol offset relative to GOT (GP). */
HOWTO2 (R_NDS32_PLT_GOTREL_LO20,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x000fffff, /* src_mask */
0x000fffff, /* dst_mask */
false), /* pcrel_offset */
+
/* low 15 bits of PLT symbol offset relative to GOT (GP) */
HOWTO2 (R_NDS32_PLT_GOTREL_LO15,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x00007fff, /* src_mask */
0x00007fff, /* dst_mask */
false), /* pcrel_offset */
+
/* Low 19 bits of PLT symbol offset relative to GOT (GP). */
HOWTO2 (R_NDS32_PLT_GOTREL_LO19,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x0007ffff, /* src_mask */
0x0007ffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_GOT_LO15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x00007fff, /* src_mask */
0x00007fff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_GOT_LO19, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x0007ffff, /* src_mask */
0x0007ffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_GOTOFF_LO15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x00007fff, /* src_mask */
0x00007fff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_GOTOFF_LO19, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x0007ffff, /* src_mask */
0x0007ffff, /* dst_mask */
false), /* pcrel_offset */
+
/* GOT 15 bits offset. */
HOWTO2 (R_NDS32_GOT15S2_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x00007fff, /* src_mask */
0x00007fff, /* dst_mask */
false), /* pcrel_offset */
+
/* GOT 17 bits offset. */
HOWTO2 (R_NDS32_GOT17S2_RELA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x0001ffff, /* src_mask */
0x0001ffff, /* dst_mask */
false), /* pcrel_offset */
+
/* A 5 bit address. */
HOWTO2 (R_NDS32_5_RELA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
5, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x1f, /* src_mask */
0x1f, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_10_UPCREL_RELA,/* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
9, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
0x1ff, /* src_mask */
0x1ff, /* dst_mask */
true), /* pcrel_offset */
+
HOWTO2 (R_NDS32_SDA_FP7U2_RELA,/* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
7, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x0000007f, /* src_mask */
0x0000007f, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_WORD_9_PCREL_RELA,/* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
0xff, /* src_mask */
0xff, /* dst_mask */
true), /* pcrel_offset */
+
HOWTO2 (R_NDS32_25_ABS_RELA, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A relative 17 bit relocation for ifc, right shifted by 1. */
HOWTO2 (R_NDS32_17IFC_PCREL_RELA,/* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A relative unsigned 10 bit relocation for ifc, right shifted by 1. */
HOWTO2 (R_NDS32_10IFCU_PCREL_RELA,/* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
9, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Like R_NDS32_HI20, but referring to the TLS LE entry for the symbol. */
HOWTO2 (R_NDS32_TLS_LE_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_TLS_LE_LO12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Like R_NDS32_HI20, but referring to the TLS IE entry for the symbol. */
HOWTO2 (R_NDS32_TLS_IE_HI20, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_TLS_IE_LO12S2,/* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS LE TP offset relocation */
HOWTO2 (R_NDS32_TLS_TPOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 20 bit address. */
HOWTO2 (R_NDS32_TLS_LE_20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_TLS_LE_15S0, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x7fff, /* src_mask */
0x7fff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_TLS_LE_15S1, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x7fff, /* src_mask */
0x7fff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO2 (R_NDS32_TLS_LE_15S2, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for unconditional call sequence */
HOWTO2 (R_NDS32_LONGCALL4, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional call sequence. */
HOWTO2 (R_NDS32_LONGCALL5, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional call sequence. */
HOWTO2 (R_NDS32_LONGCALL6, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for unconditional branch sequence. */
HOWTO2 (R_NDS32_LONGJUMP4, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional branch sequence. */
HOWTO2 (R_NDS32_LONGJUMP5, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional branch sequence. */
HOWTO2 (R_NDS32_LONGJUMP6, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relax hint for conditional branch sequence. */
HOWTO2 (R_NDS32_LONGJUMP7, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_TLS_IE_LO12, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
entry for the symbol. */
HOWTO2 (R_NDS32_TLS_IEGP_HI20,/* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_TLS_IEGP_LO12,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO2 (R_NDS32_TLS_IEGP_LO12S2,/* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS description relocation */
HOWTO2 (R_NDS32_TLS_DESC, /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS GD/LD description offset high part. */
HOWTO2 (R_NDS32_TLS_DESC_HI20,/* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS GD/LD description offset low part. */
HOWTO2 (R_NDS32_TLS_DESC_LO12,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS GD/LD description offset set (movi). */
HOWTO2 (R_NDS32_TLS_DESC_20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS GD/LD description offset set (lwi.gp). */
HOWTO2 (R_NDS32_TLS_DESC_SDA17S2,/* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type nds32_elf_relax_howto_table[] = {
HOWTO3 (R_NDS32_RELAX_ENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_GOT_SUFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_GOTOFF_SUFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_PLT_GOT_SUFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_MULCALL_SUFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_PTR, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_PTR_COUNT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_PTR_RESOLVED, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_PLTBLOCK, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_RELAX_REGION_BEGIN,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_RELAX_REGION_END,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_MINUEND, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_SUBTRAHEND, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_DIFF8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x000000ff, /* src_mask */
0x000000ff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_DIFF16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_DIFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_DIFF_ULEB128, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_DATA, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_TRAN, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_TLS_LE_ADD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_TLS_LE_LS, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_EMPTY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
/* TLS GD/LD description address base addition. */
HOWTO3 (R_NDS32_TLS_DESC_ADD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
/* TLS GD/LD description function load. */
HOWTO3 (R_NDS32_TLS_DESC_FUNC,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
/* TLS DESC resolve function call. */
HOWTO3 (R_NDS32_TLS_DESC_CALL,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
/* TLS DESC variable access. */
HOWTO3 (R_NDS32_TLS_DESC_MEM, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
/* TLS GD/LD description mark (@tlsdec). */
HOWTO3 (R_NDS32_RELAX_REMOVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
/* TLS GD/LD description mark (@tlsdec). */
HOWTO3 (R_NDS32_RELAX_GROUP, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
HOWTO3 (R_NDS32_TLS_IEGP_LW, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+
/* LA and FLSI relaxation. */
HOWTO3 (R_NDS32_LSI, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
bfd_vma off;
static reloc_howto_type none_howto
- = HOWTO (0, 0, 3, 0, false, 0, complain_overflow_dont, NULL,
+ = HOWTO (0, 0, 0, 0, false, 0, complain_overflow_dont, NULL,
"unused", false, 0, 0, false);
off = (*parent)->address * OCTETS_PER_BYTE (input_bfd,
/* No relocation. */
HOWTO (R_NIOS2_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit signed immediate relocation. */
HOWTO (R_NIOS2_S16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
6, /* bitpos */
/* 16-bit unsigned immediate relocation. */
HOWTO (R_NIOS2_U16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
6, /* bitpos */
HOWTO (R_NIOS2_PCREL16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
6, /* bitpos */
HOWTO (R_NIOS2_CALL26, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
6, /* bitpos */
HOWTO (R_NIOS2_IMM5,
0,
- 2,
+ 4,
5,
false,
6,
HOWTO (R_NIOS2_CACHE_OPX,
0,
- 2,
+ 4,
5,
false,
22,
HOWTO (R_NIOS2_IMM6,
0,
- 2,
+ 4,
6,
false,
6,
HOWTO (R_NIOS2_IMM8,
0,
- 2,
+ 4,
8,
false,
6,
HOWTO (R_NIOS2_HI16,
0,
- 2,
+ 4,
32,
false,
6,
HOWTO (R_NIOS2_LO16,
0,
- 2,
+ 4,
32,
false,
6,
HOWTO (R_NIOS2_HIADJ16,
0,
- 2,
+ 4,
32,
false,
6,
HOWTO (R_NIOS2_BFD_RELOC_32,
0,
- 2, /* long */
+ 4, /* long */
32,
false,
0,
HOWTO (R_NIOS2_BFD_RELOC_16,
0,
- 1, /* short */
+ 2, /* short */
16,
false,
0,
HOWTO (R_NIOS2_BFD_RELOC_8,
0,
- 0, /* byte */
+ 1, /* byte */
8,
false,
0,
HOWTO (R_NIOS2_GPREL,
0,
- 2,
+ 4,
32,
false,
6,
HOWTO (R_NIOS2_GNU_VTINHERIT,
0,
- 2, /* short */
+ 4,
0,
false,
0,
HOWTO (R_NIOS2_GNU_VTENTRY,
0,
- 2, /* byte */
+ 4,
0,
false,
0,
HOWTO (R_NIOS2_UJMP,
0,
- 2,
+ 4,
32,
false,
6,
HOWTO (R_NIOS2_CJMP,
0,
- 2,
+ 4,
32,
false,
6,
HOWTO (R_NIOS2_CALLR,
0,
- 2,
+ 4,
32,
false,
6,
HOWTO (R_NIOS2_ALIGN,
0,
- 2,
+ 4,
0,
false,
0,
HOWTO (R_NIOS2_GOT16,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_CALL16,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_GOTOFF_LO,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_GOTOFF_HA,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_PCREL_LO,
0,
- 2,
+ 4,
16,
true,
6,
HOWTO (R_NIOS2_PCREL_HA,
0,
- 2,
+ 4,
16,
false, /* This is a PC-relative relocation, but we need to subtract
PC ourselves before the HIADJ. */
HOWTO (R_NIOS2_TLS_GD16,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_TLS_LDM16,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_TLS_LDO16,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_TLS_IE16,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_TLS_LE16,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_TLS_DTPMOD,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_TLS_DTPREL,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_TLS_TPREL,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_COPY,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_GLOB_DAT,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_JUMP_SLOT,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_RELATIVE,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_GOTOFF,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_CALL26_NOAT, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
6, /* bitpos */
HOWTO (R_NIOS2_GOT_LO,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_GOT_HA,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_CALL_LO,
0,
- 2,
+ 4,
16,
false,
6,
HOWTO (R_NIOS2_CALL_HA,
0,
- 2,
+ 4,
16,
false,
6,
/* No relocation. */
HOWTO (R_NIOS2_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit signed immediate relocation. */
HOWTO (R_NIOS2_S16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
16, /* bitpos */
/* 16-bit unsigned immediate relocation. */
HOWTO (R_NIOS2_U16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
16, /* bitpos */
HOWTO (R_NIOS2_PCREL16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
16, /* bitpos */
HOWTO (R_NIOS2_CALL26, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
6, /* bitpos */
HOWTO (R_NIOS2_IMM5,
0,
- 2,
+ 4,
5,
false,
21,
HOWTO (R_NIOS2_CACHE_OPX,
0,
- 2,
+ 4,
5,
false,
11,
HOWTO (R_NIOS2_IMM6,
0,
- 2,
+ 4,
6,
false,
26,
HOWTO (R_NIOS2_IMM8,
0,
- 2,
+ 4,
8,
false,
24,
HOWTO (R_NIOS2_HI16,
0,
- 2,
+ 4,
32,
false,
16,
HOWTO (R_NIOS2_LO16,
0,
- 2,
+ 4,
32,
false,
16,
HOWTO (R_NIOS2_HIADJ16,
0,
- 2,
+ 4,
32,
false,
16,
HOWTO (R_NIOS2_BFD_RELOC_32,
0,
- 2, /* long */
+ 4, /* long */
32,
false,
0,
HOWTO (R_NIOS2_BFD_RELOC_16,
0,
- 1, /* short */
+ 2, /* short */
16,
false,
0,
HOWTO (R_NIOS2_BFD_RELOC_8,
0,
- 0, /* byte */
+ 1, /* byte */
8,
false,
0,
HOWTO (R_NIOS2_GPREL,
0,
- 2,
+ 4,
32,
false,
16,
HOWTO (R_NIOS2_GNU_VTINHERIT,
0,
- 2, /* short */
+ 4,
0,
false,
0,
HOWTO (R_NIOS2_GNU_VTENTRY,
0,
- 2, /* byte */
+ 4,
0,
false,
0,
HOWTO (R_NIOS2_UJMP,
0,
- 2,
+ 4,
32,
false,
16,
HOWTO (R_NIOS2_CJMP,
0,
- 2,
+ 4,
32,
false,
16,
HOWTO (R_NIOS2_CALLR,
0,
- 2,
+ 4,
32,
false,
16,
HOWTO (R_NIOS2_ALIGN,
0,
- 2,
+ 4,
0,
false,
0,
HOWTO (R_NIOS2_GOT16,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_CALL16,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_GOTOFF_LO,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_GOTOFF_HA,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_PCREL_LO,
0,
- 2,
+ 4,
16,
true,
16,
HOWTO (R_NIOS2_PCREL_HA,
0,
- 2,
+ 4,
16,
false, /* This is a PC-relative relocation, but we need to subtract
PC ourselves before the HIADJ. */
HOWTO (R_NIOS2_TLS_GD16,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_TLS_LDM16,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_TLS_LDO16,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_TLS_IE16,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_TLS_LE16,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_TLS_DTPMOD,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_TLS_DTPREL,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_TLS_TPREL,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_COPY,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_GLOB_DAT,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_JUMP_SLOT,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_RELATIVE,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_GOTOFF,
0,
- 2,
+ 4,
32,
false,
0,
HOWTO (R_NIOS2_CALL26_NOAT, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
false, /* pc_relative */
6, /* bitpos */
HOWTO (R_NIOS2_GOT_LO,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_GOT_HA,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_CALL_LO,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_CALL_HA,
0,
- 2,
+ 4,
16,
false,
16,
HOWTO (R_NIOS2_R2_S12,
0,
- 2,
+ 4,
12,
false,
16,
HOWTO (R_NIOS2_R2_I10_1_PCREL,
1,
- 1,
+ 2,
10,
true,
6,
HOWTO (R_NIOS2_R2_T1I7_1_PCREL,
1,
- 1,
+ 2,
7,
true,
9,
HOWTO (R_NIOS2_R2_T1I7_2,
2,
- 1,
+ 2,
7,
false,
9,
HOWTO (R_NIOS2_R2_T2I4,
0,
- 1,
+ 2,
4,
false,
12,
HOWTO (R_NIOS2_R2_T2I4_1,
1,
- 1,
+ 2,
4,
false,
12,
HOWTO (R_NIOS2_R2_T2I4_2,
2,
- 1,
+ 2,
4,
false,
12,
HOWTO (R_NIOS2_R2_X1I7_2,
2,
- 1,
+ 2,
7,
false,
6,
HOWTO (R_NIOS2_R2_X2L5,
0,
- 1,
+ 2,
5,
false,
6,
HOWTO (R_NIOS2_R2_F1I5_2,
2,
- 1,
+ 2,
5,
false,
6,
HOWTO (R_NIOS2_R2_L5I4X1,
2,
- 1,
+ 2,
4,
false,
6,
HOWTO (R_NIOS2_R2_T1X1I6,
0,
- 1,
+ 2,
6,
false,
9,
HOWTO (R_NIOS2_R2_T1X1I6_2,
2,
- 2,
+ 4,
6,
false,
9,
/* This reloc does nothing. */
HOWTO (R_OR1K_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_32,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_16,
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_8,
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_LO_16_IN_INSN, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_HI_16_IN_INSN, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A PC relative 26 bit relocation, right shifted by 2. */
HOWTO (R_OR1K_INSN_REL_26, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_OR1K_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_OR1K_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_32_PCREL,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_16_PCREL,
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_8_PCREL,
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_GOTPC_HI16, /* Type. */
16, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
HOWTO (R_OR1K_GOTPC_LO16, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
HOWTO (R_OR1K_GOT16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 26 bit PLT relocation. Shifted by 2. */
HOWTO (R_OR1K_PLT26, /* Type. */
2, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
26, /* Bitsize. */
true, /* pc_relative. */
0, /* Bitpos. */
HOWTO (R_OR1K_GOTOFF_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_GOTOFF_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_GD_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_GD_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LDM_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LDM_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LDO_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LDO_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_IE_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_IE_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LE_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LE_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_TPOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_DTPOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_DTPMOD, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_AHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_GOTOFF_AHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_IE_AHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LE_AHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_SLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_GOTOFF_SLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LE_SLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
pc-relative relocations to local symbols. */
HOWTO (R_OR1K_PCREL_PG21, /* type */
13, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_GOT_PG21, /* type */
13, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_GD_PG21, /* type */
13, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LDM_PG21, /* type */
13, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_IE_PG21, /* type */
13, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_LO13, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_GOT_LO13, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_GD_LO13, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_LDM_LO13, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_TLS_IE_LO13, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_OR1K_SLO13, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 26 bit PLT relocation, using ADRP. Shifted by 2. */
HOWTO (R_OR1K_PLTA26, /* Type. */
2, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
26, /* Bitsize. */
true, /* pc_relative. */
0, /* Bitpos. */
HOWTO (R_OR1K_GOT_AHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type or1k_elf_got16_no_overflow_howto =
HOWTO (R_OR1K_GOT16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* No relocation. */
HOWTO (R_PJ_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
src_mask to a non-zero value is similar to the COFF toolchain. */
HOWTO (R_PJ_DATA_DIR32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit PC relative relocation. */
HOWTO (R_PJ_CODE_REL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 16 bit PC relative relocation. */
HOWTO (R_PJ_CODE_REL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
EMPTY_HOWTO (5),
HOWTO (R_PJ_CODE_DIR32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_PJ_CODE_LO16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_PJ_CODE_HI16, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_PJ_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_PJ_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type ppc_elf_howto_raw[] = {
/* This reloc does nothing. */
- HOW (R_PPC_NONE, 3, 0, 0, 0, false, dont,
+ HOW (R_PPC_NONE, 0, 0, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* A standard 32 bit relocation. */
- HOW (R_PPC_ADDR32, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_ADDR32, 4, 32, 0xffffffff, 0, false, dont,
bfd_elf_generic_reloc),
/* An absolute 26 bit branch; the lower two bits must be zero.
FIXME: we don't check that, we just clear them. */
- HOW (R_PPC_ADDR24, 2, 26, 0x3fffffc, 0, false, signed,
+ HOW (R_PPC_ADDR24, 4, 26, 0x3fffffc, 0, false, signed,
bfd_elf_generic_reloc),
/* A standard 16 bit relocation. */
- HOW (R_PPC_ADDR16, 1, 16, 0xffff, 0, false, bitfield,
+ HOW (R_PPC_ADDR16, 2, 16, 0xffff, 0, false, bitfield,
bfd_elf_generic_reloc),
/* A 16 bit relocation without overflow. */
- HOW (R_PPC_ADDR16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_ADDR16_LO, 2, 16, 0xffff, 0, false, dont,
bfd_elf_generic_reloc),
/* The high order 16 bits of an address. */
- HOW (R_PPC_ADDR16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_ADDR16_HI, 2, 16, 0xffff, 16, false, dont,
bfd_elf_generic_reloc),
/* The high order 16 bits of an address, plus 1 if the contents of
the low 16 bits, treated as a signed number, is negative. */
- HOW (R_PPC_ADDR16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_ADDR16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_addr16_ha_reloc),
/* An absolute 16 bit branch; the lower two bits must be zero.
FIXME: we don't check that, we just clear them. */
- HOW (R_PPC_ADDR14, 2, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC_ADDR14, 4, 16, 0xfffc, 0, false, signed,
bfd_elf_generic_reloc),
/* An absolute 16 bit branch, for which bit 10 should be set to
indicate that the branch is expected to be taken. The lower two
bits must be zero. */
- HOW (R_PPC_ADDR14_BRTAKEN, 2, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC_ADDR14_BRTAKEN, 4, 16, 0xfffc, 0, false, signed,
bfd_elf_generic_reloc),
/* An absolute 16 bit branch, for which bit 10 should be set to
indicate that the branch is not expected to be taken. The lower
two bits must be zero. */
- HOW (R_PPC_ADDR14_BRNTAKEN, 2, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC_ADDR14_BRNTAKEN, 4, 16, 0xfffc, 0, false, signed,
bfd_elf_generic_reloc),
/* A relative 26 bit branch; the lower two bits must be zero. */
- HOW (R_PPC_REL24, 2, 26, 0x3fffffc, 0, true, signed,
+ HOW (R_PPC_REL24, 4, 26, 0x3fffffc, 0, true, signed,
bfd_elf_generic_reloc),
/* A relative 16 bit branch; the lower two bits must be zero. */
- HOW (R_PPC_REL14, 2, 16, 0xfffc, 0, true, signed,
+ HOW (R_PPC_REL14, 4, 16, 0xfffc, 0, true, signed,
bfd_elf_generic_reloc),
/* A relative 16 bit branch. Bit 10 should be set to indicate that
the branch is expected to be taken. The lower two bits must be
zero. */
- HOW (R_PPC_REL14_BRTAKEN, 2, 16, 0xfffc, 0, true, signed,
+ HOW (R_PPC_REL14_BRTAKEN, 4, 16, 0xfffc, 0, true, signed,
bfd_elf_generic_reloc),
/* A relative 16 bit branch. Bit 10 should be set to indicate that
the branch is not expected to be taken. The lower two bits must
be zero. */
- HOW (R_PPC_REL14_BRNTAKEN, 2, 16, 0xfffc, 0, true, signed,
+ HOW (R_PPC_REL14_BRNTAKEN, 4, 16, 0xfffc, 0, true, signed,
bfd_elf_generic_reloc),
/* Like R_PPC_ADDR16, but referring to the GOT table entry for the
symbol. */
- HOW (R_PPC_GOT16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_GOT16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like R_PPC_ADDR16_LO, but referring to the GOT table entry for
the symbol. */
- HOW (R_PPC_GOT16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_GOT16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like R_PPC_ADDR16_HI, but referring to the GOT table entry for
the symbol. */
- HOW (R_PPC_GOT16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like R_PPC_ADDR16_HA, but referring to the GOT table entry for
the symbol. */
- HOW (R_PPC_GOT16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like R_PPC_REL24, but referring to the procedure linkage table
entry for the symbol. */
- HOW (R_PPC_PLTREL24, 2, 26, 0x3fffffc, 0, true, signed,
+ HOW (R_PPC_PLTREL24, 4, 26, 0x3fffffc, 0, true, signed,
ppc_elf_unhandled_reloc),
/* This is used only by the dynamic linker. The symbol should exist
dynamic linker copies the data addressed by the symbol from the
shared library into the object, because the object being
run has to have the data at some particular address. */
- HOW (R_PPC_COPY, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_COPY, 4, 32, 0, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like R_PPC_ADDR32, but used when setting global offset table
entries. */
- HOW (R_PPC_GLOB_DAT, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_GLOB_DAT, 4, 32, 0xffffffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Marks a procedure linkage table entry for a symbol. */
- HOW (R_PPC_JMP_SLOT, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_JMP_SLOT, 4, 32, 0, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Used only by the dynamic linker. When the object is run, this
longword is set to the load address of the object, plus the
addend. */
- HOW (R_PPC_RELATIVE, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_RELATIVE, 4, 32, 0xffffffff, 0, false, dont,
bfd_elf_generic_reloc),
/* Like R_PPC_REL24, but uses the value of the symbol within the
object rather than the final value. Normally used for
_GLOBAL_OFFSET_TABLE_. */
- HOW (R_PPC_LOCAL24PC, 2, 26, 0x3fffffc, 0, true, signed,
+ HOW (R_PPC_LOCAL24PC, 4, 26, 0x3fffffc, 0, true, signed,
bfd_elf_generic_reloc),
/* Like R_PPC_ADDR32, but may be unaligned. */
- HOW (R_PPC_UADDR32, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_UADDR32, 4, 32, 0xffffffff, 0, false, dont,
bfd_elf_generic_reloc),
/* Like R_PPC_ADDR16, but may be unaligned. */
- HOW (R_PPC_UADDR16, 1, 16, 0xffff, 0, false, bitfield,
+ HOW (R_PPC_UADDR16, 2, 16, 0xffff, 0, false, bitfield,
bfd_elf_generic_reloc),
/* 32-bit PC relative */
- HOW (R_PPC_REL32, 2, 32, 0xffffffff, 0, true, dont,
+ HOW (R_PPC_REL32, 4, 32, 0xffffffff, 0, true, dont,
bfd_elf_generic_reloc),
/* 32-bit relocation to the symbol's procedure linkage table.
FIXME: not supported. */
- HOW (R_PPC_PLT32, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_PLT32, 4, 32, 0, 0, false, dont,
ppc_elf_unhandled_reloc),
/* 32-bit PC relative relocation to the symbol's procedure linkage table.
FIXME: not supported. */
- HOW (R_PPC_PLTREL32, 2, 32, 0, 0, true, dont,
+ HOW (R_PPC_PLTREL32, 4, 32, 0, 0, true, dont,
ppc_elf_unhandled_reloc),
/* Like R_PPC_ADDR16_LO, but referring to the PLT table entry for
the symbol. */
- HOW (R_PPC_PLT16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_PLT16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like R_PPC_ADDR16_HI, but referring to the PLT table entry for
the symbol. */
- HOW (R_PPC_PLT16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_PLT16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like R_PPC_ADDR16_HA, but referring to the PLT table entry for
the symbol. */
- HOW (R_PPC_PLT16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_PLT16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* A sign-extended 16 bit value relative to _SDA_BASE_, for use with
small data items. */
- HOW (R_PPC_SDAREL16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_SDAREL16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* 16-bit section relative relocation. */
- HOW (R_PPC_SECTOFF, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_SECTOFF, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* 16-bit lower half section relative relocation. */
- HOW (R_PPC_SECTOFF_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_SECTOFF_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* 16-bit upper half section relative relocation. */
- HOW (R_PPC_SECTOFF_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_SECTOFF_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* 16-bit upper half adjusted section relative relocation. */
- HOW (R_PPC_SECTOFF_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_SECTOFF_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Marker relocs for TLS. */
- HOW (R_PPC_TLS, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_TLS, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC_TLSGD, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_TLSGD, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC_TLSLD, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_TLSLD, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* Marker relocs on inline plt call instructions. */
- HOW (R_PPC_PLTSEQ, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_PLTSEQ, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC_PLTCALL, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC_PLTCALL, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* Computes the load module index of the load module that contains the
definition of its TLS sym. */
- HOW (R_PPC_DTPMOD32, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_DTPMOD32, 4, 32, 0xffffffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Computes a dtv-relative displacement, the difference between the value
of sym+add and the base address of the thread-local storage block that
contains the definition of sym, minus 0x8000. */
- HOW (R_PPC_DTPREL32, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_DTPREL32, 4, 32, 0xffffffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* A 16 bit dtprel reloc. */
- HOW (R_PPC_DTPREL16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_DTPREL16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like DTPREL16, but no overflow. */
- HOW (R_PPC_DTPREL16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_DTPREL16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like DTPREL16_LO, but next higher group of 16 bits. */
- HOW (R_PPC_DTPREL16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_DTPREL16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like DTPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC_DTPREL16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_DTPREL16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Computes a tp-relative displacement, the difference between the value of
sym+add and the value of the thread pointer (r13). */
- HOW (R_PPC_TPREL32, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_TPREL32, 4, 32, 0xffffffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* A 16 bit tprel reloc. */
- HOW (R_PPC_TPREL16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_TPREL16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like TPREL16, but no overflow. */
- HOW (R_PPC_TPREL16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_TPREL16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like TPREL16_LO, but next higher group of 16 bits. */
- HOW (R_PPC_TPREL16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_TPREL16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like TPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC_TPREL16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_TPREL16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Allocates two contiguous entries in the GOT to hold a tls_index structure,
with values (sym+add)@dtpmod and (sym+add)@dtprel, and computes the offset
to the first entry. */
- HOW (R_PPC_GOT_TLSGD16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_GOT_TLSGD16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like GOT_TLSGD16, but no overflow. */
- HOW (R_PPC_GOT_TLSGD16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_GOT_TLSGD16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_TLSGD16_LO, but next higher group of 16 bits. */
- HOW (R_PPC_GOT_TLSGD16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_TLSGD16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_TLSGD16_HI, but adjust for low 16 bits. */
- HOW (R_PPC_GOT_TLSGD16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_TLSGD16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Allocates two contiguous entries in the GOT to hold a tls_index structure,
with values (sym+add)@dtpmod and zero, and computes the offset to the
first entry. */
- HOW (R_PPC_GOT_TLSLD16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_GOT_TLSLD16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like GOT_TLSLD16, but no overflow. */
- HOW (R_PPC_GOT_TLSLD16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_GOT_TLSLD16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_TLSLD16_LO, but next higher group of 16 bits. */
- HOW (R_PPC_GOT_TLSLD16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_TLSLD16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_TLSLD16_HI, but adjust for low 16 bits. */
- HOW (R_PPC_GOT_TLSLD16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_TLSLD16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Allocates an entry in the GOT with value (sym+add)@dtprel, and computes
the offset to the entry. */
- HOW (R_PPC_GOT_DTPREL16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_GOT_DTPREL16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like GOT_DTPREL16, but no overflow. */
- HOW (R_PPC_GOT_DTPREL16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_GOT_DTPREL16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_DTPREL16_LO, but next higher group of 16 bits. */
- HOW (R_PPC_GOT_DTPREL16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_DTPREL16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_DTPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC_GOT_DTPREL16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_DTPREL16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Allocates an entry in the GOT with value (sym+add)@tprel, and computes the
offset to the entry. */
- HOW (R_PPC_GOT_TPREL16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_GOT_TPREL16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like GOT_TPREL16, but no overflow. */
- HOW (R_PPC_GOT_TPREL16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_GOT_TPREL16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_TPREL16_LO, but next higher group of 16 bits. */
- HOW (R_PPC_GOT_TPREL16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_TPREL16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Like GOT_TPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC_GOT_TPREL16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_GOT_TPREL16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* The remaining relocs are from the Embedded ELF ABI, and are not
in the SVR4 ELF ABI. */
/* 32 bit value resulting from the addend minus the symbol. */
- HOW (R_PPC_EMB_NADDR32, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_EMB_NADDR32, 4, 32, 0xffffffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* 16 bit value resulting from the addend minus the symbol. */
- HOW (R_PPC_EMB_NADDR16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_EMB_NADDR16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* 16 bit value resulting from the addend minus the symbol. */
- HOW (R_PPC_EMB_NADDR16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_EMB_NADDR16_LO, 2, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* The high order 16 bits of the addend minus the symbol. */
- HOW (R_PPC_EMB_NADDR16_HI, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_EMB_NADDR16_HI, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* The high order 16 bits of the result of the addend minus the address,
plus 1 if the contents of the low 16 bits, treated as a signed number,
is negative. */
- HOW (R_PPC_EMB_NADDR16_HA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC_EMB_NADDR16_HA, 2, 16, 0xffff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* 16 bit value resulting from allocating a 4 byte word to hold an
address in the .sdata section, and returning the offset from
_SDA_BASE_ for that relocation. */
- HOW (R_PPC_EMB_SDAI16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_EMB_SDAI16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* 16 bit value resulting from allocating a 4 byte word to hold an
address in the .sdata2 section, and returning the offset from
_SDA2_BASE_ for that relocation. */
- HOW (R_PPC_EMB_SDA2I16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_EMB_SDA2I16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* A sign-extended 16 bit value relative to _SDA2_BASE_, for use with
small data items. */
- HOW (R_PPC_EMB_SDA2REL, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_EMB_SDA2REL, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Relocate against either _SDA_BASE_ or _SDA2_BASE_, filling in the 16 bit
signed offset from the appropriate base, and filling in the register
field with the appropriate register (0, 2, or 13). */
- HOW (R_PPC_EMB_SDA21, 2, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_EMB_SDA21, 4, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Relocation not handled: R_PPC_EMB_MRKREF */
/* PC relative relocation against either _SDA_BASE_ or _SDA2_BASE_, filling
in the 16 bit signed offset from the appropriate base, and filling in the
register field with the appropriate register (0, 2, or 13). */
- HOW (R_PPC_EMB_RELSDA, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_EMB_RELSDA, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* A relative 8 bit branch. */
- HOW (R_PPC_VLE_REL8, 1, 8, 0xff, 1, true, signed,
+ HOW (R_PPC_VLE_REL8, 2, 8, 0xff, 1, true, signed,
bfd_elf_generic_reloc),
/* A relative 15 bit branch. */
- HOW (R_PPC_VLE_REL15, 2, 16, 0xfffe, 0, true, signed,
+ HOW (R_PPC_VLE_REL15, 4, 16, 0xfffe, 0, true, signed,
bfd_elf_generic_reloc),
/* A relative 24 bit branch. */
- HOW (R_PPC_VLE_REL24, 2, 25, 0x1fffffe, 0, true, signed,
+ HOW (R_PPC_VLE_REL24, 4, 25, 0x1fffffe, 0, true, signed,
bfd_elf_generic_reloc),
/* The 16 LSBS in split16a format. */
- HOW (R_PPC_VLE_LO16A, 2, 16, 0x1f07ff, 0, false, dont,
+ HOW (R_PPC_VLE_LO16A, 4, 16, 0x1f07ff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* The 16 LSBS in split16d format. */
- HOW (R_PPC_VLE_LO16D, 2, 16, 0x3e007ff, 0, false, dont,
+ HOW (R_PPC_VLE_LO16D, 4, 16, 0x3e007ff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 split16a format. */
- HOW (R_PPC_VLE_HI16A, 2, 16, 0x1f07ff, 16, false, dont,
+ HOW (R_PPC_VLE_HI16A, 4, 16, 0x1f07ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 split16d format. */
- HOW (R_PPC_VLE_HI16D, 2, 16, 0x3e007ff, 16, false, dont,
+ HOW (R_PPC_VLE_HI16D, 4, 16, 0x3e007ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 (High Adjusted) in split16a format. */
- HOW (R_PPC_VLE_HA16A, 2, 16, 0x1f07ff, 16, false, dont,
+ HOW (R_PPC_VLE_HA16A, 4, 16, 0x1f07ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 (High Adjusted) in split16d format. */
- HOW (R_PPC_VLE_HA16D, 2, 16, 0x3e007ff, 16, false, dont,
+ HOW (R_PPC_VLE_HA16D, 4, 16, 0x3e007ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* This reloc is like R_PPC_EMB_SDA21 but only applies to e_add16i
instructions. If the register base is 0 then the linker changes
the e_add16i to an e_li instruction. */
- HOW (R_PPC_VLE_SDA21, 2, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_VLE_SDA21, 4, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
/* Like R_PPC_VLE_SDA21 but ignore overflow. */
- HOW (R_PPC_VLE_SDA21_LO, 2, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC_VLE_SDA21_LO, 4, 16, 0xffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* The 16 LSBS relative to _SDA_BASE_ in split16a format. */
- HOW (R_PPC_VLE_SDAREL_LO16A, 2, 16, 0x1f07ff, 0, false, dont,
+ HOW (R_PPC_VLE_SDAREL_LO16A, 4, 16, 0x1f07ff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* The 16 LSBS relative to _SDA_BASE_ in split16d format. */
- HOW (R_PPC_VLE_SDAREL_LO16D, 2, 16, 0x3e007ff, 0, false, dont,
+ HOW (R_PPC_VLE_SDAREL_LO16D, 4, 16, 0x3e007ff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 relative to _SDA_BASE_ in split16a format. */
- HOW (R_PPC_VLE_SDAREL_HI16A, 2, 16, 0x1f07ff, 16, false, dont,
+ HOW (R_PPC_VLE_SDAREL_HI16A, 4, 16, 0x1f07ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 relative to _SDA_BASE_ in split16d format. */
- HOW (R_PPC_VLE_SDAREL_HI16D, 2, 16, 0x3e007ff, 16, false, dont,
+ HOW (R_PPC_VLE_SDAREL_HI16D, 4, 16, 0x3e007ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 (HA) relative to _SDA_BASE split16a format. */
- HOW (R_PPC_VLE_SDAREL_HA16A, 2, 16, 0x1f07ff, 16, false, dont,
+ HOW (R_PPC_VLE_SDAREL_HA16A, 4, 16, 0x1f07ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* Bits 16-31 (HA) relative to _SDA_BASE split16d format. */
- HOW (R_PPC_VLE_SDAREL_HA16D, 2, 16, 0x3e007ff, 16, false, dont,
+ HOW (R_PPC_VLE_SDAREL_HA16D, 4, 16, 0x3e007ff, 16, false, dont,
ppc_elf_unhandled_reloc),
/* e_li split20 format. */
- HOW (R_PPC_VLE_ADDR20, 2, 20, 0x1f7fff, 0, false, dont,
+ HOW (R_PPC_VLE_ADDR20, 4, 20, 0x1f7fff, 0, false, dont,
ppc_elf_unhandled_reloc),
- HOW (R_PPC_IRELATIVE, 2, 32, 0xffffffff, 0, false, dont,
+ HOW (R_PPC_IRELATIVE, 4, 32, 0xffffffff, 0, false, dont,
ppc_elf_unhandled_reloc),
/* A 16 bit relative relocation. */
- HOW (R_PPC_REL16, 1, 16, 0xffff, 0, true, signed,
+ HOW (R_PPC_REL16, 2, 16, 0xffff, 0, true, signed,
bfd_elf_generic_reloc),
/* A 16 bit relative relocation without overflow. */
- HOW (R_PPC_REL16_LO, 1, 16, 0xffff, 0, true, dont,
+ HOW (R_PPC_REL16_LO, 2, 16, 0xffff, 0, true, dont,
bfd_elf_generic_reloc),
/* The high order 16 bits of a relative address. */
- HOW (R_PPC_REL16_HI, 1, 16, 0xffff, 16, true, dont,
+ HOW (R_PPC_REL16_HI, 2, 16, 0xffff, 16, true, dont,
bfd_elf_generic_reloc),
/* The high order 16 bits of a relative address, plus 1 if the contents of
the low 16 bits, treated as a signed number, is negative. */
- HOW (R_PPC_REL16_HA, 1, 16, 0xffff, 16, true, dont,
+ HOW (R_PPC_REL16_HA, 2, 16, 0xffff, 16, true, dont,
ppc_elf_addr16_ha_reloc),
/* Like R_PPC_REL16_HA but for split field in addpcis. */
- HOW (R_PPC_REL16DX_HA, 2, 16, 0x1fffc1, 16, true, signed,
+ HOW (R_PPC_REL16DX_HA, 4, 16, 0x1fffc1, 16, true, signed,
ppc_elf_addr16_ha_reloc),
/* A split-field reloc for addpcis, non-relative (gas internal use only). */
- HOW (R_PPC_16DX_HA, 2, 16, 0x1fffc1, 16, false, signed,
+ HOW (R_PPC_16DX_HA, 4, 16, 0x1fffc1, 16, false, signed,
ppc_elf_addr16_ha_reloc),
/* GNU extension to record C++ vtable hierarchy. */
- HOW (R_PPC_GNU_VTINHERIT, 0, 0, 0, 0, false, dont,
+ HOW (R_PPC_GNU_VTINHERIT, 1, 0, 0, 0, false, dont,
NULL),
/* GNU extension to record C++ vtable member usage. */
- HOW (R_PPC_GNU_VTENTRY, 0, 0, 0, 0, false, dont,
+ HOW (R_PPC_GNU_VTENTRY, 1, 0, 0, 0, false, dont,
NULL),
/* Phony reloc to handle AIX style TOC entries. */
- HOW (R_PPC_TOC16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC_TOC16, 2, 16, 0xffff, 0, false, signed,
ppc_elf_unhandled_reloc),
};
\f
/* No relocation. */
HOWTO (R_PRU_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_PRU_16_PMEM,
2,
- 1, /* short */
+ 2, /* short */
32,
false,
0,
HOWTO (R_PRU_U16_PMEMIMM,
2,
- 2,
+ 4,
32,
false,
8,
HOWTO (R_PRU_BFD_RELOC_16,
0,
- 1, /* short */
+ 2, /* short */
16,
false,
0,
/* 16-bit unsigned immediate relocation. */
HOWTO (R_PRU_U16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
HOWTO (R_PRU_32_PMEM,
2,
- 2, /* long */
+ 4, /* long */
32,
false,
0,
HOWTO (R_PRU_BFD_RELOC_32,
0,
- 2, /* long */
+ 4, /* long */
32,
false,
0,
HOWTO (R_PRU_S10_PCREL,
2,
- 2,
+ 4,
10,
true,
0,
HOWTO (R_PRU_U8_PCREL,
2,
- 2,
+ 4,
8,
true,
0,
HOWTO (R_PRU_LDI32,
0, /* rightshift */
- 4, /* size (4 = 8bytes) */
+ 8, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU-specific relocations. */
HOWTO (R_PRU_GNU_BFD_RELOC_8,
0,
- 0, /* byte */
+ 1, /* byte */
8,
false,
0,
HOWTO (R_PRU_GNU_DIFF8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_PRU_GNU_DIFF16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_PRU_GNU_DIFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_PRU_GNU_DIFF16_PMEM, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_PRU_GNU_DIFF32_PMEM, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type rl78_elf_howto_table [] =
{
- RL78REL (NONE, 3, 0, 0, 0, dont, false),
- RL78REL (DIR32, 2, 32, 0xffffffff, 0, dont, false),
- RL78REL (DIR24S, 2, 24, 0xffffff, 0, signed, false),
- RL78REL (DIR16, 1, 16, 0xffff, 0, bitfield, false),
- RL78REL (DIR16U, 1, 16, 0xffff, 0, unsigned, false),
- RL78REL (DIR16S, 1, 16, 0xffff, 0, bitfield, false),
- RL78REL (DIR8, 0, 8, 0xff, 0, dont, false),
- RL78REL (DIR8U, 0, 8, 0xff, 0, unsigned, false),
- RL78REL (DIR8S, 0, 8, 0xff, 0, bitfield, false),
- RL78REL (DIR24S_PCREL, 2, 24, 0xffffff, 0, signed, true),
- RL78REL (DIR16S_PCREL, 1, 16, 0xffff, 0, signed, true),
- RL78REL (DIR8S_PCREL, 0, 8, 0xff, 0, signed, true),
- RL78REL (DIR16UL, 1, 16, 0xffff, 2, unsigned, false),
- RL78REL (DIR16UW, 1, 16, 0xffff, 1, unsigned, false),
- RL78REL (DIR8UL, 0, 8, 0xff, 2, unsigned, false),
- RL78REL (DIR8UW, 0, 8, 0xff, 1, unsigned, false),
- RL78REL (DIR32_REV, 2, 32, 0xffffffff, 0, dont, false),
- RL78REL (DIR16_REV, 1, 16, 0xffff, 0, bitfield, false),
- RL78REL (DIR3U_PCREL, 0, 3, 0x7, 0, unsigned, true),
+ RL78REL (NONE, 0, 0, 0, 0, dont, false),
+ RL78REL (DIR32, 4, 32, 0xffffffff, 0, dont, false),
+ RL78REL (DIR24S, 4, 24, 0xffffff, 0, signed, false),
+ RL78REL (DIR16, 2, 16, 0xffff, 0, bitfield, false),
+ RL78REL (DIR16U, 2, 16, 0xffff, 0, unsigned, false),
+ RL78REL (DIR16S, 2, 16, 0xffff, 0, bitfield, false),
+ RL78REL (DIR8, 1, 8, 0xff, 0, dont, false),
+ RL78REL (DIR8U, 1, 8, 0xff, 0, unsigned, false),
+ RL78REL (DIR8S, 1, 8, 0xff, 0, bitfield, false),
+ RL78REL (DIR24S_PCREL, 4, 24, 0xffffff, 0, signed, true),
+ RL78REL (DIR16S_PCREL, 2, 16, 0xffff, 0, signed, true),
+ RL78REL (DIR8S_PCREL, 1, 8, 0xff, 0, signed, true),
+ RL78REL (DIR16UL, 2, 16, 0xffff, 2, unsigned, false),
+ RL78REL (DIR16UW, 2, 16, 0xffff, 1, unsigned, false),
+ RL78REL (DIR8UL, 1, 8, 0xff, 2, unsigned, false),
+ RL78REL (DIR8UW, 1, 8, 0xff, 1, unsigned, false),
+ RL78REL (DIR32_REV, 4, 32, 0xffffffff, 0, dont, false),
+ RL78REL (DIR16_REV, 2, 16, 0xffff, 0, bitfield, false),
+ RL78REL (DIR3U_PCREL, 1, 3, 0x7, 0, unsigned, true),
EMPTY_HOWTO (0x13),
EMPTY_HOWTO (0x14),
EMPTY_HOWTO (0x2b),
EMPTY_HOWTO (0x2c),
- RL78REL (RH_RELAX, 3, 0, 0, 0, dont, false),
- RL78REL (RH_SFR, 0, 8, 0xff, 0, unsigned, false),
- RL78REL (RH_SADDR, 0, 8, 0xff, 0, unsigned, false),
+ RL78REL (RH_RELAX, 0, 0, 0, 0, dont, false),
+ RL78REL (RH_SFR, 1, 8, 0xff, 0, unsigned, false),
+ RL78REL (RH_SADDR, 1, 8, 0xff, 0, unsigned, false),
EMPTY_HOWTO (0x30),
EMPTY_HOWTO (0x31),
EMPTY_HOWTO (0x3f),
EMPTY_HOWTO (0x40),
- RL78_OP_REL (ABS32, 2, 32, 0xffffffff, 0, dont, false),
- RL78_OP_REL (ABS24S, 2, 24, 0xffffff, 0, signed, false),
- RL78_OP_REL (ABS16, 1, 16, 0xffff, 0, bitfield, false),
- RL78_OP_REL (ABS16U, 1, 16, 0xffff, 0, unsigned, false),
- RL78_OP_REL (ABS16S, 1, 16, 0xffff, 0, signed, false),
- RL78_OP_REL (ABS8, 0, 8, 0xff, 0, bitfield, false),
- RL78_OP_REL (ABS8U, 0, 8, 0xff, 0, unsigned, false),
- RL78_OP_REL (ABS8S, 0, 8, 0xff, 0, signed, false),
- RL78_OP_REL (ABS24S_PCREL, 2, 24, 0xffffff, 0, signed, true),
- RL78_OP_REL (ABS16S_PCREL, 1, 16, 0xffff, 0, signed, true),
- RL78_OP_REL (ABS8S_PCREL, 0, 8, 0xff, 0, signed, true),
- RL78_OP_REL (ABS16UL, 1, 16, 0xffff, 0, unsigned, false),
- RL78_OP_REL (ABS16UW, 1, 16, 0xffff, 0, unsigned, false),
- RL78_OP_REL (ABS8UL, 0, 8, 0xff, 0, unsigned, false),
- RL78_OP_REL (ABS8UW, 0, 8, 0xff, 0, unsigned, false),
- RL78_OP_REL (ABS32_REV, 2, 32, 0xffffffff, 0, dont, false),
- RL78_OP_REL (ABS16_REV, 1, 16, 0xffff, 0, bitfield, false),
+ RL78_OP_REL (ABS32, 4, 32, 0xffffffff, 0, dont, false),
+ RL78_OP_REL (ABS24S, 4, 24, 0xffffff, 0, signed, false),
+ RL78_OP_REL (ABS16, 2, 16, 0xffff, 0, bitfield, false),
+ RL78_OP_REL (ABS16U, 2, 16, 0xffff, 0, unsigned, false),
+ RL78_OP_REL (ABS16S, 2, 16, 0xffff, 0, signed, false),
+ RL78_OP_REL (ABS8, 1, 8, 0xff, 0, bitfield, false),
+ RL78_OP_REL (ABS8U, 1, 8, 0xff, 0, unsigned, false),
+ RL78_OP_REL (ABS8S, 1, 8, 0xff, 0, signed, false),
+ RL78_OP_REL (ABS24S_PCREL, 4, 24, 0xffffff, 0, signed, true),
+ RL78_OP_REL (ABS16S_PCREL, 2, 16, 0xffff, 0, signed, true),
+ RL78_OP_REL (ABS8S_PCREL, 1, 8, 0xff, 0, signed, true),
+ RL78_OP_REL (ABS16UL, 2, 16, 0xffff, 0, unsigned, false),
+ RL78_OP_REL (ABS16UW, 2, 16, 0xffff, 0, unsigned, false),
+ RL78_OP_REL (ABS8UL, 1, 8, 0xff, 0, unsigned, false),
+ RL78_OP_REL (ABS8UW, 1, 8, 0xff, 0, unsigned, false),
+ RL78_OP_REL (ABS32_REV, 4, 32, 0xffffffff, 0, dont, false),
+ RL78_OP_REL (ABS16_REV, 2, 16, 0xffff, 0, bitfield, false),
#define STACK_REL_P(x) ((x) <= R_RL78_ABS16_REV && (x) >= R_RL78_ABS32)
EMPTY_HOWTO (0x7e),
EMPTY_HOWTO (0x7f),
- RL78_OP_REL (SYM, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPneg, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPadd, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPsub, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPmul, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPdiv, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPshla, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPshra, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPsctsize, 3, 0, 0, 0, dont, false),
+ RL78_OP_REL (SYM, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPneg, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPadd, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPsub, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPmul, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPdiv, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPshla, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPshra, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPsctsize, 0, 0, 0, 0, dont, false),
EMPTY_HOWTO (0x89),
EMPTY_HOWTO (0x8a),
EMPTY_HOWTO (0x8b),
EMPTY_HOWTO (0x8c),
- RL78_OP_REL (OPscttop, 3, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPscttop, 0, 0, 0, 0, dont, false),
EMPTY_HOWTO (0x8e),
EMPTY_HOWTO (0x8f),
- RL78_OP_REL (OPand, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPor, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPxor, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPnot, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPmod, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPromtop, 3, 0, 0, 0, dont, false),
- RL78_OP_REL (OPramtop, 3, 0, 0, 0, dont, false)
+ RL78_OP_REL (OPand, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPor, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPxor, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPnot, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPmod, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPromtop, 0, 0, 0, 0, dont, false),
+ RL78_OP_REL (OPramtop, 0, 0, 0, 0, dont, false)
};
\f
/* Map BFD reloc types to RL78 ELF reloc types. */
static reloc_howto_type rx_elf_howto_table [] =
{
- RXREL (NONE, 3, 0, 0, dont, false),
- RXREL (DIR32, 2, 32, 0, signed, false),
- RXREL (DIR24S, 2, 24, 0, signed, false),
- RXREL (DIR16, 1, 16, 0, dont, false),
- RXREL (DIR16U, 1, 16, 0, unsigned, false),
- RXREL (DIR16S, 1, 16, 0, signed, false),
- RXREL (DIR8, 0, 8, 0, dont, false),
- RXREL (DIR8U, 0, 8, 0, unsigned, false),
- RXREL (DIR8S, 0, 8, 0, signed, false),
- RXREL (DIR24S_PCREL, 2, 24, 0, signed, true),
- RXREL (DIR16S_PCREL, 1, 16, 0, signed, true),
- RXREL (DIR8S_PCREL, 0, 8, 0, signed, true),
- RXREL (DIR16UL, 1, 16, 2, unsigned, false),
- RXREL (DIR16UW, 1, 16, 1, unsigned, false),
- RXREL (DIR8UL, 0, 8, 2, unsigned, false),
- RXREL (DIR8UW, 0, 8, 1, unsigned, false),
- RXREL (DIR32_REV, 1, 16, 0, dont, false),
- RXREL (DIR16_REV, 1, 16, 0, dont, false),
- RXREL (DIR3U_PCREL, 0, 3, 0, dont, true),
+ RXREL (NONE, 0, 0, 0, dont, false),
+ RXREL (DIR32, 4, 32, 0, signed, false),
+ RXREL (DIR24S, 4, 24, 0, signed, false),
+ RXREL (DIR16, 2, 16, 0, dont, false),
+ RXREL (DIR16U, 2, 16, 0, unsigned, false),
+ RXREL (DIR16S, 2, 16, 0, signed, false),
+ RXREL (DIR8, 1, 8, 0, dont, false),
+ RXREL (DIR8U, 1, 8, 0, unsigned, false),
+ RXREL (DIR8S, 1, 8, 0, signed, false),
+ RXREL (DIR24S_PCREL, 4, 24, 0, signed, true),
+ RXREL (DIR16S_PCREL, 2, 16, 0, signed, true),
+ RXREL (DIR8S_PCREL, 1, 8, 0, signed, true),
+ RXREL (DIR16UL, 2, 16, 2, unsigned, false),
+ RXREL (DIR16UW, 2, 16, 1, unsigned, false),
+ RXREL (DIR8UL, 1, 8, 2, unsigned, false),
+ RXREL (DIR8UW, 1, 8, 1, unsigned, false),
+ RXREL (DIR32_REV, 2, 16, 0, dont, false),
+ RXREL (DIR16_REV, 2, 16, 0, dont, false),
+ RXREL (DIR3U_PCREL, 1, 3, 0, dont, true),
EMPTY_HOWTO (0x13),
EMPTY_HOWTO (0x14),
EMPTY_HOWTO (0x1e),
EMPTY_HOWTO (0x1f),
- RXREL (RH_3_PCREL, 0, 3, 0, signed, true),
- RXREL (RH_16_OP, 1, 16, 0, signed, false),
- RXREL (RH_24_OP, 2, 24, 0, signed, false),
- RXREL (RH_32_OP, 2, 32, 0, signed, false),
- RXREL (RH_24_UNS, 2, 24, 0, unsigned, false),
- RXREL (RH_8_NEG, 0, 8, 0, signed, false),
- RXREL (RH_16_NEG, 1, 16, 0, signed, false),
- RXREL (RH_24_NEG, 2, 24, 0, signed, false),
- RXREL (RH_32_NEG, 2, 32, 0, signed, false),
- RXREL (RH_DIFF, 2, 32, 0, signed, false),
- RXREL (RH_GPRELB, 1, 16, 0, unsigned, false),
- RXREL (RH_GPRELW, 1, 16, 0, unsigned, false),
- RXREL (RH_GPRELL, 1, 16, 0, unsigned, false),
- RXREL (RH_RELAX, 0, 0, 0, dont, false),
+ RXREL (RH_3_PCREL, 1, 3, 0, signed, true),
+ RXREL (RH_16_OP, 2, 16, 0, signed, false),
+ RXREL (RH_24_OP, 4, 24, 0, signed, false),
+ RXREL (RH_32_OP, 4, 32, 0, signed, false),
+ RXREL (RH_24_UNS, 4, 24, 0, unsigned, false),
+ RXREL (RH_8_NEG, 1, 8, 0, signed, false),
+ RXREL (RH_16_NEG, 2, 16, 0, signed, false),
+ RXREL (RH_24_NEG, 4, 24, 0, signed, false),
+ RXREL (RH_32_NEG, 4, 32, 0, signed, false),
+ RXREL (RH_DIFF, 4, 32, 0, signed, false),
+ RXREL (RH_GPRELB, 2, 16, 0, unsigned, false),
+ RXREL (RH_GPRELW, 2, 16, 0, unsigned, false),
+ RXREL (RH_GPRELL, 2, 16, 0, unsigned, false),
+ RXREL (RH_RELAX, 1, 0, 0, dont, false),
EMPTY_HOWTO (0x2e),
EMPTY_HOWTO (0x2f),
EMPTY_HOWTO (0x3f),
EMPTY_HOWTO (0x40),
- RXREL (ABS32, 2, 32, 0, dont, false),
- RXREL (ABS24S, 2, 24, 0, signed, false),
- RXREL (ABS16, 1, 16, 0, dont, false),
- RXREL (ABS16U, 1, 16, 0, unsigned, false),
- RXREL (ABS16S, 1, 16, 0, signed, false),
- RXREL (ABS8, 0, 8, 0, dont, false),
- RXREL (ABS8U, 0, 8, 0, unsigned, false),
- RXREL (ABS8S, 0, 8, 0, signed, false),
- RXREL (ABS24S_PCREL, 2, 24, 0, signed, true),
- RXREL (ABS16S_PCREL, 1, 16, 0, signed, true),
- RXREL (ABS8S_PCREL, 0, 8, 0, signed, true),
- RXREL (ABS16UL, 1, 16, 0, unsigned, false),
- RXREL (ABS16UW, 1, 16, 0, unsigned, false),
- RXREL (ABS8UL, 0, 8, 0, unsigned, false),
- RXREL (ABS8UW, 0, 8, 0, unsigned, false),
- RXREL (ABS32_REV, 2, 32, 0, dont, false),
- RXREL (ABS16_REV, 1, 16, 0, dont, false),
+ RXREL (ABS32, 4, 32, 0, dont, false),
+ RXREL (ABS24S, 4, 24, 0, signed, false),
+ RXREL (ABS16, 2, 16, 0, dont, false),
+ RXREL (ABS16U, 2, 16, 0, unsigned, false),
+ RXREL (ABS16S, 2, 16, 0, signed, false),
+ RXREL (ABS8, 1, 8, 0, dont, false),
+ RXREL (ABS8U, 1, 8, 0, unsigned, false),
+ RXREL (ABS8S, 1, 8, 0, signed, false),
+ RXREL (ABS24S_PCREL, 4, 24, 0, signed, true),
+ RXREL (ABS16S_PCREL, 2, 16, 0, signed, true),
+ RXREL (ABS8S_PCREL, 1, 8, 0, signed, true),
+ RXREL (ABS16UL, 2, 16, 0, unsigned, false),
+ RXREL (ABS16UW, 2, 16, 0, unsigned, false),
+ RXREL (ABS8UL, 1, 8, 0, unsigned, false),
+ RXREL (ABS8UW, 1, 8, 0, unsigned, false),
+ RXREL (ABS32_REV, 4, 32, 0, dont, false),
+ RXREL (ABS16_REV, 2, 16, 0, dont, false),
#define STACK_REL_P(x) ((x) <= R_RX_ABS16_REV && (x) >= R_RX_ABS32)
/* A 5-bit unsigned displacement to a B/W/L address, at bit position 8/12. */
/* ---- ---- 4--- 3210. */
#define R_RX_RH_ABS5p8B 0x78
- RXREL (RH_ABS5p8B, 0, 0, 0, dont, false),
+ RXREL (RH_ABS5p8B, 1, 0, 0, dont, false),
#define R_RX_RH_ABS5p8W 0x79
- RXREL (RH_ABS5p8W, 0, 0, 0, dont, false),
+ RXREL (RH_ABS5p8W, 1, 0, 0, dont, false),
#define R_RX_RH_ABS5p8L 0x7a
- RXREL (RH_ABS5p8L, 0, 0, 0, dont, false),
+ RXREL (RH_ABS5p8L, 1, 0, 0, dont, false),
/* A 5-bit unsigned displacement to a B/W/L address, at bit position 5/12. */
/* ---- -432 1--- 0---. */
#define R_RX_RH_ABS5p5B 0x7b
- RXREL (RH_ABS5p5B, 0, 0, 0, dont, false),
+ RXREL (RH_ABS5p5B, 1, 0, 0, dont, false),
#define R_RX_RH_ABS5p5W 0x7c
- RXREL (RH_ABS5p5W, 0, 0, 0, dont, false),
+ RXREL (RH_ABS5p5W, 1, 0, 0, dont, false),
#define R_RX_RH_ABS5p5L 0x7d
- RXREL (RH_ABS5p5L, 0, 0, 0, dont, false),
+ RXREL (RH_ABS5p5L, 1, 0, 0, dont, false),
/* A 4-bit unsigned immediate at bit position 8. */
#define R_RX_RH_UIMM4p8 0x7e
- RXREL (RH_UIMM4p8, 0, 0, 0, dont, false),
+ RXREL (RH_UIMM4p8, 1, 0, 0, dont, false),
/* A 4-bit negative unsigned immediate at bit position 8. */
#define R_RX_RH_UNEG4p8 0x7f
- RXREL (RH_UNEG4p8, 0, 0, 0, dont, false),
+ RXREL (RH_UNEG4p8, 1, 0, 0, dont, false),
/* End of internal relocs. */
- RXREL (SYM, 2, 32, 0, dont, false),
- RXREL (OPneg, 2, 32, 0, dont, false),
- RXREL (OPadd, 2, 32, 0, dont, false),
- RXREL (OPsub, 2, 32, 0, dont, false),
- RXREL (OPmul, 2, 32, 0, dont, false),
- RXREL (OPdiv, 2, 32, 0, dont, false),
- RXREL (OPshla, 2, 32, 0, dont, false),
- RXREL (OPshra, 2, 32, 0, dont, false),
- RXREL (OPsctsize, 2, 32, 0, dont, false),
+ RXREL (SYM, 4, 32, 0, dont, false),
+ RXREL (OPneg, 4, 32, 0, dont, false),
+ RXREL (OPadd, 4, 32, 0, dont, false),
+ RXREL (OPsub, 4, 32, 0, dont, false),
+ RXREL (OPmul, 4, 32, 0, dont, false),
+ RXREL (OPdiv, 4, 32, 0, dont, false),
+ RXREL (OPshla, 4, 32, 0, dont, false),
+ RXREL (OPshra, 4, 32, 0, dont, false),
+ RXREL (OPsctsize, 4, 32, 0, dont, false),
EMPTY_HOWTO (0x89),
EMPTY_HOWTO (0x8a),
EMPTY_HOWTO (0x8b),
EMPTY_HOWTO (0x8c),
- RXREL (OPscttop, 2, 32, 0, dont, false),
+ RXREL (OPscttop, 4, 32, 0, dont, false),
EMPTY_HOWTO (0x8e),
EMPTY_HOWTO (0x8f),
- RXREL (OPand, 2, 32, 0, dont, false),
- RXREL (OPor, 2, 32, 0, dont, false),
- RXREL (OPxor, 2, 32, 0, dont, false),
- RXREL (OPnot, 2, 32, 0, dont, false),
- RXREL (OPmod, 2, 32, 0, dont, false),
- RXREL (OPromtop, 2, 32, 0, dont, false),
- RXREL (OPramtop, 2, 32, 0, dont, false)
+ RXREL (OPand, 4, 32, 0, dont, false),
+ RXREL (OPor, 4, 32, 0, dont, false),
+ RXREL (OPxor, 4, 32, 0, dont, false),
+ RXREL (OPnot, 4, 32, 0, dont, false),
+ RXREL (OPmod, 4, 32, 0, dont, false),
+ RXREL (OPromtop, 4, 32, 0, dont, false),
+ RXREL (OPramtop, 4, 32, 0, dont, false)
};
\f
/* Map BFD reloc types to RX ELF reloc types. */
/* This reloc does nothing. */
HOWTO (R_S12Z_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 24 bit absolute relocation emitted by the OPR mode operands */
HOWTO (R_S12Z_OPR, /* type */
0, /* rightshift */
- 5, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The purpose of this reloc is not known */
HOWTO (R_S12Z_UKNWN_2, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 15 bit PC-rel relocation */
HOWTO (R_S12Z_PCREL_7_15, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
15, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 24 bit absolute relocation emitted by EXT24 mode operands */
HOWTO (R_S12Z_EXT24, /* type */
0, /* rightshift */
- 5, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 18 bit absolute relocation */
HOWTO (R_S12Z_EXT18, /* type */
0, /* rightshift */
- 5, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* size */
18, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_S12Z_CW32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation */
HOWTO (R_S12Z_EXT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_390_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = 2 byte, 2 = 4 byte) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0, /* dst_mask */
false), /* pcrel_offset */
- HOWTO(R_390_8, 0, 0, 8, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_8, 0, 1, 8, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_8", false, 0,0x000000ff, false),
- HOWTO(R_390_12, 0, 1, 12, false, 0, complain_overflow_dont,
+ HOWTO(R_390_12, 0, 2, 12, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_390_12", false, 0,0x00000fff, false),
- HOWTO(R_390_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_16", false, 0,0x0000ffff, false),
- HOWTO(R_390_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_32", false, 0,0xffffffff, false),
- HOWTO(R_390_PC32, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC32, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC32", false, 0,0xffffffff, true),
- HOWTO(R_390_GOT12, 0, 1, 12, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOT12, 0, 2, 12, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT12", false, 0,0x00000fff, false),
- HOWTO(R_390_GOT32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOT32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT32", false, 0,0xffffffff, false),
- HOWTO(R_390_PLT32, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT32, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT32", false, 0,0xffffffff, true),
- HOWTO(R_390_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_COPY, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_COPY", false, 0,0xffffffff, false),
- HOWTO(R_390_GLOB_DAT, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GLOB_DAT, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GLOB_DAT", false, 0,0xffffffff, false),
- HOWTO(R_390_JMP_SLOT, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_JMP_SLOT, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_JMP_SLOT", false, 0,0xffffffff, false),
- HOWTO(R_390_RELATIVE, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_RELATIVE, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_RELATIVE", false, 0,0xffffffff, false),
- HOWTO(R_390_GOTOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTOFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTOFF32", false, 0,0xffffffff, false),
- HOWTO(R_390_GOTPC, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPC, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPC", false, 0,0xffffffff, true),
- HOWTO(R_390_GOT16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOT16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT16", false, 0,0x0000ffff, false),
- HOWTO(R_390_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC16, 0, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC16", false, 0,0x0000ffff, true),
- HOWTO(R_390_PC16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC16DBL, 1, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC16DBL", false, 0,0x0000ffff, true),
- HOWTO(R_390_PLT16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT16DBL, 1, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT16DBL", false, 0,0x0000ffff, true),
- HOWTO(R_390_PC32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC32DBL, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC32DBL", false, 0,0xffffffff, true),
- HOWTO(R_390_PLT32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT32DBL, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT32DBL", false, 0,0xffffffff, true),
- HOWTO(R_390_GOTPCDBL, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPCDBL, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPCDBL", false, 0,0xffffffff, true),
EMPTY_HOWTO (R_390_64), /* Empty entry for R_390_64. */
EMPTY_HOWTO (R_390_PC64), /* Empty entry for R_390_PC64. */
EMPTY_HOWTO (R_390_GOT64), /* Empty entry for R_390_GOT64. */
EMPTY_HOWTO (R_390_PLT64), /* Empty entry for R_390_PLT64. */
- HOWTO(R_390_GOTENT, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTENT, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTENT", false, 0,0xffffffff, true),
- HOWTO(R_390_GOTOFF16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTOFF16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTOFF16", false, 0,0x0000ffff, false),
EMPTY_HOWTO (R_390_GOTOFF64), /* Empty entry for R_390_GOTOFF64. */
- HOWTO(R_390_GOTPLT12, 0, 1, 12, false, 0, complain_overflow_dont,
+ HOWTO(R_390_GOTPLT12, 0, 2, 12, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_390_GOTPLT12", false, 0,0x00000fff, false),
- HOWTO(R_390_GOTPLT16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPLT16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPLT16", false, 0,0x0000ffff, false),
- HOWTO(R_390_GOTPLT32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPLT32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPLT32", false, 0,0xffffffff, false),
EMPTY_HOWTO (R_390_GOTPLT64), /* Empty entry for R_390_GOTPLT64. */
- HOWTO(R_390_GOTPLTENT, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPLTENT, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPLTENT",false, 0,0xffffffff, true),
- HOWTO(R_390_PLTOFF16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLTOFF16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLTOFF16", false, 0,0x0000ffff, false),
- HOWTO(R_390_PLTOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLTOFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLTOFF32", false, 0,0xffffffff, false),
EMPTY_HOWTO (R_390_PLTOFF64), /* Empty entry for R_390_PLTOFF64. */
- HOWTO(R_390_TLS_LOAD, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_LOAD, 0, 1, 0, false, 0, complain_overflow_dont,
s390_tls_reloc, "R_390_TLS_LOAD", false, 0, 0, false),
- HOWTO(R_390_TLS_GDCALL, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_GDCALL, 0, 1, 0, false, 0, complain_overflow_dont,
s390_tls_reloc, "R_390_TLS_GDCALL", false, 0, 0, false),
- HOWTO(R_390_TLS_LDCALL, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_LDCALL, 0, 1, 0, false, 0, complain_overflow_dont,
s390_tls_reloc, "R_390_TLS_LDCALL", false, 0, 0, false),
- HOWTO(R_390_TLS_GD32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_GD32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_GD32", false, 0, 0xffffffff, false),
EMPTY_HOWTO (R_390_TLS_GD64), /* Empty entry for R_390_TLS_GD64. */
- HOWTO(R_390_TLS_GOTIE12, 0, 1, 12, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_GOTIE12, 0, 2, 12, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_390_TLS_GOTIE12", false, 0, 0x00000fff, false),
- HOWTO(R_390_TLS_GOTIE32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_GOTIE32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_GOTIE32", false, 0, 0xffffffff, false),
EMPTY_HOWTO (R_390_TLS_GOTIE64), /* Empty entry for R_390_TLS_GOTIE64. */
- HOWTO(R_390_TLS_LDM32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_LDM32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_LDM32", false, 0, 0xffffffff, false),
EMPTY_HOWTO (R_390_TLS_LDM64), /* Empty entry for R_390_TLS_LDM64. */
- HOWTO(R_390_TLS_IE32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_IE32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_IE32", false, 0, 0xffffffff, false),
EMPTY_HOWTO (R_390_TLS_IE64), /* Empty entry for R_390_TLS_IE64. */
- HOWTO(R_390_TLS_IEENT, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_IEENT, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_IEENT", false, 0, 0xffffffff, true),
- HOWTO(R_390_TLS_LE32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_LE32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_LE32", false, 0, 0xffffffff, false),
EMPTY_HOWTO (R_390_TLS_LE64), /* Empty entry for R_390_TLS_LE64. */
- HOWTO(R_390_TLS_LDO32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_LDO32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_LDO32", false, 0, 0xffffffff, false),
EMPTY_HOWTO (R_390_TLS_LDO64), /* Empty entry for R_390_TLS_LDO64. */
- HOWTO(R_390_TLS_DTPMOD, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_DTPMOD, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_DTPMOD", false, 0, 0xffffffff, false),
- HOWTO(R_390_TLS_DTPOFF, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_DTPOFF, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", false, 0, 0xffffffff, false),
- HOWTO(R_390_TLS_TPOFF, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_TPOFF, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_TPOFF", false, 0, 0xffffffff, false),
- HOWTO(R_390_20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_20", false, 0,0x0fffff00, false),
- HOWTO(R_390_GOT20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_GOT20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_GOT20", false, 0,0x0fffff00, false),
- HOWTO(R_390_GOTPLT20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_GOTPLT20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_GOTPLT20", false, 0,0x0fffff00, false),
- HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_TLS_GOTIE20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", false, 0,0x0fffff00, false),
- HOWTO(R_390_IRELATIVE, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_IRELATIVE, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_IRELATIVE", false, 0, 0xffffffff, false),
- HOWTO(R_390_PC12DBL, 1, 1, 12, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC12DBL, 1, 2, 12, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC12DBL", false, 0,0x00000fff, true),
- HOWTO(R_390_PLT12DBL, 1, 1, 12, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT12DBL, 1, 2, 12, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT12DBL", false, 0,0x00000fff, true),
- HOWTO(R_390_PC24DBL, 1, 2, 24, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC24DBL, 1, 4, 24, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC24DBL", false, 0,0x00ffffff, true),
- HOWTO(R_390_PLT24DBL, 1, 2, 24, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT24DBL, 1, 4, 24, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT24DBL", false, 0,0x00ffffff, true),
};
/* GNU extension to record C++ vtable hierarchy. */
static reloc_howto_type elf32_s390_vtinherit_howto =
- HOWTO (R_390_GNU_VTINHERIT, 0,2,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false);
+ HOWTO (R_390_GNU_VTINHERIT, 0,4,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false);
static reloc_howto_type elf32_s390_vtentry_howto =
- HOWTO (R_390_GNU_VTENTRY, 0,2,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false);
+ HOWTO (R_390_GNU_VTENTRY, 0,4,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false);
static reloc_howto_type *
elf_s390_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
/* No relocation. */
HOWTO (R_SCORE_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_HI16 */
HOWTO (R_SCORE_HI16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* R_SCORE_LO16 */
HOWTO (R_SCORE_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* R_SCORE_BCMP */
HOWTO (R_SCORE_BCMP, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
1, /* bitpos */
/*R_SCORE_24 */
HOWTO (R_SCORE_24, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/*R_SCORE_PC19 */
HOWTO (R_SCORE_PC19, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
1, /* bitpos */
/*R_SCORE16_11 */
HOWTO (R_SCORE16_11, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* R_SCORE16_PC8 */
HOWTO (R_SCORE16_PC8, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
9, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32 bit absolute */
HOWTO (R_SCORE_ABS32, /* type 8 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16 bit absolute */
HOWTO (R_SCORE_ABS16, /* type 11 */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_DUMMY2 */
HOWTO (R_SCORE_DUMMY2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_GP15 */
HOWTO (R_SCORE_GP15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_SCORE_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_SCORE_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Reference to global offset table. */
HOWTO (R_SCORE_GOT15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_SCORE_GOT_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* 15 bit call through global offset table. */
HOWTO (R_SCORE_CALL15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit GP relative reference. */
HOWTO (R_SCORE_GPREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit symbol relative relocation. */
HOWTO (R_SCORE_REL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_DUMMY_HI16 */
HOWTO (R_SCORE_DUMMY_HI16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* R_SCORE_IMM30 */
HOWTO (R_SCORE_IMM30, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
30, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
/* R_SCORE_IMM32 */
HOWTO (R_SCORE_IMM32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
5, /* bitpos */
/* No relocation. */
HOWTO (R_SCORE_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_HI16 */
HOWTO (R_SCORE_HI16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* R_SCORE_LO16 */
HOWTO (R_SCORE_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* R_SCORE_BCMP */
HOWTO (R_SCORE_BCMP, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
HOWTO (R_SCORE_24, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/*R_SCORE_PC19 */
HOWTO (R_SCORE_PC19, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
1, /* bitpos */
/*R_SCORE16_11 */
HOWTO (R_SCORE16_11, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* R_SCORE16_PC8 */
HOWTO (R_SCORE16_PC8, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32 bit absolute */
HOWTO (R_SCORE_ABS32, /* type 8 */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16 bit absolute */
HOWTO (R_SCORE_ABS16, /* type 11 */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_DUMMY2 */
HOWTO (R_SCORE_DUMMY2, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_GP15 */
HOWTO (R_SCORE_GP15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_SCORE_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_SCORE_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Reference to global offset table. */
HOWTO (R_SCORE_GOT15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 16 bits of displacement in global offset table. */
HOWTO (R_SCORE_GOT_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* 15 bit call through global offset table. */
HOWTO (R_SCORE_CALL15, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit GP relative reference. */
HOWTO (R_SCORE_GPREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit symbol relative relocation. */
HOWTO (R_SCORE_REL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* R_SCORE_DUMMY_HI16 */
HOWTO (R_SCORE_DUMMY_HI16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
1, /* bitpos */
/* No relocation. */
HOWTO (R_SH_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
src_mask to a non-zero value is similar to the COFF toolchain. */
HOWTO (R_SH_DIR32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit PC relative relocation. */
HOWTO (R_SH_REL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 8 bit PC relative branch divided by 2. */
HOWTO (R_SH_DIR8WPN, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
eventual value of a symbol. */
HOWTO (R_SH_IND12W, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
12, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 8 bit unsigned PC relative divided by 4. */
HOWTO (R_SH_DIR8WPL, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 8 bit unsigned PC relative divided by 2. */
HOWTO (R_SH_DIR8WPZ, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
implemented. */
HOWTO (R_SH_DIR8BP, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
is not implemented. */
HOWTO (R_SH_DIR8W, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
is not implemented. */
HOWTO (R_SH_DIR8L, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8 bit PC relative divided by 2 - but specified in a very odd way. */
HOWTO (R_SH_LOOP_START, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8 bit PC relative divided by 2 - but specified in a very odd way. */
HOWTO (R_SH_LOOP_END, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_SH_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_SH_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_SH_SWITCH8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_SH_SWITCH16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
between the reloc address and L2. */
HOWTO (R_SH_SWITCH32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
which loads the register used in the function call. */
HOWTO (R_SH_USES, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
object file. */
HOWTO (R_SH_COUNT, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
aligned. */
HOWTO (R_SH_ALIGN, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
contains data, unless this reloc is seen. */
HOWTO (R_SH_CODE, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
instructions when it sees data that is not instructions. */
HOWTO (R_SH_DATA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
instructions which are the targets of branches. */
HOWTO (R_SH_LABEL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The next 12 are only supported via linking in SHC-generated objects. */
HOWTO (R_SH_DIR16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR8UL, /* type */
2, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR8UW, /* type */
1, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR8U, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR8SW, /* type */
1, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR8S, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR4UL, /* type */
2, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
4, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR4UW, /* type */
1, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
4, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_DIR4U, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
4, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_PSHA, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
7, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
HOWTO (R_SH_PSHL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
7, /* bitsize */
false, /* pc_relative */
4, /* bitpos */
HOWTO (R_SH_DIR16S, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_GD_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_LD_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_LDO_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_IE_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_LE_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_DTPMOD32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_DTPOFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_TLS_TPOFF32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_GOT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_PLT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_GOTOFF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_GOTPC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_SH_GOTPLT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* FDPIC-relative offset to a GOT entry, for movi20. */
HOWTO (R_SH_GOT20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* FDPIC-relative offset to a data object, for movi20. */
HOWTO (R_SH_GOTOFF20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* FDPIC-relative offset to a GOT entry for a function descriptor. */
HOWTO (R_SH_GOTFUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
for movi20. */
HOWTO (R_SH_GOTFUNCDESC20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* FDPIC-relative offset to a function descriptor. */
HOWTO (R_SH_GOTOFFFUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* FDPIC-relative offset to a function descriptor, for movi20. */
HOWTO (R_SH_GOTOFFFUNCDESC20, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
20, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Address of an official function descriptor. */
HOWTO (R_SH_FUNCDESC, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Function descriptor to be filled in by the dynamic linker. */
HOWTO (R_SH_FUNCDESC_VALUE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
array, so it must be declared in the order of that type. */
static reloc_howto_type elf_howto_table[] = {
- HOWTO (R_SPU_NONE, 0, 3, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_SPU_NONE, 0, 0, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_NONE",
false, 0, 0x00000000, false),
- HOWTO (R_SPU_ADDR10, 4, 2, 10, false, 14, complain_overflow_bitfield,
+ HOWTO (R_SPU_ADDR10, 4, 4, 10, false, 14, complain_overflow_bitfield,
bfd_elf_generic_reloc, "SPU_ADDR10",
false, 0, 0x00ffc000, false),
- HOWTO (R_SPU_ADDR16, 2, 2, 16, false, 7, complain_overflow_bitfield,
+ HOWTO (R_SPU_ADDR16, 2, 4, 16, false, 7, complain_overflow_bitfield,
bfd_elf_generic_reloc, "SPU_ADDR16",
false, 0, 0x007fff80, false),
- HOWTO (R_SPU_ADDR16_HI, 16, 2, 16, false, 7, complain_overflow_bitfield,
+ HOWTO (R_SPU_ADDR16_HI, 16, 4, 16, false, 7, complain_overflow_bitfield,
bfd_elf_generic_reloc, "SPU_ADDR16_HI",
false, 0, 0x007fff80, false),
- HOWTO (R_SPU_ADDR16_LO, 0, 2, 16, false, 7, complain_overflow_dont,
+ HOWTO (R_SPU_ADDR16_LO, 0, 4, 16, false, 7, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_ADDR16_LO",
false, 0, 0x007fff80, false),
- HOWTO (R_SPU_ADDR18, 0, 2, 18, false, 7, complain_overflow_bitfield,
+ HOWTO (R_SPU_ADDR18, 0, 4, 18, false, 7, complain_overflow_bitfield,
bfd_elf_generic_reloc, "SPU_ADDR18",
false, 0, 0x01ffff80, false),
- HOWTO (R_SPU_ADDR32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO (R_SPU_ADDR32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_ADDR32",
false, 0, 0xffffffff, false),
- HOWTO (R_SPU_REL16, 2, 2, 16, true, 7, complain_overflow_bitfield,
+ HOWTO (R_SPU_REL16, 2, 4, 16, true, 7, complain_overflow_bitfield,
bfd_elf_generic_reloc, "SPU_REL16",
false, 0, 0x007fff80, true),
- HOWTO (R_SPU_ADDR7, 0, 2, 7, false, 14, complain_overflow_dont,
+ HOWTO (R_SPU_ADDR7, 0, 4, 7, false, 14, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_ADDR7",
false, 0, 0x001fc000, false),
- HOWTO (R_SPU_REL9, 2, 2, 9, true, 0, complain_overflow_signed,
+ HOWTO (R_SPU_REL9, 2, 4, 9, true, 0, complain_overflow_signed,
spu_elf_rel9, "SPU_REL9",
false, 0, 0x0180007f, true),
- HOWTO (R_SPU_REL9I, 2, 2, 9, true, 0, complain_overflow_signed,
+ HOWTO (R_SPU_REL9I, 2, 4, 9, true, 0, complain_overflow_signed,
spu_elf_rel9, "SPU_REL9I",
false, 0, 0x0000c07f, true),
- HOWTO (R_SPU_ADDR10I, 0, 2, 10, false, 14, complain_overflow_signed,
+ HOWTO (R_SPU_ADDR10I, 0, 4, 10, false, 14, complain_overflow_signed,
bfd_elf_generic_reloc, "SPU_ADDR10I",
false, 0, 0x00ffc000, false),
- HOWTO (R_SPU_ADDR16I, 0, 2, 16, false, 7, complain_overflow_signed,
+ HOWTO (R_SPU_ADDR16I, 0, 4, 16, false, 7, complain_overflow_signed,
bfd_elf_generic_reloc, "SPU_ADDR16I",
false, 0, 0x007fff80, false),
- HOWTO (R_SPU_REL32, 0, 2, 32, true, 0, complain_overflow_dont,
+ HOWTO (R_SPU_REL32, 0, 4, 32, true, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_REL32",
false, 0, 0xffffffff, true),
- HOWTO (R_SPU_ADDR16X, 0, 2, 16, false, 7, complain_overflow_bitfield,
+ HOWTO (R_SPU_ADDR16X, 0, 4, 16, false, 7, complain_overflow_bitfield,
bfd_elf_generic_reloc, "SPU_ADDR16X",
false, 0, 0x007fff80, false),
- HOWTO (R_SPU_PPU32, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO (R_SPU_PPU32, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_PPU32",
false, 0, 0xffffffff, false),
- HOWTO (R_SPU_PPU64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO (R_SPU_PPU64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_PPU64",
false, 0, -1, false),
- HOWTO (R_SPU_ADD_PIC, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_SPU_ADD_PIC, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "SPU_ADD_PIC",
false, 0, 0x00000000, false),
};
{
HOWTO (R_C6000_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_PCR_S21, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
7, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_PCR_S12, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
true, /* pc_relative */
16, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_PCR_S10, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
true, /* pc_relative */
13, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_PCR_S7, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
7, /* bitsize */
true, /* pc_relative */
16, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_ABS_S16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS_L16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS_H16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_U15_B, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_U15_H, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_U15_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_S16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_L16_B, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_L16_H, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_L16_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_H16_B, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_H16_H, /* type */
17, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_H16_W, /* type */
18, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_GOT_U15_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_GOT_L16_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_GOT_H16_W, /* type */
18, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_DSBT_INDEX, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_PREL31, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
31, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_JUMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_EHTYPE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_PCR_H16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
7, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_PCR_L16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
7, /* bitpos */
EMPTY_HOWTO (252),
HOWTO (R_C6000_ALIGN, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_FPHEAD, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_NOCMP, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_C6000_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_PCR_S21, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
7, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_PCR_S12, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
true, /* pc_relative */
16, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_PCR_S10, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
true, /* pc_relative */
13, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_PCR_S7, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
7, /* bitsize */
true, /* pc_relative */
16, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_ABS_S16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_ABS_L16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
EMPTY_HOWTO (R_C6000_ABS_H16),
HOWTO (R_C6000_SBR_U15_B, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_U15_H, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_U15_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_S16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_L16_B, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_L16_H, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_L16_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
EMPTY_HOWTO (R_C6000_SBR_H16_W),
HOWTO (R_C6000_SBR_GOT_U15_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_SBR_GOT_L16_W, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
7, /* bitpos */
EMPTY_HOWTO (R_C6000_SBR_GOT_H16_W),
HOWTO (R_C6000_DSBT_INDEX, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
15, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_PREL31, /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
31, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
HOWTO (R_C6000_COPY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_JUMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_EHTYPE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
EMPTY_HOWTO (252),
HOWTO (R_C6000_ALIGN, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_FPHEAD, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_C6000_NOCMP, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_TILEPRO_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_TILEPRO_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_TILEPRO_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_TILEPRO_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit pc-relative relocation. */
HOWTO (R_TILEPRO_32_PCREL,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit pc-relative relocation. */
HOWTO (R_TILEPRO_16_PCREL,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* An 8 bit pc-relative relocation. */
HOWTO (R_TILEPRO_8_PCREL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation without overflow. */
HOWTO (R_TILEPRO_LO16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The high order 16 bits of an address. */
HOWTO (R_TILEPRO_HI16, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the low 16 bits, treated as a signed number, is negative. */
HOWTO (R_TILEPRO_HA16, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0xffff, /* dst_mask */
false), /* pcrel_offset */
- HOWTO (R_TILEPRO_COPY, /* type */
+ HOWTO (R_TILEPRO_COPY, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_GLOB_DAT, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_JMP_SLOT, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_RELATIVE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_BROFF_X1, /* type */
TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_JOFFLONG_X1, /* type */
TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
29, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_JOFFLONG_X1_PLT, /* type */
TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
29, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
complain_overflow_unsigned, bfd_elf_generic_reloc, \
#name, false, 0, -1, false)
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X0, 0, 8),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y0, 0, 8),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X1, 0, 8),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y1, 0, 8),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_MT_IMM15_X1, 1, 15),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_MF_IMM15_X1, 1, 15),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X0, 1, 16),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X1, 1, 16),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X0, 1, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y0, 1, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X1, 1, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y1, 1, 8),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_MT_IMM15_X1, 2, 15),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_MF_IMM15_X1, 2, 15),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X0, 2, 16),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X1, 2, 16),
#define TILEPRO_IMM16_HOWTO(name, rshift) \
- HOWTO (name, rshift, 1, 16, false, 0, \
+ HOWTO (name, rshift, 2, 16, false, 0, \
complain_overflow_dont, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, false)
HOWTO (R_TILEPRO_IMM16_X0_PCREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_IMM16_X1_PCREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
true), /* pcrel_offset */
#define TILEPRO_IMM16_HOWTO_PCREL(name, rshift) \
- HOWTO (name, rshift, 1, 16, true, 0, \
+ HOWTO (name, rshift, 2, 16, true, 0, \
complain_overflow_dont, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, true)
TILEPRO_IMM16_HOWTO_PCREL (R_TILEPRO_IMM16_X1_HA_PCREL, 16),
/* Byte offset into GOT for a particular symbol. */
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X0_GOT, 1, 16),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X1_GOT, 1, 16),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X0_GOT, 2, 16),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM16_X1_GOT, 2, 16),
TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_GOT_LO, 0),
TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_GOT_LO, 0),
TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_GOT_HI, 16),
TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_GOT_HA, 16),
TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_GOT_HA, 16),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_MMSTART_X0, 0, 5),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_MMEND_X0, 0, 5),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_MMSTART_X1, 0, 5),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_MMEND_X1, 0, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_MMSTART_X0, 1, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_MMEND_X0, 1, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_MMSTART_X1, 1, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_MMEND_X1, 1, 5),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_X0, 0, 5),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_X1, 0, 5),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_Y0, 0, 5),
- TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_Y1, 0, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_X0, 1, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_X1, 1, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_Y0, 1, 5),
+ TILEPRO_UIMM_HOWTO(R_TILEPRO_SHAMT_Y1, 1, 5),
- TILEPRO_IMM_HOWTO(R_TILEPRO_DEST_IMM8_X1, 0, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_DEST_IMM8_X1, 1, 8),
/* These relocs are currently not defined. */
EMPTY_HOWTO (56),
HOWTO (R_TILEPRO_TLS_GD_CALL, /* type */
TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
29, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
-1, /* dst_mask */
true), /* pcrel_offset */
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X0_TLS_GD_ADD, 0, 8),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X1_TLS_GD_ADD, 0, 8),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 0, 8),
- TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 0, 8),
- TILEPRO_IMM_HOWTO(R_TILEPRO_TLS_IE_LOAD, 0, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X0_TLS_GD_ADD, 1, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X1_TLS_GD_ADD, 1, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 1, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 1, 8),
+ TILEPRO_IMM_HOWTO(R_TILEPRO_TLS_IE_LOAD, 1, 8),
/* Offsets into the GOT of TLS Descriptors. */
HOWTO (R_TILEPRO_IMM16_X0_TLS_GD,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_IMM16_X1_TLS_GD,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_IMM16_X0_TLS_IE,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_IMM16_X1_TLS_IE,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_TLS_IE_HA, 16),
/* These are common with the Solaris TLS implementation. */
- HOWTO(R_TILEPRO_TLS_DTPMOD32, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_TILEPRO_TLS_DTPMOD32, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEPRO_TLS_DTPMOD32",
false, 0, 0, true),
- HOWTO(R_TILEPRO_TLS_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_TILEPRO_TLS_DTPOFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_TILEPRO_TLS_DTPOFF32",
false, 0, 0xFFFFFFFF, true),
- HOWTO(R_TILEPRO_TLS_TPOFF32, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_TILEPRO_TLS_TPOFF32, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEPRO_TLS_TPOFF32",
false, 0, 0, true),
HOWTO (R_TILEPRO_IMM16_X0_TLS_LE,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEPRO_IMM16_X1_TLS_LE,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_TILEPRO_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_TILEPRO_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_V850_NONE, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A PC relative 9 bit branch. */
HOWTO (R_V850_9_PCREL, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
9, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A PC relative 22 bit branch. */
HOWTO (R_V850_22_PCREL, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
22, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* High 16 bits of symbol value. */
HOWTO (R_V850_HI16_S, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* High 16 bits of symbol value. */
HOWTO (R_V850_HI16, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Low 16 bits of symbol value. */
HOWTO (R_V850_LO16, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Simple 32bit reloc. */
HOWTO (R_V850_ABS32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Simple 16bit reloc. */
HOWTO (R_V850_16, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Simple 8bit reloc. */
HOWTO (R_V850_8, /* Type. */
0, /* Rightshift. */
- 0, /* Size (0 = byte, 1 = short, 2 = long). */
+ 1, /* Size. */
8, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 16 bit offset from the short data area pointer. */
HOWTO (R_V850_SDA_16_16_OFFSET, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 15 bit offset from the short data area pointer. */
HOWTO (R_V850_SDA_15_16_OFFSET, /* Type. */
1, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
1, /* Bitpos. */
/* 16 bit offset from the zero data area pointer. */
HOWTO (R_V850_ZDA_16_16_OFFSET, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 15 bit offset from the zero data area pointer. */
HOWTO (R_V850_ZDA_15_16_OFFSET, /* Type. */
1, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
1, /* Bitpos. */
/* 6 bit offset from the tiny data area pointer. */
HOWTO (R_V850_TDA_6_8_OFFSET, /* Type. */
2, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
8, /* Bitsize. */
false, /* PC_relative. */
1, /* Bitpos. */
/* 8 bit offset from the tiny data area pointer. */
HOWTO (R_V850_TDA_7_8_OFFSET, /* Type. */
1, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
8, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 7 bit offset from the tiny data area pointer. */
HOWTO (R_V850_TDA_7_7_OFFSET, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
7, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 16 bit offset from the tiny data area pointer! */
HOWTO (R_V850_TDA_16_16_OFFSET, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 5 bit offset from the tiny data area pointer. */
HOWTO (R_V850_TDA_4_5_OFFSET, /* Type. */
1, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
5, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 4 bit offset from the tiny data area pointer. */
HOWTO (R_V850_TDA_4_4_OFFSET, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
4, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 16 bit offset from the short data area pointer. */
HOWTO (R_V850_SDA_16_16_SPLIT_OFFSET, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 16 bit offset from the zero data area pointer. */
HOWTO (R_V850_ZDA_16_16_SPLIT_OFFSET, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 6 bit offset from the call table base pointer. */
HOWTO (R_V850_CALLT_6_7_OFFSET, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
7, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* 16 bit offset from the call table base pointer. */
HOWTO (R_V850_CALLT_16_16_OFFSET, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_V850_GNU_VTINHERIT, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_V850_GNU_VTENTRY, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
pseudo-op when it finds a function call which can be relaxed. */
HOWTO (R_V850_LONGCALL, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
.longjump pseudo-op when it finds a branch which can be relaxed. */
HOWTO (R_V850_LONGJUMP, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
HOWTO (R_V850_ALIGN, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
0, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Simple pc-relative 32bit reloc. */
HOWTO (R_V850_REL32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* An ld.bu version of R_V850_LO16. */
HOWTO (R_V850_LO16_SPLIT_OFFSET, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* A unsigned PC relative 16 bit loop. */
HOWTO (R_V850_16_PCREL, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A PC relative 17 bit branch. */
HOWTO (R_V850_17_PCREL, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
17, /* Bitsize. */
true, /* PC_relative. */
0, /* Bitpos. */
/* A 23bit offset ld/st. */
HOWTO (R_V850_23, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
23, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
/* A PC relative 32 bit branch. */
HOWTO (R_V850_32_PCREL, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
true, /* pc_relative. */
1, /* bitpos. */
/* A absolute 32 bit branch. */
HOWTO (R_V850_32_ABS, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
true, /* pc_relative. */
1, /* bitpos. */
/* High 16 bits of symbol value. */
HOWTO (R_V850_HI16, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
false, /* PC_relative. */
0, /* Bitpos. */
/* Low 16 bits of symbol value. */
HOWTO (R_V850_16_S1, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
1, /* bitpos. */
/* Low 16 bits of symbol value. */
HOWTO (R_V850_LO16_S1, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
1, /* bitpos. */
/* 16 bit offset from the call table base pointer. */
HOWTO (R_V850_CALLT_15_16_OFFSET, /* type. */
1, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long). */
+ 2, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
1, /* bitpos. */
the symbol. */
HOWTO (R_V850_32_GOTPCREL, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
true, /* pc_relative. */
0, /* bitpos. */
the symbol. */
HOWTO (R_V850_16_GOT, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_V850_32_GOT, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
entry for the symbol. */
HOWTO (R_V850_22_PLT, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
22, /* bitsize. */
true, /* pc_relative. */
7, /* bitpos. */
HOWTO (R_V850_32_PLT, /* type. */
1, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
true, /* pc_relative. */
1, /* bitpos. */
run has to have the data at some particular address. */
HOWTO (R_V850_COPY, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long). */
+ 4, /* size. */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
entries. */
HOWTO (R_V850_GLOB_DAT, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
/* Marks a procedure linkage table entry for a symbol. */
HOWTO (R_V850_JMP_SLOT, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
addend. */
HOWTO (R_V850_RELATIVE, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_V850_16_GOTOFF, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_V850_32_GOTOFF, /* type. */
0, /* rightshift. */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_V850_CODE, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
HOWTO (R_V850_DATA, /* type. */
0, /* rightshift. */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
static reloc_howto_type v800_elf_howto_table[] =
{
- V800_RELOC (R_V810_NONE, 3, 0, 0, dont, false, generic), /* Type = 0x30 */
- V800_RELOC (R_V810_BYTE, 0, 8, 0, dont, false, generic),
- V800_RELOC (R_V810_HWORD, 1, 16, 0, dont, false, generic),
- V800_RELOC (R_V810_WORD, 2, 32, 0, dont, false, generic),
- V800_RELOC (R_V810_WLO, 1, 16, 0, dont, false, generic),
- V800_RELOC (R_V810_WHI, 1, 16, 0, dont, false, generic),
- V800_RELOC (R_V810_WHI1, 1, 16, 0, dont, false, generic),
- V800_RELOC (R_V810_GPBYTE, 0, 8, 0, dont, false, v850),
- V800_RELOC (R_V810_GPHWORD, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_GPWORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V810_GPWLO, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_GPWHI, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_GPWHI1, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V850_HWLO, 1, 16, 0, dont, false, generic),
+ V800_RELOC (R_V810_NONE, 0, 0, 0, dont, false, generic), /* Type = 0x30 */
+ V800_RELOC (R_V810_BYTE, 1, 8, 0, dont, false, generic),
+ V800_RELOC (R_V810_HWORD, 2, 16, 0, dont, false, generic),
+ V800_RELOC (R_V810_WORD, 4, 32, 0, dont, false, generic),
+ V800_RELOC (R_V810_WLO, 2, 16, 0, dont, false, generic),
+ V800_RELOC (R_V810_WHI, 2, 16, 0, dont, false, generic),
+ V800_RELOC (R_V810_WHI1, 2, 16, 0, dont, false, generic),
+ V800_RELOC (R_V810_GPBYTE, 1, 8, 0, dont, false, v850),
+ V800_RELOC (R_V810_GPHWORD, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_GPWORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V810_GPWLO, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_GPWHI, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_GPWHI1, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V850_HWLO, 2, 16, 0, dont, false, generic),
V800_EMPTY (R_V810_reserved1),
- V800_RELOC (R_V850_EP7BIT, 0, 7, 0, unsigned, false, v850),
- V800_RELOC (R_V850_EPHBYTE, 0, 8, 1, unsigned, false, v850),
- V800_RELOC (R_V850_EPWBYTE, 0, 8, 2, unsigned, false, v850),
- V800_RELOC (R_V850_REGHWLO, 1, 16, 0, dont, false, v850),
+ V800_RELOC (R_V850_EP7BIT, 1, 7, 0, unsigned, false, v850),
+ V800_RELOC (R_V850_EPHBYTE, 1, 8, 1, unsigned, false, v850),
+ V800_RELOC (R_V850_EPWBYTE, 1, 8, 2, unsigned, false, v850),
+ V800_RELOC (R_V850_REGHWLO, 2, 16, 0, dont, false, v850),
V800_EMPTY (R_V810_reserved2),
- V800_RELOC (R_V850_GPHWLO, 1, 16, 0, dont, false, v850),
+ V800_RELOC (R_V850_GPHWLO, 2, 16, 0, dont, false, v850),
V800_EMPTY (R_V810_reserved3),
- V800_RELOC (R_V850_PCR22, 2, 22, 0, signed, true, generic),
- V800_RELOC (R_V850_BLO, 2, 24, 0, dont, false, v850),
- V800_RELOC (R_V850_EP4BIT, 0, 4, 0, unsigned, false, v850),
- V800_RELOC (R_V850_EP5BIT, 0, 5, 0, unsigned, false, v850),
- V800_RELOC (R_V850_REGBLO, 2, 24, 0, dont, false, v850),
- V800_RELOC (R_V850_GPBLO, 2, 24, 0, dont, false, v850),
- V800_RELOC (R_V810_WLO_1, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_GPWLO_1, 1, 16, 0, signed, false, v850),
- V800_RELOC (R_V850_BLO_1, 2, 16, 0, signed, false, v850),
- V800_RELOC (R_V850_HWLO_1, 1, 16, 0, signed, false, v850),
+ V800_RELOC (R_V850_PCR22, 4, 22, 0, signed, true, generic),
+ V800_RELOC (R_V850_BLO, 4, 24, 0, dont, false, v850),
+ V800_RELOC (R_V850_EP4BIT, 1, 4, 0, unsigned, false, v850),
+ V800_RELOC (R_V850_EP5BIT, 1, 5, 0, unsigned, false, v850),
+ V800_RELOC (R_V850_REGBLO, 4, 24, 0, dont, false, v850),
+ V800_RELOC (R_V850_GPBLO, 4, 24, 0, dont, false, v850),
+ V800_RELOC (R_V810_WLO_1, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_GPWLO_1, 2, 16, 0, signed, false, v850),
+ V800_RELOC (R_V850_BLO_1, 4, 16, 0, signed, false, v850),
+ V800_RELOC (R_V850_HWLO_1, 2, 16, 0, signed, false, v850),
V800_EMPTY (R_V810_reserved4),
- V800_RELOC (R_V850_GPBLO_1, 2, 16, 1, signed, false, v850),
- V800_RELOC (R_V850_GPHWLO_1, 1, 16, 1, signed, false, v850),
+ V800_RELOC (R_V850_GPBLO_1, 4, 16, 1, signed, false, v850),
+ V800_RELOC (R_V850_GPHWLO_1, 2, 16, 1, signed, false, v850),
V800_EMPTY (R_V810_reserved5),
- V800_RELOC (R_V850_EPBLO, 2, 16, 1, signed, false, v850),
- V800_RELOC (R_V850_EPHWLO, 1, 16, 1, signed, false, v850),
+ V800_RELOC (R_V850_EPBLO, 4, 16, 1, signed, false, v850),
+ V800_RELOC (R_V850_EPHWLO, 2, 16, 1, signed, false, v850),
V800_EMPTY (R_V810_reserved6),
- V800_RELOC (R_V850_EPWLO_N, 1, 16, 1, signed, false, v850),
- V800_RELOC (R_V850_PC32, 2, 32, 1, signed, true, v850),
- V800_RELOC (R_V850_W23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_GPW23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_EPW23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_B23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_GPB23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_EPB23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_PC16U, 1, 16, 1, unsigned, true, generic),
- V800_RELOC (R_V850_PC17, 2, 17, 1, signed, true, generic),
- V800_RELOC (R_V850_DW8, 2, 8, 2, signed, false, v850),
- V800_RELOC (R_V850_GPDW8, 2, 8, 2, signed, false, v850),
- V800_RELOC (R_V850_EPDW8, 2, 8, 2, signed, false, v850),
- V800_RELOC (R_V850_PC9, 1, 9, 3, signed, true, v850),
- V800_RELOC (R_V810_REGBYTE, 0, 8, 0, dont, false, v850),
- V800_RELOC (R_V810_REGHWORD, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_REGWORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V810_REGWLO, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_REGWHI, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_REGWHI1, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V850_REGW23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_REGB23BIT, 2, 23, 1, signed, false, v850),
- V800_RELOC (R_V850_REGDW8, 2, 8, 2, signed, false, v850),
- V800_RELOC (R_V810_EPBYTE, 0, 8, 0, dont, false, v850),
- V800_RELOC (R_V810_EPHWORD, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_EPWORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V850_WLO23, 2, 32, 1, dont, false, v850),
- V800_RELOC (R_V850_WORD_E, 2, 32, 1, dont, false, v850),
- V800_RELOC (R_V850_REGWORD_E, 2, 32, 1, dont, false, v850),
- V800_RELOC (R_V850_WORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V850_GPWORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V850_REGWORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V850_EPWORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V810_TPBYTE, 0, 8, 0, dont, false, v850),
- V800_RELOC (R_V810_TPHWORD, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_TPWORD, 2, 32, 0, dont, false, v850),
- V800_RELOC (R_V810_TPWLO, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_TPWHI, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V810_TPWHI1, 1, 16, 0, dont, false, v850),
- V800_RELOC (R_V850_TPHWLO, 1, 16, 1, dont, false, v850),
- V800_RELOC (R_V850_TPBLO, 2, 24, 0, dont, false, v850),
- V800_RELOC (R_V810_TPWLO_1, 1, 16, 0, signed, false, v850),
- V800_RELOC (R_V850_TPBLO_1, 2, 16, 0, signed, false, v850),
- V800_RELOC (R_V850_TPHWLO_1, 1, 16, 0, signed, false, v850),
- V800_RELOC (R_V850_TP23BIT, 2, 23, 0, signed, false, v850),
- V800_RELOC (R_V850_TPW23BIT, 2, 23, 0, signed, false, v850),
- V800_RELOC (R_V850_TPDW8, 2, 8, 0, signed, false, v850)
+ V800_RELOC (R_V850_EPWLO_N, 2, 16, 1, signed, false, v850),
+ V800_RELOC (R_V850_PC32, 4, 32, 1, signed, true, v850),
+ V800_RELOC (R_V850_W23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_GPW23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_EPW23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_B23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_GPB23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_EPB23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_PC16U, 2, 16, 1, unsigned, true, generic),
+ V800_RELOC (R_V850_PC17, 4, 17, 1, signed, true, generic),
+ V800_RELOC (R_V850_DW8, 4, 8, 2, signed, false, v850),
+ V800_RELOC (R_V850_GPDW8, 4, 8, 2, signed, false, v850),
+ V800_RELOC (R_V850_EPDW8, 4, 8, 2, signed, false, v850),
+ V800_RELOC (R_V850_PC9, 2, 9, 3, signed, true, v850),
+ V800_RELOC (R_V810_REGBYTE, 1, 8, 0, dont, false, v850),
+ V800_RELOC (R_V810_REGHWORD, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_REGWORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V810_REGWLO, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_REGWHI, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_REGWHI1, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V850_REGW23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_REGB23BIT, 4, 23, 1, signed, false, v850),
+ V800_RELOC (R_V850_REGDW8, 4, 8, 2, signed, false, v850),
+ V800_RELOC (R_V810_EPBYTE, 1, 8, 0, dont, false, v850),
+ V800_RELOC (R_V810_EPHWORD, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_EPWORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V850_WLO23, 4, 32, 1, dont, false, v850),
+ V800_RELOC (R_V850_WORD_E, 4, 32, 1, dont, false, v850),
+ V800_RELOC (R_V850_REGWORD_E, 4, 32, 1, dont, false, v850),
+ V800_RELOC (R_V850_WORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V850_GPWORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V850_REGWORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V850_EPWORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V810_TPBYTE, 1, 8, 0, dont, false, v850),
+ V800_RELOC (R_V810_TPHWORD, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_TPWORD, 4, 32, 0, dont, false, v850),
+ V800_RELOC (R_V810_TPWLO, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_TPWHI, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V810_TPWHI1, 2, 16, 0, dont, false, v850),
+ V800_RELOC (R_V850_TPHWLO, 2, 16, 1, dont, false, v850),
+ V800_RELOC (R_V850_TPBLO, 4, 24, 0, dont, false, v850),
+ V800_RELOC (R_V810_TPWLO_1, 2, 16, 0, signed, false, v850),
+ V800_RELOC (R_V850_TPBLO_1, 4, 16, 0, signed, false, v850),
+ V800_RELOC (R_V850_TPHWLO_1, 2, 16, 0, signed, false, v850),
+ V800_RELOC (R_V850_TP23BIT, 4, 23, 0, signed, false, v850),
+ V800_RELOC (R_V850_TPW23BIT, 4, 23, 0, signed, false, v850),
+ V800_RELOC (R_V850_TPDW8, 4, 8, 0, signed, false, v850)
};
\f
/* Map a bfd relocation into the appropriate howto structure. */
static reloc_howto_type howto_table[] = {
HOWTO (R_VAX_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_PC32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_PC16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_PC8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_GOT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_PLT32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_COPY, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_GLOB_DAT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_JMP_SLOT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_VAX_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_VAX_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_VAX_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_VISIUM_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation. */
HOWTO (R_VISIUM_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_VISIUM_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_VISIUM_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit PC relative relocation. */
HOWTO (R_VISIUM_8_PCREL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit PC relative relocation. */
HOWTO (R_VISIUM_16_PCREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 32-bit PC relative relocation. */
HOWTO (R_VISIUM_32_PCREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
and always in the second half of the instruction. */
HOWTO (R_VISIUM_PC16, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* The high 16 bits of symbol value. */
HOWTO (R_VISIUM_HI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The low 16 bits of symbol value. */
HOWTO (R_VISIUM_LO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit immediate value. */
HOWTO (R_VISIUM_IM16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The high 16 bits of symbol value, pc relative. */
HOWTO (R_VISIUM_HI16_PCREL, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* The low 16 bits of symbol value, pc relative. */
HOWTO (R_VISIUM_LO16_PCREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit immediate value, pc relative. */
HOWTO (R_VISIUM_IM16_PCREL, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
static reloc_howto_type visium_elf_vtinherit_howto =
HOWTO (R_VISIUM_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type visium_elf_vtentry_howto =
HOWTO (R_VISIUM_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
{
HOWTO (R_WASM32_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit absolute */
HOWTO (R_WASM32_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_XC16X_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_XC16X_ABS_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
8, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_XC16X_ABS_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_XC16X_ABS_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A PC relative 8 bit relocation. */
HOWTO (R_XC16X_8_PCREL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
8, /* bitpos */
/* Relocation regarding page number. */
HOWTO (R_XC16X_PAG, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relocation regarding page number. */
HOWTO (R_XC16X_POF, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relocation regarding segment number. */
HOWTO (R_XC16X_SEG, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relocation regarding segment offset. */
HOWTO (R_XC16X_SOF, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_XGATE_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation. */
HOWTO (R_XGATE_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 8 bit PC-rel relocation. */
HOWTO (R_XGATE_PCREL_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_XGATE_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
code relocation. It's used by gas for -gstabs generation. */
HOWTO (R_XGATE_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit PC-rel relocation. */
HOWTO (R_XGATE_PCREL_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_XGATE_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_XGATE_GNU_VTENTRY, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 24 bit relocation. */
HOWTO (R_XGATE_24, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16-bit low relocation. */
HOWTO (R_XGATE_LO16, /* type */
8, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A page relocation. */
HOWTO (R_XGATE_GPAGE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 9 bit absolute relocation. */
HOWTO (R_XGATE_PCREL_9, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
9, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation (upper address). */
HOWTO (R_XGATE_PCREL_10, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
10, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 8 bit absolute relocation. */
HOWTO (R_XGATE_IMM8_LO, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation (upper address). */
HOWTO (R_XGATE_IMM8_HI, /* type */
8, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 3 bit absolute relocation. */
HOWTO (R_XGATE_IMM3, /* type */
8, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 4 bit absolute relocation. */
HOWTO (R_XGATE_IMM4, /* type */
8, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 5 bit absolute relocation. */
HOWTO (R_XGATE_IMM5, /* type */
8, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Mark beginning of a jump instruction (any form). */
HOWTO (R_XGATE_RL_JUMP, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Mark beginning of Gcc relaxation group instruction. */
HOWTO (R_XGATE_RL_GROUP, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_XSTORMY16_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_XSTORMY16_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_XSTORMY16_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_XSTORMY16_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit pc-relative relocation. */
HOWTO (R_XSTORMY16_PC32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit pc-relative relocation. */
HOWTO (R_XSTORMY16_PC16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* An 8 bit pc-relative relocation. */
HOWTO (R_XSTORMY16_PC8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 12-bit pc-relative relocation suitable for the branch instructions. */
HOWTO (R_XSTORMY16_REL_12, /* type */
1, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
11, /* bitsize */
true, /* pc_relative */
1, /* bitpos */
/* A 24-bit absolute relocation suitable for the jump instructions. */
HOWTO (R_XSTORMY16_24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation to a function pointer. */
HOWTO (R_XSTORMY16_FPTR16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low order 16 bit value of a high memory address. */
HOWTO (R_XSTORMY16_LO16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High order 16 bit value of a high memory address. */
HOWTO (R_XSTORMY16_HI16, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 12 bit absolute relocation. */
HOWTO (R_XSTORMY16_12, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_XSTORMY16_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_XSTORMY16_GNU_VTENTRY, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
\f
static reloc_howto_type elf_howto_table[] =
{
- HOWTO (R_XTENSA_NONE, 0, 3, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_NONE, 0, 0, 0, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_NONE",
false, 0, 0, false),
- HOWTO (R_XTENSA_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_32",
true, 0xffffffff, 0xffffffff, false),
special: 1 means to substitute a pointer to the runtime linker's
dynamic resolver function; 2 means to substitute the link map for
the shared object. */
- HOWTO (R_XTENSA_RTLD, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_RTLD, 0, 4, 32, false, 0, complain_overflow_dont,
NULL, "R_XTENSA_RTLD", false, 0, 0, false),
- HOWTO (R_XTENSA_GLOB_DAT, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_GLOB_DAT, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_XTENSA_GLOB_DAT",
false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_JMP_SLOT, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_JMP_SLOT, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_XTENSA_JMP_SLOT",
false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_RELATIVE, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_RELATIVE, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_XTENSA_RELATIVE",
false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_PLT, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_PLT, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_PLT",
false, 0, 0xffffffff, false),
EMPTY_HOWTO (7),
/* Old relocations for backward compatibility. */
- HOWTO (R_XTENSA_OP0, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_OP0, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_OP0", false, 0, 0, true),
- HOWTO (R_XTENSA_OP1, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_OP1, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_OP1", false, 0, 0, true),
- HOWTO (R_XTENSA_OP2, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_OP2, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_OP2", false, 0, 0, true),
/* Assembly auto-expansion. */
- HOWTO (R_XTENSA_ASM_EXPAND, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_ASM_EXPAND, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_ASM_EXPAND", false, 0, 0, true),
/* Relax assembly auto-expansion. */
- HOWTO (R_XTENSA_ASM_SIMPLIFY, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_ASM_SIMPLIFY, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_ASM_SIMPLIFY", false, 0, 0, true),
EMPTY_HOWTO (13),
- HOWTO (R_XTENSA_32_PCREL, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_32_PCREL, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_32_PCREL",
false, 0, 0xffffffff, true),
/* GNU extension to record C++ vtable hierarchy. */
- HOWTO (R_XTENSA_GNU_VTINHERIT, 0, 2, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_GNU_VTINHERIT, 0, 4, 0, false, 0, complain_overflow_dont,
NULL, "R_XTENSA_GNU_VTINHERIT",
false, 0, 0, false),
/* GNU extension to record C++ vtable member usage. */
- HOWTO (R_XTENSA_GNU_VTENTRY, 0, 2, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_GNU_VTENTRY, 0, 4, 0, false, 0, complain_overflow_dont,
_bfd_elf_rel_vtable_reloc_fn, "R_XTENSA_GNU_VTENTRY",
false, 0, 0, false),
/* Relocations for supporting difference of symbols. */
- HOWTO (R_XTENSA_DIFF8, 0, 0, 8, false, 0, complain_overflow_signed,
+ HOWTO (R_XTENSA_DIFF8, 0, 1, 8, false, 0, complain_overflow_signed,
bfd_elf_xtensa_reloc, "R_XTENSA_DIFF8", false, 0, 0xff, false),
- HOWTO (R_XTENSA_DIFF16, 0, 1, 16, false, 0, complain_overflow_signed,
+ HOWTO (R_XTENSA_DIFF16, 0, 2, 16, false, 0, complain_overflow_signed,
bfd_elf_xtensa_reloc, "R_XTENSA_DIFF16", false, 0, 0xffff, false),
- HOWTO (R_XTENSA_DIFF32, 0, 2, 32, false, 0, complain_overflow_signed,
+ HOWTO (R_XTENSA_DIFF32, 0, 4, 32, false, 0, complain_overflow_signed,
bfd_elf_xtensa_reloc, "R_XTENSA_DIFF32", false, 0, 0xffffffff, false),
/* General immediate operand relocations. */
- HOWTO (R_XTENSA_SLOT0_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT0_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT0_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT1_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT1_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT1_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT2_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT2_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT2_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT3_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT3_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT3_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT4_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT4_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT4_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT5_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT5_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT5_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT6_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT6_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT6_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT7_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT7_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT7_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT8_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT8_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT8_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT9_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT9_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT9_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT10_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT10_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT10_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT11_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT11_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT11_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT12_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT12_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT12_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT13_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT13_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT13_OP", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT14_OP, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT14_OP, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT14_OP", false, 0, 0, true),
/* "Alternate" relocations. The meaning of these is opcode-specific. */
- HOWTO (R_XTENSA_SLOT0_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT0_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT0_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT1_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT1_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT1_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT2_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT2_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT2_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT3_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT3_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT3_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT4_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT4_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT4_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT5_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT5_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT5_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT6_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT6_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT6_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT7_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT7_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT7_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT8_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT8_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT8_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT9_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT9_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT9_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT10_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT10_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT10_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT11_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT11_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT11_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT12_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT12_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT12_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT13_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT13_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT13_ALT", false, 0, 0, true),
- HOWTO (R_XTENSA_SLOT14_ALT, 0, 0, 0, true, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_SLOT14_ALT, 0, 1, 0, true, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_SLOT14_ALT", false, 0, 0, true),
/* TLS relocations. */
- HOWTO (R_XTENSA_TLSDESC_FN, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_TLSDESC_FN, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_TLSDESC_FN",
false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_TLSDESC_ARG, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_TLSDESC_ARG, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_TLSDESC_ARG",
false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_TLS_DTPOFF, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_TLS_DTPOFF, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_TLS_DTPOFF",
false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_TLS_TPOFF, 0, 2, 32, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_TLS_TPOFF, 0, 4, 32, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_TLS_TPOFF",
false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_TLS_FUNC, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_TLS_FUNC, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_TLS_FUNC",
false, 0, 0, false),
- HOWTO (R_XTENSA_TLS_ARG, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_TLS_ARG, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_TLS_ARG",
false, 0, 0, false),
- HOWTO (R_XTENSA_TLS_CALL, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_XTENSA_TLS_CALL, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_xtensa_reloc, "R_XTENSA_TLS_CALL",
false, 0, 0, false),
- HOWTO (R_XTENSA_PDIFF8, 0, 0, 8, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_PDIFF8, 0, 1, 8, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_PDIFF8", false, 0, 0xff, false),
- HOWTO (R_XTENSA_PDIFF16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_PDIFF16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_PDIFF16", false, 0, 0xffff, false),
- HOWTO (R_XTENSA_PDIFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_PDIFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_PDIFF32", false, 0, 0xffffffff, false),
- HOWTO (R_XTENSA_NDIFF8, 0, 0, 8, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_NDIFF8, 0, 1, 8, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_NDIFF8", false, 0, 0xff, false),
- HOWTO (R_XTENSA_NDIFF16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_NDIFF16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_NDIFF16", false, 0, 0xffff, false),
- HOWTO (R_XTENSA_NDIFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO (R_XTENSA_NDIFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_xtensa_reloc, "R_XTENSA_NDIFF32", false, 0, 0xffffffff, false),
};
BFD_HOWTO (BFD_RELOC_NONE,
R_Z80_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_8,
R_Z80_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_DISP8,
R_Z80_8_DIS, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_8_PCREL,
R_Z80_8_PCREL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_16,
R_Z80_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_24,
R_Z80_24, /* type */
0, /* rightshift */
- 5, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_32,
R_Z80_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE0,
R_Z80_BYTE0, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE1,
R_Z80_BYTE1, /* type */
8, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE2,
R_Z80_BYTE2, /* type */
16, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_BYTE3,
R_Z80_BYTE3, /* type */
24, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_WORD0,
R_Z80_WORD0, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_WORD1,
R_Z80_WORD1, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
BFD_HOWTO (BFD_RELOC_Z80_16_BE,
R_Z80_16_BE, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
#define SKIP_HOWTO(N) \
- HOWTO(N, 0, 0, 0, 0, 0, complain_overflow_dont, elf64_alpha_reloc_bad, 0, 0, 0, 0, 0)
+ HOWTO(N, 0, 1, 0, 0, 0, complain_overflow_dont, elf64_alpha_reloc_bad, 0, 0, 0, 0, 0)
static reloc_howto_type elf64_alpha_howto_table[] =
{
HOWTO (R_ALPHA_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 32 bit reference to a symbol. */
HOWTO (R_ALPHA_REFLONG, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 64 bit reference to a symbol. */
HOWTO (R_ALPHA_REFQUAD, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
added in. */
HOWTO (R_ALPHA_GPREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Used for an instruction that refers to memory off the GP register. */
HOWTO (R_ALPHA_LITERAL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
This does not actually do any relocation. */
HOWTO (R_ALPHA_LITUSE, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
in the GPDISP_HI16 reloc. */
HOWTO (R_ALPHA_GPDISP, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 21 bit branch. */
HOWTO (R_ALPHA_BRADDR, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A hint for a jump to a register. */
HOWTO (R_ALPHA_HINT, /* type */
2, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
14, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 16 bit PC relative offset. */
HOWTO (R_ALPHA_SREL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32 bit PC relative offset. */
HOWTO (R_ALPHA_SREL32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 64 bit PC relative offset. */
HOWTO (R_ALPHA_SREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* The high 16 bits of the displacement from GP to the target. */
HOWTO (R_ALPHA_GPRELHIGH,
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The low 16 bits of the displacement from GP to the target. */
HOWTO (R_ALPHA_GPRELLOW,
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16-bit displacement from the GP to the target. */
HOWTO (R_ALPHA_GPREL16,
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
because .dynbss is an ugly thing. */
HOWTO (R_ALPHA_COPY,
0,
- 0,
+ 1,
0,
false,
0,
/* A dynamic relocation for a .got entry. */
HOWTO (R_ALPHA_GLOB_DAT,
0,
- 0,
+ 1,
0,
false,
0,
/* A dynamic relocation for a .plt entry. */
HOWTO (R_ALPHA_JMP_SLOT,
0,
- 0,
+ 1,
0,
false,
0,
/* A dynamic relocation to add the base of the DSO to a 64-bit field. */
HOWTO (R_ALPHA_RELATIVE,
0,
- 0,
+ 1,
0,
false,
0,
/* A 21 bit branch that adjusts for gp loads. */
HOWTO (R_ALPHA_BRSGP, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Creates a tls_index for the symbol in the got. */
HOWTO (R_ALPHA_TLSGD, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Creates a tls_index for the (current) module in the got. */
HOWTO (R_ALPHA_TLSLDM, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A dynamic relocation for a DTP module entry. */
HOWTO (R_ALPHA_DTPMOD64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
from DTP to the target. */
HOWTO (R_ALPHA_GOTDTPREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A dynamic relocation for a displacement from DTP to the target. */
HOWTO (R_ALPHA_DTPREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The high 16 bits of the displacement from DTP to the target. */
HOWTO (R_ALPHA_DTPRELHI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The low 16 bits of the displacement from DTP to the target. */
HOWTO (R_ALPHA_DTPRELLO, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16-bit displacement from DTP to the target. */
HOWTO (R_ALPHA_DTPREL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
from TP to the target. */
HOWTO (R_ALPHA_GOTTPREL, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A dynamic relocation for a displacement from TP to the target. */
HOWTO (R_ALPHA_TPREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The high 16 bits of the displacement from TP to the target. */
HOWTO (R_ALPHA_TPRELHI, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The low 16 bits of the displacement from TP to the target. */
HOWTO (R_ALPHA_TPRELLO, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16-bit displacement from TP to the target. */
HOWTO (R_ALPHA_TPREL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* This reloc does nothing. */
HOWTO (R_BPF_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 64-immediate in LDDW instruction. */
HOWTO (R_BPF_INSN_64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
32, /* bitpos */
/* 32-immediate in many instructions. */
HOWTO (R_BPF_INSN_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
32, /* bitpos */
/* 16-bit offsets in instructions. */
HOWTO (R_BPF_INSN_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
16, /* bitpos */
/* 16-bit PC-relative address in jump instructions. */
HOWTO (R_BPF_INSN_DISP16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
16, /* bitpos */
HOWTO (R_BPF_DATA_8_PCREL,
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_BPF_DATA_16_PCREL,
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_BPF_DATA_32_PCREL,
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_BPF_DATA_8,
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_BPF_DATA_16,
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit PC-relative address in call instructions. */
HOWTO (R_BPF_INSN_DISP32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
32, /* bitpos */
/* 32-bit data. */
HOWTO (R_BPF_DATA_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 64-bit data. */
HOWTO (R_BPF_DATA_64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_BPF_DATA_64_PCREL,
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
static reloc_howto_type dummy =
HOWTO (0, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
HOWTO (R_MIPS_REL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
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 */
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 */
HOWTO (R_MIPS_TLS_DTPMOD64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MIPS_TLS_DTPREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
HOWTO (R_MIPS_TLS_TPREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
HOWTO (R_MIPS_PCHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MIPS_PCLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
HOWTO (R_MIPS_REL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
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 */
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 */
HOWTO (R_MIPS_TLS_DTPMOD64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MIPS_TLS_DTPREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
HOWTO (R_MIPS_TLS_TPREL64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
HOWTO (R_MIPS_PCHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MIPS_PCLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
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 */
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 */
static reloc_howto_type elf_mips_copy_howto =
HOWTO (R_MIPS_COPY, /* type */
0, /* rightshift */
- 0, /* this one is variable size */
+ 1, /* this one is variable size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elf_mips_jump_slot_howto =
HOWTO (R_MIPS_JUMP_SLOT, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
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 */
/* This reloc does nothing. */
HOWTO (R_MMIX_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_MMIX_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 16 bit absolute relocation. */
HOWTO (R_MMIX_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 24 bit absolute relocation. */
HOWTO (R_MMIX_24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_MMIX_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 64 bit relocation. */
HOWTO (R_MMIX_64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit PC-relative relocation. */
HOWTO (R_MMIX_PC_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* An 16 bit PC-relative relocation. */
HOWTO (R_MMIX_PC_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* An 24 bit PC-relative relocation. */
HOWTO (R_MMIX_PC_24, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
24, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute PC-relative relocation. */
HOWTO (R_MMIX_PC_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 64 bit PC-relative relocation. */
HOWTO (R_MMIX_PC_64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_MMIX_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_MMIX_GNU_VTENTRY, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
significant bits are set. The howto members reflect a simple GETA. */
HOWTO (R_MMIX_GETA, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_GETA_1, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_GETA_2, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_GETA_3, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
reflect a simple branch. */
HOWTO (R_MMIX_CBRANCH, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_CBRANCH_J, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_CBRANCH_1, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_CBRANCH_2, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_CBRANCH_3, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
PUSHJ. */
HOWTO (R_MMIX_PUSHJ, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_PUSHJ_1, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_PUSHJ_2, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_PUSHJ_3, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
memory segments. The howto members reflect a trivial JMP. */
HOWTO (R_MMIX_JMP, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_JMP_1, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_JMP_2, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_JMP_3, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
GETA/PUSHJ/branches. */
HOWTO (R_MMIX_ADDR19, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* For JMP. */
HOWTO (R_MMIX_ADDR27, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
instruction (offset -3) needs adjusting. */
HOWTO (R_MMIX_REG_OR_BYTE, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A general register. */
HOWTO (R_MMIX_REG, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
the bitmasks correspond to what we store in the image. */
HOWTO (R_MMIX_BASE_PLUS_OFFSET, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
section to discard *after* relocation. */
HOWTO (R_MMIX_LOCAL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_MMIX_PUSHJ_STUBBABLE, /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
names.
Most of these are mainly used by the NFP toolchain to resolve things
before the final ELF file is created. */
+#define NFP_HOWTO(type) \
+ HOWTO (type, 0, 0, 0, false, 0, complain_overflow_dont, elf64_nfp_reloc, \
+ #type, false, 0, 0, false)
static reloc_howto_type elf_nfp_howto_table[] =
{
- HOWTO (R_NFP_NOTYPE, /* Type. */
- 0, /* Rightshift. */
- 3, /* Size. */
- 0, /* Bitsize. */
- false, /* PC_relative. */
- 0, /* Bitpos. */
- complain_overflow_dont,/* Complain_on_overflow. */
- elf64_nfp_reloc, /* Special_function. */
- "R_NFP_NOTYPE", /* Name. */
- false, /* Partial_inplace. */
- 0, /* Src_mask. */
- 0, /* Dst_mask. */
- false), /* PCrel_offset. */
- HOWTO (R_NFP_W32LE, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W32LE",
- false, 0, 0, false),
- HOWTO (R_NFP_SRC8_A, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SRC8_A",
- false, 0, 0, false),
- HOWTO (R_NFP_SRC8_B, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SRC8_B",
- false, 0, 0, false),
- HOWTO (R_NFP_IMMED8_I, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_IMMED8_I",
- false, 0, 0, false),
- HOWTO (R_NFP_SC, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SC",
- false, 0, 0, false),
- HOWTO (R_NFP_IMMED_LO16_I_A, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_IMMED_LO16_I_A",
- false, 0, 0, false),
- HOWTO (R_NFP_IMMED_LO16_I_B, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_IMMED_LO16_I_B",
- false, 0, 0, false),
- HOWTO (R_NFP_SRC7_B, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SRC7_B",
- false, 0, 0, false),
- HOWTO (R_NFP_SRC7_A, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SRC7_A",
- false, 0, 0, false),
- HOWTO (R_NFP_SRC8_I_B, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SRC8_I_B",
- false, 0, 0, false),
- HOWTO (R_NFP_SRC8_I_A, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SRC8_I_A",
- false, 0, 0, false),
- HOWTO (R_NFP_IMMED_HI16_I_A, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_IMMED_HI16_I_A",
- false, 0, 0, false),
- HOWTO (R_NFP_IMMED_HI16_I_B, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_IMMED_HI16_I_B",
- false, 0, 0, false),
- HOWTO (R_NFP_W64LE, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W64LE",
- false, 0, 0, false),
- HOWTO (R_NFP_SH_INFO, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_SH_INFO",
- false, 0, 0, false),
- HOWTO (R_NFP_W32BE, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W32BE",
- false, 0, 0, false),
- HOWTO (R_NFP_W64BE, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W64BE",
- false, 0, 0, false),
- HOWTO (R_NFP_W32_29_24, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W32_29_24",
- false, 0, 0, false),
- HOWTO (R_NFP_W32LE_AND, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W32LE_AND",
- false, 0, 0, false),
- HOWTO (R_NFP_W32BE_AND, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W32BE_AND",
- false, 0, 0, false),
- HOWTO (R_NFP_W32LE_OR, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W32LE_OR",
- false, 0, 0, false),
- HOWTO (R_NFP_W32BE_OR, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W32BE_OR",
- false, 0, 0, false),
- HOWTO (R_NFP_W64LE_AND, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W64LE_AND",
- false, 0, 0, false),
- HOWTO (R_NFP_W64BE_AND, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W64BE_AND",
- false, 0, 0, false),
- HOWTO (R_NFP_W64LE_OR, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W64LE_OR",
- false, 0, 0, false),
- HOWTO (R_NFP_W64BE_OR, 0, 3, 0, false, 0,
- complain_overflow_dont, elf64_nfp_reloc,
- "R_NFP_W64BE_OR",
- false, 0, 0, false)
+ NFP_HOWTO (R_NFP_NOTYPE),
+ NFP_HOWTO (R_NFP_W32LE),
+ NFP_HOWTO (R_NFP_SRC8_A),
+ NFP_HOWTO (R_NFP_SRC8_B),
+ NFP_HOWTO (R_NFP_IMMED8_I),
+ NFP_HOWTO (R_NFP_SC),
+ NFP_HOWTO (R_NFP_IMMED_LO16_I_A),
+ NFP_HOWTO (R_NFP_IMMED_LO16_I_B),
+ NFP_HOWTO (R_NFP_SRC7_B),
+ NFP_HOWTO (R_NFP_SRC7_A),
+ NFP_HOWTO (R_NFP_SRC8_I_B),
+ NFP_HOWTO (R_NFP_SRC8_I_A),
+ NFP_HOWTO (R_NFP_IMMED_HI16_I_A),
+ NFP_HOWTO (R_NFP_IMMED_HI16_I_B),
+ NFP_HOWTO (R_NFP_W64LE),
+ NFP_HOWTO (R_NFP_SH_INFO),
+ NFP_HOWTO (R_NFP_W32BE),
+ NFP_HOWTO (R_NFP_W64BE),
+ NFP_HOWTO (R_NFP_W32_29_24),
+ NFP_HOWTO (R_NFP_W32LE_AND),
+ NFP_HOWTO (R_NFP_W32BE_AND),
+ NFP_HOWTO (R_NFP_W32LE_OR),
+ NFP_HOWTO (R_NFP_W32BE_OR),
+ NFP_HOWTO (R_NFP_W64LE_AND),
+ NFP_HOWTO (R_NFP_W64BE_AND),
+ NFP_HOWTO (R_NFP_W64LE_OR),
+ NFP_HOWTO (R_NFP_W64BE_OR)
};
static bool
static reloc_howto_type ppc64_elf_howto_raw[] =
{
/* This reloc does nothing. */
- HOW (R_PPC64_NONE, 3, 0, 0, 0, false, dont,
+ HOW (R_PPC64_NONE, 0, 0, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* A standard 32 bit relocation. */
- HOW (R_PPC64_ADDR32, 2, 32, 0xffffffff, 0, false, bitfield,
+ HOW (R_PPC64_ADDR32, 4, 32, 0xffffffff, 0, false, bitfield,
bfd_elf_generic_reloc),
/* An absolute 26 bit branch; the lower two bits must be zero.
FIXME: we don't check that, we just clear them. */
- HOW (R_PPC64_ADDR24, 2, 26, 0x03fffffc, 0, false, bitfield,
+ HOW (R_PPC64_ADDR24, 4, 26, 0x03fffffc, 0, false, bitfield,
bfd_elf_generic_reloc),
/* A standard 16 bit relocation. */
- HOW (R_PPC64_ADDR16, 1, 16, 0xffff, 0, false, bitfield,
+ HOW (R_PPC64_ADDR16, 2, 16, 0xffff, 0, false, bitfield,
bfd_elf_generic_reloc),
/* A 16 bit relocation without overflow. */
- HOW (R_PPC64_ADDR16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_ADDR16_LO, 2, 16, 0xffff, 0, false, dont,
bfd_elf_generic_reloc),
/* Bits 16-31 of an address. */
- HOW (R_PPC64_ADDR16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_ADDR16_HI, 2, 16, 0xffff, 16, false, signed,
bfd_elf_generic_reloc),
/* Bits 16-31 of an address, plus 1 if the contents of the low 16
bits, treated as a signed number, is negative. */
- HOW (R_PPC64_ADDR16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_ADDR16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_ha_reloc),
/* An absolute 16 bit branch; the lower two bits must be zero.
FIXME: we don't check that, we just clear them. */
- HOW (R_PPC64_ADDR14, 2, 16, 0x0000fffc, 0, false, signed,
+ HOW (R_PPC64_ADDR14, 4, 16, 0x0000fffc, 0, false, signed,
ppc64_elf_branch_reloc),
/* An absolute 16 bit branch, for which bit 10 should be set to
indicate that the branch is expected to be taken. The lower two
bits must be zero. */
- HOW (R_PPC64_ADDR14_BRTAKEN, 2, 16, 0x0000fffc, 0, false, signed,
+ HOW (R_PPC64_ADDR14_BRTAKEN, 4, 16, 0x0000fffc, 0, false, signed,
ppc64_elf_brtaken_reloc),
/* An absolute 16 bit branch, for which bit 10 should be set to
indicate that the branch is not expected to be taken. The lower
two bits must be zero. */
- HOW (R_PPC64_ADDR14_BRNTAKEN, 2, 16, 0x0000fffc, 0, false, signed,
+ HOW (R_PPC64_ADDR14_BRNTAKEN, 4, 16, 0x0000fffc, 0, false, signed,
ppc64_elf_brtaken_reloc),
/* A relative 26 bit branch; the lower two bits must be zero. */
- HOW (R_PPC64_REL24, 2, 26, 0x03fffffc, 0, true, signed,
+ HOW (R_PPC64_REL24, 4, 26, 0x03fffffc, 0, true, signed,
ppc64_elf_branch_reloc),
/* A variant of R_PPC64_REL24, used when r2 is not the toc pointer. */
- HOW (R_PPC64_REL24_NOTOC, 2, 26, 0x03fffffc, 0, true, signed,
+ HOW (R_PPC64_REL24_NOTOC, 4, 26, 0x03fffffc, 0, true, signed,
ppc64_elf_branch_reloc),
/* Another variant, when p10 insns can't be used on stubs. */
- HOW (R_PPC64_REL24_P9NOTOC, 2, 26, 0x03fffffc, 0, true, signed,
+ HOW (R_PPC64_REL24_P9NOTOC, 4, 26, 0x03fffffc, 0, true, signed,
ppc64_elf_branch_reloc),
/* A relative 16 bit branch; the lower two bits must be zero. */
- HOW (R_PPC64_REL14, 2, 16, 0x0000fffc, 0, true, signed,
+ HOW (R_PPC64_REL14, 4, 16, 0x0000fffc, 0, true, signed,
ppc64_elf_branch_reloc),
/* A relative 16 bit branch. Bit 10 should be set to indicate that
the branch is expected to be taken. The lower two bits must be
zero. */
- HOW (R_PPC64_REL14_BRTAKEN, 2, 16, 0x0000fffc, 0, true, signed,
+ HOW (R_PPC64_REL14_BRTAKEN, 4, 16, 0x0000fffc, 0, true, signed,
ppc64_elf_brtaken_reloc),
/* A relative 16 bit branch. Bit 10 should be set to indicate that
the branch is not expected to be taken. The lower two bits must
be zero. */
- HOW (R_PPC64_REL14_BRNTAKEN, 2, 16, 0x0000fffc, 0, true, signed,
+ HOW (R_PPC64_REL14_BRNTAKEN, 4, 16, 0x0000fffc, 0, true, signed,
ppc64_elf_brtaken_reloc),
/* Like R_PPC64_ADDR16, but referring to the GOT table entry for the
symbol. */
- HOW (R_PPC64_GOT16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC64_GOT16, 2, 16, 0xffff, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR16_LO, but referring to the GOT table entry for
the symbol. */
- HOW (R_PPC64_GOT16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_GOT16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR16_HI, but referring to the GOT table entry for
the symbol. */
- HOW (R_PPC64_GOT16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR16_HA, but referring to the GOT table entry for
the symbol. */
- HOW (R_PPC64_GOT16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* This is used only by the dynamic linker. The symbol should exist
dynamic linker copies the data addressed by the symbol from the
shared library into the object, because the object being
run has to have the data at some particular address. */
- HOW (R_PPC64_COPY, 0, 0, 0, 0, false, dont,
+ HOW (R_PPC64_COPY, 1, 0, 0, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR64, but used when setting global offset table
entries. */
- HOW (R_PPC64_GLOB_DAT, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_GLOB_DAT, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Created by the link editor. Marks a procedure linkage table
entry for a symbol. */
- HOW (R_PPC64_JMP_SLOT, 0, 0, 0, 0, false, dont,
+ HOW (R_PPC64_JMP_SLOT, 1, 0, 0, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Used only by the dynamic linker. When the object is run, this
doubleword64 is set to the load address of the object, plus the
addend. */
- HOW (R_PPC64_RELATIVE, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_RELATIVE, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
bfd_elf_generic_reloc),
/* Like R_PPC64_ADDR32, but may be unaligned. */
- HOW (R_PPC64_UADDR32, 2, 32, 0xffffffff, 0, false, bitfield,
+ HOW (R_PPC64_UADDR32, 4, 32, 0xffffffff, 0, false, bitfield,
bfd_elf_generic_reloc),
/* Like R_PPC64_ADDR16, but may be unaligned. */
- HOW (R_PPC64_UADDR16, 1, 16, 0xffff, 0, false, bitfield,
+ HOW (R_PPC64_UADDR16, 2, 16, 0xffff, 0, false, bitfield,
bfd_elf_generic_reloc),
/* 32-bit PC relative. */
- HOW (R_PPC64_REL32, 2, 32, 0xffffffff, 0, true, signed,
+ HOW (R_PPC64_REL32, 4, 32, 0xffffffff, 0, true, signed,
bfd_elf_generic_reloc),
/* 32-bit relocation to the symbol's procedure linkage table. */
- HOW (R_PPC64_PLT32, 2, 32, 0xffffffff, 0, false, bitfield,
+ HOW (R_PPC64_PLT32, 4, 32, 0xffffffff, 0, false, bitfield,
ppc64_elf_unhandled_reloc),
/* 32-bit PC relative relocation to the symbol's procedure linkage table.
FIXME: R_PPC64_PLTREL32 not supported. */
- HOW (R_PPC64_PLTREL32, 2, 32, 0xffffffff, 0, true, signed,
+ HOW (R_PPC64_PLTREL32, 4, 32, 0xffffffff, 0, true, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR16_LO, but referring to the PLT table entry for
the symbol. */
- HOW (R_PPC64_PLT16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_PLT16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR16_HI, but referring to the PLT table entry for
the symbol. */
- HOW (R_PPC64_PLT16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_PLT16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR16_HA, but referring to the PLT table entry for
the symbol. */
- HOW (R_PPC64_PLT16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_PLT16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* 16-bit section relative relocation. */
- HOW (R_PPC64_SECTOFF, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC64_SECTOFF, 2, 16, 0xffff, 0, false, signed,
ppc64_elf_sectoff_reloc),
/* Like R_PPC64_SECTOFF, but no overflow warning. */
- HOW (R_PPC64_SECTOFF_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_SECTOFF_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_sectoff_reloc),
/* 16-bit upper half section relative relocation. */
- HOW (R_PPC64_SECTOFF_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_SECTOFF_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_sectoff_reloc),
/* 16-bit upper half adjusted section relative relocation. */
- HOW (R_PPC64_SECTOFF_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_SECTOFF_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_sectoff_ha_reloc),
/* Like R_PPC64_REL24 without touching the two least significant bits. */
- HOW (R_PPC64_REL30, 2, 30, 0xfffffffc, 2, true, dont,
+ HOW (R_PPC64_REL30, 4, 30, 0xfffffffc, 2, true, dont,
bfd_elf_generic_reloc),
/* Relocs in the 64-bit PowerPC ELF ABI, not in the 32-bit ABI. */
/* A standard 64-bit relocation. */
- HOW (R_PPC64_ADDR64, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_ADDR64, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
bfd_elf_generic_reloc),
/* The bits 32-47 of an address. */
- HOW (R_PPC64_ADDR16_HIGHER, 1, 16, 0xffff, 32, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHER, 2, 16, 0xffff, 32, false, dont,
bfd_elf_generic_reloc),
/* The bits 32-47 of an address, plus 1 if the contents of the low
16 bits, treated as a signed number, is negative. */
- HOW (R_PPC64_ADDR16_HIGHERA, 1, 16, 0xffff, 32, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHERA, 2, 16, 0xffff, 32, false, dont,
ppc64_elf_ha_reloc),
/* The bits 48-63 of an address. */
- HOW (R_PPC64_ADDR16_HIGHEST, 1, 16, 0xffff, 48, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHEST, 2, 16, 0xffff, 48, false, dont,
bfd_elf_generic_reloc),
/* The bits 48-63 of an address, plus 1 if the contents of the low
16 bits, treated as a signed number, is negative. */
- HOW (R_PPC64_ADDR16_HIGHESTA, 1, 16, 0xffff, 48, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHESTA, 2, 16, 0xffff, 48, false, dont,
ppc64_elf_ha_reloc),
/* Like ADDR64, but may be unaligned. */
- HOW (R_PPC64_UADDR64, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_UADDR64, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
bfd_elf_generic_reloc),
/* 64-bit relative relocation. */
- HOW (R_PPC64_REL64, 4, 64, 0xffffffffffffffffULL, 0, true, dont,
+ HOW (R_PPC64_REL64, 8, 64, 0xffffffffffffffffULL, 0, true, dont,
bfd_elf_generic_reloc),
/* 64-bit relocation to the symbol's procedure linkage table. */
- HOW (R_PPC64_PLT64, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_PLT64, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* 64-bit PC relative relocation to the symbol's procedure linkage
table. */
/* FIXME: R_PPC64_PLTREL64 not supported. */
- HOW (R_PPC64_PLTREL64, 4, 64, 0xffffffffffffffffULL, 0, true, dont,
+ HOW (R_PPC64_PLTREL64, 8, 64, 0xffffffffffffffffULL, 0, true, dont,
ppc64_elf_unhandled_reloc),
/* 16 bit TOC-relative relocation. */
/* R_PPC64_TOC16 47 half16* S + A - .TOC. */
- HOW (R_PPC64_TOC16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC64_TOC16, 2, 16, 0xffff, 0, false, signed,
ppc64_elf_toc_reloc),
/* 16 bit TOC-relative relocation without overflow. */
/* R_PPC64_TOC16_LO 48 half16 #lo (S + A - .TOC.) */
- HOW (R_PPC64_TOC16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_TOC16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_toc_reloc),
/* 16 bit TOC-relative relocation, high 16 bits. */
/* R_PPC64_TOC16_HI 49 half16 #hi (S + A - .TOC.) */
- HOW (R_PPC64_TOC16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_TOC16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_toc_reloc),
/* 16 bit TOC-relative relocation, high 16 bits, plus 1 if the
contents of the low 16 bits, treated as a signed number, is
negative. */
/* R_PPC64_TOC16_HA 50 half16 #ha (S + A - .TOC.) */
- HOW (R_PPC64_TOC16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_TOC16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_toc_ha_reloc),
/* 64-bit relocation; insert value of TOC base (.TOC.). */
/* R_PPC64_TOC 51 doubleword64 .TOC. */
- HOW (R_PPC64_TOC, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_TOC, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
ppc64_elf_toc64_reloc),
/* Like R_PPC64_GOT16, but also informs the link editor that the
The link editor may also skip all of this and just (c) emit a
R_PPC64_GLOB_DAT to tie the symbol to the GOT entry. */
/* FIXME: R_PPC64_PLTGOT16 not implemented. */
- HOW (R_PPC64_PLTGOT16, 1, 16, 0xffff, 0, false,signed,
+ HOW (R_PPC64_PLTGOT16, 2, 16, 0xffff, 0, false,signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_PLTGOT16, but without overflow. */
/* FIXME: R_PPC64_PLTGOT16_LO not implemented. */
- HOW (R_PPC64_PLTGOT16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_PLTGOT16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_PLT_GOT16, but using bits 16-31 of the address. */
/* FIXME: R_PPC64_PLTGOT16_HI not implemented. */
- HOW (R_PPC64_PLTGOT16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_PLTGOT16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_PLT_GOT16, but using bits 16-31 of the address, plus
1 if the contents of the low 16 bits, treated as a signed number,
is negative. */
/* FIXME: R_PPC64_PLTGOT16_HA not implemented. */
- HOW (R_PPC64_PLTGOT16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_PLTGOT16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_ADDR16, but for instructions with a DS field. */
- HOW (R_PPC64_ADDR16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_ADDR16_DS, 2, 16, 0xfffc, 0, false, signed,
bfd_elf_generic_reloc),
/* Like R_PPC64_ADDR16_LO, but for instructions with a DS field. */
- HOW (R_PPC64_ADDR16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_ADDR16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
bfd_elf_generic_reloc),
/* Like R_PPC64_GOT16, but for instructions with a DS field. */
- HOW (R_PPC64_GOT16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_GOT16_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_GOT16_LO, but for instructions with a DS field. */
- HOW (R_PPC64_GOT16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_GOT16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_PLT16_LO, but for instructions with a DS field. */
- HOW (R_PPC64_PLT16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_PLT16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_SECTOFF, but for instructions with a DS field. */
- HOW (R_PPC64_SECTOFF_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_SECTOFF_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_sectoff_reloc),
/* Like R_PPC64_SECTOFF_LO, but for instructions with a DS field. */
- HOW (R_PPC64_SECTOFF_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_SECTOFF_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_sectoff_reloc),
/* Like R_PPC64_TOC16, but for instructions with a DS field. */
- HOW (R_PPC64_TOC16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_TOC16_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_toc_reloc),
/* Like R_PPC64_TOC16_LO, but for instructions with a DS field. */
- HOW (R_PPC64_TOC16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_TOC16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_toc_reloc),
/* Like R_PPC64_PLTGOT16, but for instructions with a DS field. */
/* FIXME: R_PPC64_PLTGOT16_DS not implemented. */
- HOW (R_PPC64_PLTGOT16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_PLTGOT16_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_PLTGOT16_LO, but for instructions with a DS field. */
/* FIXME: R_PPC64_PLTGOT16_LO not implemented. */
- HOW (R_PPC64_PLTGOT16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_PLTGOT16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Marker relocs for TLS. */
- HOW (R_PPC64_TLS, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_TLS, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_TLSGD, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_TLSGD, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_TLSLD, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_TLSLD, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* Marker reloc for optimizing r2 save in prologue rather than on
each plt call stub. */
- HOW (R_PPC64_TOCSAVE, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_TOCSAVE, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* Marker relocs on inline plt call instructions. */
- HOW (R_PPC64_PLTSEQ, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_PLTSEQ, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_PLTCALL, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_PLTCALL, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* Computes the load module index of the load module that contains the
definition of its TLS sym. */
- HOW (R_PPC64_DTPMOD64, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_DTPMOD64, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Computes a dtv-relative displacement, the difference between the value
of sym+add and the base address of the thread-local storage block that
contains the definition of sym, minus 0x8000. */
- HOW (R_PPC64_DTPREL64, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_DTPREL64, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* A 16 bit dtprel reloc. */
- HOW (R_PPC64_DTPREL16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC64_DTPREL16, 2, 16, 0xffff, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16, but no overflow. */
- HOW (R_PPC64_DTPREL16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_DTPREL16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16_LO, but next higher group of 16 bits. */
- HOW (R_PPC64_DTPREL16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_DTPREL16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC64_DTPREL16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_DTPREL16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16_HI, but next higher group of 16 bits. */
- HOW (R_PPC64_DTPREL16_HIGHER, 1, 16, 0xffff, 32, false, dont,
+ HOW (R_PPC64_DTPREL16_HIGHER, 2, 16, 0xffff, 32, false, dont,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16_HIGHER, but adjust for low 16 bits. */
- HOW (R_PPC64_DTPREL16_HIGHERA, 1, 16, 0xffff, 32, false, dont,
+ HOW (R_PPC64_DTPREL16_HIGHERA, 2, 16, 0xffff, 32, false, dont,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16_HIGHER, but next higher group of 16 bits. */
- HOW (R_PPC64_DTPREL16_HIGHEST, 1, 16, 0xffff, 48, false, dont,
+ HOW (R_PPC64_DTPREL16_HIGHEST, 2, 16, 0xffff, 48, false, dont,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16_HIGHEST, but adjust for low 16 bits. */
- HOW (R_PPC64_DTPREL16_HIGHESTA, 1, 16, 0xffff, 48, false, dont,
+ HOW (R_PPC64_DTPREL16_HIGHESTA, 2, 16, 0xffff, 48, false, dont,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16, but for insns with a DS field. */
- HOW (R_PPC64_DTPREL16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_DTPREL16_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like DTPREL16_DS, but no overflow. */
- HOW (R_PPC64_DTPREL16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_DTPREL16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Computes a tp-relative displacement, the difference between the value of
sym+add and the value of the thread pointer (r13). */
- HOW (R_PPC64_TPREL64, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_TPREL64, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* A 16 bit tprel reloc. */
- HOW (R_PPC64_TPREL16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC64_TPREL16, 2, 16, 0xffff, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like TPREL16, but no overflow. */
- HOW (R_PPC64_TPREL16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_TPREL16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like TPREL16_LO, but next higher group of 16 bits. */
- HOW (R_PPC64_TPREL16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_TPREL16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like TPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC64_TPREL16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_TPREL16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like TPREL16_HI, but next higher group of 16 bits. */
- HOW (R_PPC64_TPREL16_HIGHER, 1, 16, 0xffff, 32, false, dont,
+ HOW (R_PPC64_TPREL16_HIGHER, 2, 16, 0xffff, 32, false, dont,
ppc64_elf_unhandled_reloc),
/* Like TPREL16_HIGHER, but adjust for low 16 bits. */
- HOW (R_PPC64_TPREL16_HIGHERA, 1, 16, 0xffff, 32, false, dont,
+ HOW (R_PPC64_TPREL16_HIGHERA, 2, 16, 0xffff, 32, false, dont,
ppc64_elf_unhandled_reloc),
/* Like TPREL16_HIGHER, but next higher group of 16 bits. */
- HOW (R_PPC64_TPREL16_HIGHEST, 1, 16, 0xffff, 48, false, dont,
+ HOW (R_PPC64_TPREL16_HIGHEST, 2, 16, 0xffff, 48, false, dont,
ppc64_elf_unhandled_reloc),
/* Like TPREL16_HIGHEST, but adjust for low 16 bits. */
- HOW (R_PPC64_TPREL16_HIGHESTA, 1, 16, 0xffff, 48, false, dont,
+ HOW (R_PPC64_TPREL16_HIGHESTA, 2, 16, 0xffff, 48, false, dont,
ppc64_elf_unhandled_reloc),
/* Like TPREL16, but for insns with a DS field. */
- HOW (R_PPC64_TPREL16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_TPREL16_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like TPREL16_DS, but no overflow. */
- HOW (R_PPC64_TPREL16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_TPREL16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Allocates two contiguous entries in the GOT to hold a tls_index structure,
with values (sym+add)@dtpmod and (sym+add)@dtprel, and computes the offset
to the first entry relative to the TOC base (r2). */
- HOW (R_PPC64_GOT_TLSGD16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC64_GOT_TLSGD16, 2, 16, 0xffff, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_TLSGD16, but no overflow. */
- HOW (R_PPC64_GOT_TLSGD16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_GOT_TLSGD16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like GOT_TLSGD16_LO, but next higher group of 16 bits. */
- HOW (R_PPC64_GOT_TLSGD16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_TLSGD16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_TLSGD16_HI, but adjust for low 16 bits. */
- HOW (R_PPC64_GOT_TLSGD16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_TLSGD16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Allocates two contiguous entries in the GOT to hold a tls_index structure,
with values (sym+add)@dtpmod and zero, and computes the offset to the
first entry relative to the TOC base (r2). */
- HOW (R_PPC64_GOT_TLSLD16, 1, 16, 0xffff, 0, false, signed,
+ HOW (R_PPC64_GOT_TLSLD16, 2, 16, 0xffff, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_TLSLD16, but no overflow. */
- HOW (R_PPC64_GOT_TLSLD16_LO, 1, 16, 0xffff, 0, false, dont,
+ HOW (R_PPC64_GOT_TLSLD16_LO, 2, 16, 0xffff, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like GOT_TLSLD16_LO, but next higher group of 16 bits. */
- HOW (R_PPC64_GOT_TLSLD16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_TLSLD16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_TLSLD16_HI, but adjust for low 16 bits. */
- HOW (R_PPC64_GOT_TLSLD16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_TLSLD16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Allocates an entry in the GOT with value (sym+add)@dtprel, and computes
the offset to the entry relative to the TOC base (r2). */
- HOW (R_PPC64_GOT_DTPREL16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_GOT_DTPREL16_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_DTPREL16_DS, but no overflow. */
- HOW (R_PPC64_GOT_DTPREL16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_GOT_DTPREL16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like GOT_DTPREL16_LO_DS, but next higher group of 16 bits. */
- HOW (R_PPC64_GOT_DTPREL16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_DTPREL16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_DTPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC64_GOT_DTPREL16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_DTPREL16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Allocates an entry in the GOT with value (sym+add)@tprel, and computes the
offset to the entry relative to the TOC base (r2). */
- HOW (R_PPC64_GOT_TPREL16_DS, 1, 16, 0xfffc, 0, false, signed,
+ HOW (R_PPC64_GOT_TPREL16_DS, 2, 16, 0xfffc, 0, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_TPREL16_DS, but no overflow. */
- HOW (R_PPC64_GOT_TPREL16_LO_DS, 1, 16, 0xfffc, 0, false, dont,
+ HOW (R_PPC64_GOT_TPREL16_LO_DS, 2, 16, 0xfffc, 0, false, dont,
ppc64_elf_unhandled_reloc),
/* Like GOT_TPREL16_LO_DS, but next higher group of 16 bits. */
- HOW (R_PPC64_GOT_TPREL16_HI, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_TPREL16_HI, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
/* Like GOT_TPREL16_HI, but adjust for low 16 bits. */
- HOW (R_PPC64_GOT_TPREL16_HA, 1, 16, 0xffff, 16, false, signed,
+ HOW (R_PPC64_GOT_TPREL16_HA, 2, 16, 0xffff, 16, false, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_JMP_IREL, 0, 0, 0, 0, false, dont,
+ HOW (R_PPC64_JMP_IREL, 1, 0, 0, 0, false, dont,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_IRELATIVE, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_IRELATIVE, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
bfd_elf_generic_reloc),
/* A 16 bit relative relocation. */
- HOW (R_PPC64_REL16, 1, 16, 0xffff, 0, true, signed,
+ HOW (R_PPC64_REL16, 2, 16, 0xffff, 0, true, signed,
bfd_elf_generic_reloc),
/* A 16 bit relative relocation without overflow. */
- HOW (R_PPC64_REL16_LO, 1, 16, 0xffff, 0, true, dont,
+ HOW (R_PPC64_REL16_LO, 2, 16, 0xffff, 0, true, dont,
bfd_elf_generic_reloc),
/* The high order 16 bits of a relative address. */
- HOW (R_PPC64_REL16_HI, 1, 16, 0xffff, 16, true, signed,
+ HOW (R_PPC64_REL16_HI, 2, 16, 0xffff, 16, true, signed,
bfd_elf_generic_reloc),
/* The high order 16 bits of a relative address, plus 1 if the contents of
the low 16 bits, treated as a signed number, is negative. */
- HOW (R_PPC64_REL16_HA, 1, 16, 0xffff, 16, true, signed,
+ HOW (R_PPC64_REL16_HA, 2, 16, 0xffff, 16, true, signed,
ppc64_elf_ha_reloc),
- HOW (R_PPC64_REL16_HIGH, 1, 16, 0xffff, 16, true, dont,
+ HOW (R_PPC64_REL16_HIGH, 2, 16, 0xffff, 16, true, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_REL16_HIGHA, 1, 16, 0xffff, 16, true, dont,
+ HOW (R_PPC64_REL16_HIGHA, 2, 16, 0xffff, 16, true, dont,
ppc64_elf_ha_reloc),
- HOW (R_PPC64_REL16_HIGHER, 1, 16, 0xffff, 32, true, dont,
+ HOW (R_PPC64_REL16_HIGHER, 2, 16, 0xffff, 32, true, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_REL16_HIGHERA, 1, 16, 0xffff, 32, true, dont,
+ HOW (R_PPC64_REL16_HIGHERA, 2, 16, 0xffff, 32, true, dont,
ppc64_elf_ha_reloc),
- HOW (R_PPC64_REL16_HIGHEST, 1, 16, 0xffff, 48, true, dont,
+ HOW (R_PPC64_REL16_HIGHEST, 2, 16, 0xffff, 48, true, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_REL16_HIGHESTA, 1, 16, 0xffff, 48, true, dont,
+ HOW (R_PPC64_REL16_HIGHESTA, 2, 16, 0xffff, 48, true, dont,
ppc64_elf_ha_reloc),
/* Like R_PPC64_REL16_HA but for split field in addpcis. */
- HOW (R_PPC64_REL16DX_HA, 2, 16, 0x1fffc1, 16, true, signed,
+ HOW (R_PPC64_REL16DX_HA, 4, 16, 0x1fffc1, 16, true, signed,
ppc64_elf_ha_reloc),
/* A split-field reloc for addpcis, non-relative (gas internal use only). */
- HOW (R_PPC64_16DX_HA, 2, 16, 0x1fffc1, 16, false, signed,
+ HOW (R_PPC64_16DX_HA, 4, 16, 0x1fffc1, 16, false, signed,
ppc64_elf_ha_reloc),
/* Like R_PPC64_ADDR16_HI, but no overflow. */
- HOW (R_PPC64_ADDR16_HIGH, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC64_ADDR16_HIGH, 2, 16, 0xffff, 16, false, dont,
bfd_elf_generic_reloc),
/* Like R_PPC64_ADDR16_HA, but no overflow. */
- HOW (R_PPC64_ADDR16_HIGHA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHA, 2, 16, 0xffff, 16, false, dont,
ppc64_elf_ha_reloc),
/* Like R_PPC64_DTPREL16_HI, but no overflow. */
- HOW (R_PPC64_DTPREL16_HIGH, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC64_DTPREL16_HIGH, 2, 16, 0xffff, 16, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_DTPREL16_HA, but no overflow. */
- HOW (R_PPC64_DTPREL16_HIGHA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC64_DTPREL16_HIGHA, 2, 16, 0xffff, 16, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_TPREL16_HI, but no overflow. */
- HOW (R_PPC64_TPREL16_HIGH, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC64_TPREL16_HIGH, 2, 16, 0xffff, 16, false, dont,
ppc64_elf_unhandled_reloc),
/* Like R_PPC64_TPREL16_HA, but no overflow. */
- HOW (R_PPC64_TPREL16_HIGHA, 1, 16, 0xffff, 16, false, dont,
+ HOW (R_PPC64_TPREL16_HIGHA, 2, 16, 0xffff, 16, false, dont,
ppc64_elf_unhandled_reloc),
/* Marker reloc on ELFv2 large-model function entry. */
- HOW (R_PPC64_ENTRY, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_ENTRY, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
/* Like ADDR64, but use local entry point of function. */
- HOW (R_PPC64_ADDR64_LOCAL, 4, 64, 0xffffffffffffffffULL, 0, false, dont,
+ HOW (R_PPC64_ADDR64_LOCAL, 8, 64, 0xffffffffffffffffULL, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_PLTSEQ_NOTOC, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_PLTSEQ_NOTOC, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_PLTCALL_NOTOC, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_PLTCALL_NOTOC, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_PCREL_OPT, 2, 32, 0, 0, false, dont,
+ HOW (R_PPC64_PCREL_OPT, 4, 32, 0, 0, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_D34, 4, 34, 0x3ffff0000ffffULL, 0, false, signed,
+ HOW (R_PPC64_D34, 8, 34, 0x3ffff0000ffffULL, 0, false, signed,
ppc64_elf_prefix_reloc),
- HOW (R_PPC64_D34_LO, 4, 34, 0x3ffff0000ffffULL, 0, false, dont,
+ HOW (R_PPC64_D34_LO, 8, 34, 0x3ffff0000ffffULL, 0, false, dont,
ppc64_elf_prefix_reloc),
- HOW (R_PPC64_D34_HI30, 4, 34, 0x3ffff0000ffffULL, 34, false, dont,
+ HOW (R_PPC64_D34_HI30, 8, 34, 0x3ffff0000ffffULL, 34, false, dont,
ppc64_elf_prefix_reloc),
- HOW (R_PPC64_D34_HA30, 4, 34, 0x3ffff0000ffffULL, 34, false, dont,
+ HOW (R_PPC64_D34_HA30, 8, 34, 0x3ffff0000ffffULL, 34, false, dont,
ppc64_elf_prefix_reloc),
- HOW (R_PPC64_PCREL34, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_PCREL34, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_prefix_reloc),
- HOW (R_PPC64_GOT_PCREL34, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_GOT_PCREL34, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_PLT_PCREL34, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_PLT_PCREL34, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_PLT_PCREL34_NOTOC, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_PLT_PCREL34_NOTOC, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_TPREL34, 4, 34, 0x3ffff0000ffffULL, 0, false, signed,
+ HOW (R_PPC64_TPREL34, 8, 34, 0x3ffff0000ffffULL, 0, false, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_DTPREL34, 4, 34, 0x3ffff0000ffffULL, 0, false, signed,
+ HOW (R_PPC64_DTPREL34, 8, 34, 0x3ffff0000ffffULL, 0, false, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_GOT_TLSGD_PCREL34, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_GOT_TLSGD_PCREL34, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_GOT_TLSLD_PCREL34, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_GOT_TLSLD_PCREL34, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_GOT_TPREL_PCREL34, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_GOT_TPREL_PCREL34, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_GOT_DTPREL_PCREL34, 4, 34, 0x3ffff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_GOT_DTPREL_PCREL34, 8, 34, 0x3ffff0000ffffULL, 0, true, signed,
ppc64_elf_unhandled_reloc),
- HOW (R_PPC64_ADDR16_HIGHER34, 1, 16, 0xffff, 34, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHER34, 2, 16, 0xffff, 34, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_ADDR16_HIGHERA34, 1, 16, 0xffff, 34, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHERA34, 2, 16, 0xffff, 34, false, dont,
ppc64_elf_ha_reloc),
- HOW (R_PPC64_ADDR16_HIGHEST34, 1, 16, 0xffff, 50, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHEST34, 2, 16, 0xffff, 50, false, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_ADDR16_HIGHESTA34, 1, 16, 0xffff, 50, false, dont,
+ HOW (R_PPC64_ADDR16_HIGHESTA34, 2, 16, 0xffff, 50, false, dont,
ppc64_elf_ha_reloc),
- HOW (R_PPC64_REL16_HIGHER34, 1, 16, 0xffff, 34, true, dont,
+ HOW (R_PPC64_REL16_HIGHER34, 2, 16, 0xffff, 34, true, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_REL16_HIGHERA34, 1, 16, 0xffff, 34, true, dont,
+ HOW (R_PPC64_REL16_HIGHERA34, 2, 16, 0xffff, 34, true, dont,
ppc64_elf_ha_reloc),
- HOW (R_PPC64_REL16_HIGHEST34, 1, 16, 0xffff, 50, true, dont,
+ HOW (R_PPC64_REL16_HIGHEST34, 2, 16, 0xffff, 50, true, dont,
bfd_elf_generic_reloc),
- HOW (R_PPC64_REL16_HIGHESTA34, 1, 16, 0xffff, 50, true, dont,
+ HOW (R_PPC64_REL16_HIGHESTA34, 2, 16, 0xffff, 50, true, dont,
ppc64_elf_ha_reloc),
- HOW (R_PPC64_D28, 4, 28, 0xfff0000ffffULL, 0, false, signed,
+ HOW (R_PPC64_D28, 8, 28, 0xfff0000ffffULL, 0, false, signed,
ppc64_elf_prefix_reloc),
- HOW (R_PPC64_PCREL28, 4, 28, 0xfff0000ffffULL, 0, true, signed,
+ HOW (R_PPC64_PCREL28, 8, 28, 0xfff0000ffffULL, 0, true, signed,
ppc64_elf_prefix_reloc),
/* GNU extension to record C++ vtable hierarchy. */
- HOW (R_PPC64_GNU_VTINHERIT, 0, 0, 0, 0, false, dont,
+ HOW (R_PPC64_GNU_VTINHERIT, 1, 0, 0, 0, false, dont,
NULL),
/* GNU extension to record C++ vtable member usage. */
- HOW (R_PPC64_GNU_VTENTRY, 0, 0, 0, 0, false, dont,
+ HOW (R_PPC64_GNU_VTENTRY, 1, 0, 0, 0, false, dont,
NULL),
};
{
HOWTO (R_390_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = 2 byte, 2 = 4 byte) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0, /* dst_mask */
false), /* pcrel_offset */
- HOWTO(R_390_8, 0, 0, 8, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_8, 0, 1, 8, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_8", false, 0,0x000000ff, false),
- HOWTO(R_390_12, 0, 1, 12, false, 0, complain_overflow_dont,
+ HOWTO(R_390_12, 0, 2, 12, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_390_12", false, 0,0x00000fff, false),
- HOWTO(R_390_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_16", false, 0,0x0000ffff, false),
- HOWTO(R_390_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_32", false, 0,0xffffffff, false),
- HOWTO(R_390_PC32, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC32, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC32", false, 0,0xffffffff, true),
- HOWTO(R_390_GOT12, 0, 1, 12, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOT12, 0, 2, 12, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT12", false, 0,0x00000fff, false),
- HOWTO(R_390_GOT32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOT32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT32", false, 0,0xffffffff, false),
- HOWTO(R_390_PLT32, 0, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT32, 0, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT32", false, 0,0xffffffff, true),
- HOWTO(R_390_COPY, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_COPY, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_COPY", false, 0,MINUS_ONE, false),
- HOWTO(R_390_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GLOB_DAT, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GLOB_DAT", false, 0,MINUS_ONE, false),
- HOWTO(R_390_JMP_SLOT, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_JMP_SLOT, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_JMP_SLOT", false, 0,MINUS_ONE, false),
- HOWTO(R_390_RELATIVE, 0, 4, 64, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_RELATIVE, 0, 8, 64, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_RELATIVE", false, 0,MINUS_ONE, false),
- HOWTO(R_390_GOTOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTOFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTOFF32", false, 0,MINUS_ONE, false),
- HOWTO(R_390_GOTPC, 0, 4, 64, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPC, 0, 8, 64, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPC", false, 0,MINUS_ONE, true),
- HOWTO(R_390_GOT16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOT16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT16", false, 0,0x0000ffff, false),
- HOWTO(R_390_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC16, 0, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC16", false, 0,0x0000ffff, true),
- HOWTO(R_390_PC16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC16DBL, 1, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC16DBL", false, 0,0x0000ffff, true),
- HOWTO(R_390_PLT16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT16DBL, 1, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT16DBL", false, 0,0x0000ffff, true),
- HOWTO(R_390_PC32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC32DBL, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC32DBL", false, 0,0xffffffff, true),
- HOWTO(R_390_PLT32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT32DBL, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT32DBL", false, 0,0xffffffff, true),
- HOWTO(R_390_GOTPCDBL, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPCDBL, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPCDBL", false, 0,MINUS_ONE, true),
- HOWTO(R_390_64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_64", false, 0,MINUS_ONE, false),
- HOWTO(R_390_PC64, 0, 4, 64, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC64, 0, 8, 64, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC64", false, 0,MINUS_ONE, true),
- HOWTO(R_390_GOT64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOT64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT64", false, 0,MINUS_ONE, false),
- HOWTO(R_390_PLT64, 0, 4, 64, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT64, 0, 8, 64, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT64", false, 0,MINUS_ONE, true),
- HOWTO(R_390_GOTENT, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTENT, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTENT", false, 0,MINUS_ONE, true),
- HOWTO(R_390_GOTOFF16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTOFF16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTOFF16", false, 0,0x0000ffff, false),
- HOWTO(R_390_GOTOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTOFF64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTOFF64", false, 0,MINUS_ONE, false),
- HOWTO(R_390_GOTPLT12, 0, 1, 12, false, 0, complain_overflow_dont,
+ HOWTO(R_390_GOTPLT12, 0, 2, 12, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_390_GOTPLT12", false, 0,0x00000fff, false),
- HOWTO(R_390_GOTPLT16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPLT16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPLT16", false, 0,0x0000ffff, false),
- HOWTO(R_390_GOTPLT32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPLT32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPLT32", false, 0,0xffffffff, false),
- HOWTO(R_390_GOTPLT64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPLT64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPLT64", false, 0,MINUS_ONE, false),
- HOWTO(R_390_GOTPLTENT, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_GOTPLTENT, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOTPLTENT",false, 0,MINUS_ONE, true),
- HOWTO(R_390_PLTOFF16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLTOFF16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLTOFF16", false, 0,0x0000ffff, false),
- HOWTO(R_390_PLTOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLTOFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLTOFF32", false, 0,0xffffffff, false),
- HOWTO(R_390_PLTOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLTOFF64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLTOFF64", false, 0,MINUS_ONE, false),
- HOWTO(R_390_TLS_LOAD, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_LOAD, 0, 1, 0, false, 0, complain_overflow_dont,
s390_tls_reloc, "R_390_TLS_LOAD", false, 0, 0, false),
- HOWTO(R_390_TLS_GDCALL, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_GDCALL, 0, 1, 0, false, 0, complain_overflow_dont,
s390_tls_reloc, "R_390_TLS_GDCALL", false, 0, 0, false),
- HOWTO(R_390_TLS_LDCALL, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_LDCALL, 0, 1, 0, false, 0, complain_overflow_dont,
s390_tls_reloc, "R_390_TLS_LDCALL", false, 0, 0, false),
EMPTY_HOWTO (R_390_TLS_GD32), /* Empty entry for R_390_TLS_GD32. */
- HOWTO(R_390_TLS_GD64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_GD64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_GD64", false, 0, MINUS_ONE, false),
- HOWTO(R_390_TLS_GOTIE12, 0, 1, 12, false, 0, complain_overflow_dont,
+ HOWTO(R_390_TLS_GOTIE12, 0, 2, 12, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_390_TLS_GOTIE12", false, 0, 0x00000fff, false),
EMPTY_HOWTO (R_390_TLS_GOTIE32), /* Empty entry for R_390_TLS_GOTIE32. */
- HOWTO(R_390_TLS_GOTIE64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_GOTIE64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_GOTIE64", false, 0, MINUS_ONE, false),
EMPTY_HOWTO (R_390_TLS_LDM32), /* Empty entry for R_390_TLS_LDM32. */
- HOWTO(R_390_TLS_LDM64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_LDM64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_LDM64", false, 0, MINUS_ONE, false),
EMPTY_HOWTO (R_390_TLS_IE32), /* Empty entry for R_390_TLS_IE32. */
- HOWTO(R_390_TLS_IE64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_IE64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_IE64", false, 0, MINUS_ONE, false),
- HOWTO(R_390_TLS_IEENT, 1, 2, 32, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_IEENT, 1, 4, 32, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_IEENT", false, 0, MINUS_ONE, true),
EMPTY_HOWTO (R_390_TLS_LE32), /* Empty entry for R_390_TLS_LE32. */
- HOWTO(R_390_TLS_LE64, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_LE64, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_LE64", false, 0, MINUS_ONE, false),
EMPTY_HOWTO (R_390_TLS_LDO32), /* Empty entry for R_390_TLS_LDO32. */
- HOWTO(R_390_TLS_LDO64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_LDO64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_LDO64", false, 0, MINUS_ONE, false),
- HOWTO(R_390_TLS_DTPMOD, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_DTPMOD, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_DTPMOD", false, 0, MINUS_ONE, false),
- HOWTO(R_390_TLS_DTPOFF, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_DTPOFF, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", false, 0, MINUS_ONE, false),
- HOWTO(R_390_TLS_TPOFF, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_TLS_TPOFF, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_TPOFF", false, 0, MINUS_ONE, false),
- HOWTO(R_390_20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_20", false, 0,0x0fffff00, false),
- HOWTO(R_390_GOT20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_GOT20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_GOT20", false, 0,0x0fffff00, false),
- HOWTO(R_390_GOTPLT20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_GOTPLT20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_GOTPLT20", false, 0,0x0fffff00, false),
- HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, false, 8, complain_overflow_dont,
+ HOWTO(R_390_TLS_GOTIE20, 0, 4, 20, false, 8, complain_overflow_dont,
s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", false, 0,0x0fffff00, false),
- HOWTO(R_390_IRELATIVE, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_390_IRELATIVE, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_IRELATIVE", false, 0, MINUS_ONE, false),
- HOWTO(R_390_PC12DBL, 1, 1, 12, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC12DBL, 1, 2, 12, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC12DBL", false, 0,0x00000fff, true),
- HOWTO(R_390_PLT12DBL, 1, 1, 12, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT12DBL, 1, 2, 12, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT12DBL", false, 0,0x00000fff, true),
- HOWTO(R_390_PC24DBL, 1, 2, 24, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PC24DBL, 1, 4, 24, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC24DBL", false, 0,0x00ffffff, true),
- HOWTO(R_390_PLT24DBL, 1, 2, 24, true, 0, complain_overflow_bitfield,
+ HOWTO(R_390_PLT24DBL, 1, 4, 24, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PLT24DBL", false, 0,0x00ffffff, true),
};
/* GNU extension to record C++ vtable hierarchy. */
static reloc_howto_type elf64_s390_vtinherit_howto =
- HOWTO (R_390_GNU_VTINHERIT, 0,4,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false);
+ HOWTO (R_390_GNU_VTINHERIT, 0,8,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false);
static reloc_howto_type elf64_s390_vtentry_howto =
- HOWTO (R_390_GNU_VTENTRY, 0,4,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false);
+ HOWTO (R_390_GNU_VTENTRY, 0,8,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false);
static reloc_howto_type *
elf_s390_reloc_type_lookup (bfd *abfd,
special_function, name, partial_inplace, src_mask, dst_mask, pcrel_offset. */
static reloc_howto_type x86_64_elf_howto_table[] =
{
- HOWTO(R_X86_64_NONE, 0, 3, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_NONE, 0, 0, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0, 0x00000000,
false),
- HOWTO(R_X86_64_64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_PC32, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_PC32, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_GOT32, 0, 2, 32, false, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOT32, 0, 4, 32, false, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0, 0xffffffff,
false),
- HOWTO(R_X86_64_PLT32, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_PLT32, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_X86_64_COPY, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0, 0xffffffff,
false),
- HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_GLOB_DAT, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_JUMP_SLOT, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_RELATIVE, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_RELATIVE, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_GOTPCREL, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOTPCREL, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_unsigned,
+ HOWTO(R_X86_64_32, 0, 4, 32, false, 0, complain_overflow_unsigned,
bfd_elf_generic_reloc, "R_X86_64_32", false, 0, 0xffffffff,
false),
- HOWTO(R_X86_64_32S, 0, 2, 32, false, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_32S, 0, 4, 32, false, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_32S", false, 0, 0xffffffff,
false),
- HOWTO(R_X86_64_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
+ HOWTO(R_X86_64_16, 0, 2, 16, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_X86_64_16", false, 0, 0xffff, false),
- HOWTO(R_X86_64_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield,
+ HOWTO(R_X86_64_PC16, 0, 2, 16, true, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0, 0xffff, true),
- HOWTO(R_X86_64_8, 0, 0, 8, false, 0, complain_overflow_bitfield,
+ HOWTO(R_X86_64_8, 0, 1, 8, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_X86_64_8", false, 0, 0xff, false),
- HOWTO(R_X86_64_PC8, 0, 0, 8, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_PC8, 0, 1, 8, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0, 0xff, true),
- HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_DTPMOD64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_DTPOFF64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_TPOFF64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_TPOFF64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_TLSGD, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_TLSGD, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_TLSLD, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_TLSLD, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_DTPOFF32, 0, 4, 32, false, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0, 0xffffffff,
false),
- HOWTO(R_X86_64_GOTTPOFF, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOTTPOFF, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_TPOFF32, 0, 2, 32, false, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_TPOFF32, 0, 4, 32, false, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0, 0xffffffff,
false),
- HOWTO(R_X86_64_PC64, 0, 4, 64, true, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_PC64, 0, 8, 64, true, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_PC64", false, 0, MINUS_ONE,
true),
- HOWTO(R_X86_64_GOTOFF64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_GOTOFF64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_GOTOFF64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_GOTPC32, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOTPC32, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOTPC32", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_GOT64, 0, 4, 64, false, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOT64, 0, 8, 64, false, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOT64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_GOTPCREL64, 0, 4, 64, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOTPCREL64, 0, 8, 64, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOTPCREL64", false, 0, MINUS_ONE,
true),
- HOWTO(R_X86_64_GOTPC64, 0, 4, 64, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOTPC64, 0, 8, 64, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOTPC64", false, 0, MINUS_ONE,
true),
- HOWTO(R_X86_64_GOTPLT64, 0, 4, 64, false, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOTPLT64, 0, 8, 64, false, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOTPLT64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_PLTOFF64, 0, 4, 64, false, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_PLTOFF64, 0, 8, 64, false, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_PLTOFF64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_SIZE32, 0, 2, 32, false, 0, complain_overflow_unsigned,
+ HOWTO(R_X86_64_SIZE32, 0, 4, 32, false, 0, complain_overflow_unsigned,
bfd_elf_generic_reloc, "R_X86_64_SIZE32", false, 0, 0xffffffff,
false),
- HOWTO(R_X86_64_SIZE64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_SIZE64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_SIZE64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_GOTPC32_TLSDESC, 0, 2, 32, true, 0,
+ HOWTO(R_X86_64_GOTPC32_TLSDESC, 0, 4, 32, true, 0,
complain_overflow_bitfield, bfd_elf_generic_reloc,
"R_X86_64_GOTPC32_TLSDESC", false, 0, 0xffffffff, true),
- HOWTO(R_X86_64_TLSDESC_CALL, 0, 3, 0, false, 0,
+ HOWTO(R_X86_64_TLSDESC_CALL, 0, 0, 0, false, 0,
complain_overflow_dont, bfd_elf_generic_reloc,
"R_X86_64_TLSDESC_CALL",
false, 0, 0, false),
- HOWTO(R_X86_64_TLSDESC, 0, 4, 64, false, 0,
+ HOWTO(R_X86_64_TLSDESC, 0, 8, 64, false, 0,
complain_overflow_dont, bfd_elf_generic_reloc,
"R_X86_64_TLSDESC", false, 0, MINUS_ONE, false),
- HOWTO(R_X86_64_IRELATIVE, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_IRELATIVE, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_IRELATIVE", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_RELATIVE64, 0, 4, 64, false, 0, complain_overflow_dont,
+ HOWTO(R_X86_64_RELATIVE64, 0, 8, 64, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_X86_64_RELATIVE64", false, 0, MINUS_ONE,
false),
- HOWTO(R_X86_64_PC32_BND, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_PC32_BND, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_PC32_BND", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_PLT32_BND, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_PLT32_BND, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_PLT32_BND", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_GOTPCRELX, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_GOTPCRELX", false, 0, 0xffffffff,
true),
- HOWTO(R_X86_64_REX_GOTPCRELX, 0, 2, 32, true, 0, complain_overflow_signed,
+ HOWTO(R_X86_64_REX_GOTPCRELX, 0, 4, 32, true, 0, complain_overflow_signed,
bfd_elf_generic_reloc, "R_X86_64_REX_GOTPCRELX", false, 0, 0xffffffff,
true),
#define R_X86_64_vt_offset (R_X86_64_GNU_VTINHERIT - R_X86_64_standard)
/* GNU extension to record C++ vtable hierarchy. */
- HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_X86_64_GNU_VTINHERIT, 0, 8, 0, false, 0, complain_overflow_dont,
NULL, "R_X86_64_GNU_VTINHERIT", false, 0, 0, false),
/* GNU extension to record C++ vtable member usage. */
- HOWTO (R_X86_64_GNU_VTENTRY, 0, 4, 0, false, 0, complain_overflow_dont,
+ HOWTO (R_X86_64_GNU_VTENTRY, 0, 8, 0, false, 0, complain_overflow_dont,
_bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", false, 0, 0,
false),
/* Use complain_overflow_bitfield on R_X86_64_32 for x32. */
- HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_X86_64_32, 0, 4, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_X86_64_32", false, 0, 0xffffffff,
false)
};
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
HOWTO (R_MIPS_REL16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
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 */
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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
HOWTO (R_MIPS_PCHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MIPS_PCLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
HOWTO (R_MIPS_PCHI16, /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_MIPS_PCLO16, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
/* 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 */
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 */
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 */
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 */
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 */
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 */
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 */
static reloc_howto_type elf_mips_copy_howto =
HOWTO (R_MIPS_COPY, /* type */
0, /* rightshift */
- 0, /* this one is variable size */
+ 1, /* this one is variable size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
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 */
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 */
/* Deprecated, but retained for backwards compatibility. */
HOWTO64 (R_AARCH64_NULL, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
false), /* pcrel_offset */
HOWTO (R_AARCH64_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* .xword: (S+A) */
HOWTO64 (AARCH64_R (ABS64), /* type */
0, /* rightshift */
- 4, /* size (4 = long long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* .word: (S+A) */
HOWTO (AARCH64_R (ABS32), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* .half: (S+A) */
HOWTO (AARCH64_R (ABS16), /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* .xword: (S+A-P) */
HOWTO64 (AARCH64_R (PREL64), /* type */
0, /* rightshift */
- 4, /* size (4 = long long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* .word: (S+A-P) */
HOWTO (AARCH64_R (PREL32), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* .half: (S+A-P) */
HOWTO (AARCH64_R (PREL16), /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* MOVZ: ((S+A) >> 0) & 0xffff */
HOWTO (AARCH64_R (MOVW_UABS_G0), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVK: ((S+A) >> 0) & 0xffff [no overflow check] */
HOWTO (AARCH64_R (MOVW_UABS_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVZ: ((S+A) >> 16) & 0xffff */
HOWTO (AARCH64_R (MOVW_UABS_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVK: ((S+A) >> 16) & 0xffff [no overflow check] */
HOWTO64 (AARCH64_R (MOVW_UABS_G1_NC), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVZ: ((S+A) >> 32) & 0xffff */
HOWTO64 (AARCH64_R (MOVW_UABS_G2), /* type */
32, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVK: ((S+A) >> 32) & 0xffff [no overflow check] */
HOWTO64 (AARCH64_R (MOVW_UABS_G2_NC), /* type */
32, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVZ: ((S+A) >> 48) & 0xffff */
HOWTO64 (AARCH64_R (MOVW_UABS_G3), /* type */
48, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOV[ZN]: ((S+A) >> 0) & 0xffff */
HOWTO (AARCH64_R (MOVW_SABS_G0), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOV[ZN]: ((S+A) >> 16) & 0xffff */
HOWTO64 (AARCH64_R (MOVW_SABS_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOV[ZN]: ((S+A) >> 32) & 0xffff */
HOWTO64 (AARCH64_R (MOVW_SABS_G2), /* type */
32, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOV[NZ]: ((S+A-P) >> 0) & 0xffff */
HOWTO (AARCH64_R (MOVW_PREL_G0), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* MOVK: ((S+A-P) >> 0) & 0xffff [no overflow check] */
HOWTO (AARCH64_R (MOVW_PREL_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* MOV[NZ]: ((S+A-P) >> 16) & 0xffff */
HOWTO (AARCH64_R (MOVW_PREL_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* MOVK: ((S+A-P) >> 16) & 0xffff [no overflow check] */
HOWTO64 (AARCH64_R (MOVW_PREL_G1_NC), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* MOV[NZ]: ((S+A-P) >> 32) & 0xffff */
HOWTO64 (AARCH64_R (MOVW_PREL_G2), /* type */
32, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* MOVK: ((S+A-P) >> 32) & 0xffff [no overflow check] */
HOWTO64 (AARCH64_R (MOVW_PREL_G2_NC), /* type */
32, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* MOV[NZ]: ((S+A-P) >> 48) & 0xffff */
HOWTO64 (AARCH64_R (MOVW_PREL_G3), /* type */
48, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* LD-lit: ((S+A-P) >> 2) & 0x7ffff */
HOWTO (AARCH64_R (LD_PREL_LO19), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* ADR: (S+A-P) & 0x1fffff */
HOWTO (AARCH64_R (ADR_PREL_LO21), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* ADRP: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */
HOWTO (AARCH64_R (ADR_PREL_PG_HI21), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* ADRP: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff [no overflow check] */
HOWTO64 (AARCH64_R (ADR_PREL_PG_HI21_NC), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* ADD: (S+A) & 0xfff [no overflow check] */
HOWTO (AARCH64_R (ADD_ABS_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* LD/ST8: (S+A) & 0xfff */
HOWTO (AARCH64_R (LDST8_ABS_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TBZ/NZ: ((S+A-P) >> 2) & 0x3fff */
HOWTO (AARCH64_R (TSTBR14), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
14, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* B.cond: ((S+A-P) >> 2) & 0x7ffff */
HOWTO (AARCH64_R (CONDBR19), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* B: ((S+A-P) >> 2) & 0x3ffffff */
HOWTO (AARCH64_R (JUMP26), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* BL: ((S+A-P) >> 2) & 0x3ffffff */
HOWTO (AARCH64_R (CALL26), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
26, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* LD/ST16: (S+A) & 0xffe */
HOWTO (AARCH64_R (LDST16_ABS_LO12_NC), /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* LD/ST32: (S+A) & 0xffc */
HOWTO (AARCH64_R (LDST32_ABS_LO12_NC), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* LD/ST64: (S+A) & 0xff8 */
HOWTO (AARCH64_R (LDST64_ABS_LO12_NC), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* LD/ST128: (S+A) & 0xff0 */
HOWTO (AARCH64_R (LDST128_ABS_LO12_NC), /* type */
4, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
0x1FFFFC of G(S)-P */
HOWTO (AARCH64_R (GOT_LD_PREL19), /* type */
2, /* rightshift */
- 2, /* size (0 = byte,1 = short,2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
(G(S) - P) using an ADRP instruction. */
HOWTO (AARCH64_R (ADR_GOT_PAGE), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* LD64: GOT offset G(S) & 0xff8 */
HOWTO64 (AARCH64_R (LD64_GOT_LO12_NC), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* LD32: GOT offset G(S) & 0xffc */
HOWTO32 (AARCH64_R (LD32_GOT_LO12_NC), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 16 bits of GOT offset for the symbol. */
HOWTO64 (AARCH64_R (MOVW_GOTOFF_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Higher 16 bits of GOT offset for the symbol. */
HOWTO64 (AARCH64_R (MOVW_GOTOFF_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* LD64: GOT offset for the symbol. */
HOWTO64 (AARCH64_R (LD64_GOTOFF_LO15), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
(G(S) - PAGE (_GLOBAL_OFFSET_TABLE_)) & 0x5ffc. */
HOWTO32 (AARCH64_R (LD32_GOTPAGE_LO14), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
(G(S) - PAGE (_GLOBAL_OFFSET_TABLE_)) & 0x7ff8. */
HOWTO64 (AARCH64_R (LD64_GOTPAGE_LO15), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
(G(S) - P) using an ADRP instruction. */
HOWTO (AARCH64_R (TLSGD_ADR_PAGE21), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSGD_ADR_PREL21), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* ADD: GOT offset G(S) & 0xff8 [no overflow check] */
HOWTO (AARCH64_R (TLSGD_ADD_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Lower 16 bits of GOT offset to tls_index. */
HOWTO64 (AARCH64_R (TLSGD_MOVW_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Higher 16 bits of GOT offset to tls_index. */
HOWTO64 (AARCH64_R (TLSGD_MOVW_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSIE_ADR_GOTTPREL_PAGE21), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSIE_LD64_GOTTPREL_LO12_NC), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO32 (AARCH64_R (TLSIE_LD32_GOTTPREL_LO12_NC), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSIE_LD_GOTTPREL_PREL19), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSIE_MOVW_GOTTPREL_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSIE_MOVW_GOTTPREL_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* ADD: bit[23:12] of byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLD_ADD_DTPREL_HI12), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Unsigned 12 bit byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLD_ADD_DTPREL_LO12), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12. */
HOWTO (AARCH64_R (TLSLD_ADD_DTPREL_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* ADD: GOT offset G(S) & 0xff8 [no overflow check] */
HOWTO (AARCH64_R (TLSLD_ADD_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
(G(S) - P) using an ADRP instruction. */
HOWTO (AARCH64_R (TLSLD_ADR_PAGE21), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSLD_ADR_PREL21), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* LD/ST16: bit[11:1] of byte offset to module TLS base address. */
HOWTO64 (AARCH64_R (TLSLD_LDST16_DTPREL_LO12), /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
11, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check. */
HOWTO64 (AARCH64_R (TLSLD_LDST16_DTPREL_LO12_NC), /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
11, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* LD/ST32: bit[11:2] of byte offset to module TLS base address. */
HOWTO64 (AARCH64_R (TLSLD_LDST32_DTPREL_LO12), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check. */
HOWTO64 (AARCH64_R (TLSLD_LDST32_DTPREL_LO12_NC), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* LD/ST64: bit[11:3] of byte offset to module TLS base address. */
HOWTO64 (AARCH64_R (TLSLD_LDST64_DTPREL_LO12), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
9, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check. */
HOWTO64 (AARCH64_R (TLSLD_LDST64_DTPREL_LO12_NC), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
9, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* LD/ST8: bit[11:0] of byte offset to module TLS base address. */
HOWTO64 (AARCH64_R (TLSLD_LDST8_DTPREL_LO12), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check. */
HOWTO64 (AARCH64_R (TLSLD_LDST8_DTPREL_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* MOVZ: bit[15:0] of byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLD_MOVW_DTPREL_G0), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0. */
HOWTO (AARCH64_R (TLSLD_MOVW_DTPREL_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVZ: bit[31:16] of byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLD_MOVW_DTPREL_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1. */
HOWTO64 (AARCH64_R (TLSLD_MOVW_DTPREL_G1_NC), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* MOVZ: bit[47:32] of byte offset to module TLS base address. */
HOWTO64 (AARCH64_R (TLSLD_MOVW_DTPREL_G2), /* type */
32, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSLE_MOVW_TPREL_G2), /* type */
32, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSLE_MOVW_TPREL_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSLE_MOVW_TPREL_G1_NC), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSLE_MOVW_TPREL_G0), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSLE_MOVW_TPREL_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSLE_ADD_TPREL_HI12), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSLE_ADD_TPREL_LO12), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSLE_ADD_TPREL_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* LD/ST16: bit[11:1] of byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLE_LDST16_TPREL_LO12), /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
11, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check. */
HOWTO (AARCH64_R (TLSLE_LDST16_TPREL_LO12_NC), /* type */
1, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
11, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* LD/ST32: bit[11:2] of byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLE_LDST32_TPREL_LO12), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check. */
HOWTO (AARCH64_R (TLSLE_LDST32_TPREL_LO12_NC), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
10, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* LD/ST64: bit[11:3] of byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLE_LDST64_TPREL_LO12), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
9, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check. */
HOWTO (AARCH64_R (TLSLE_LDST64_TPREL_LO12_NC), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
9, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* LD/ST8: bit[11:0] of byte offset to module TLS base address. */
HOWTO (AARCH64_R (TLSLE_LDST8_TPREL_LO12), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
/* Same as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check. */
HOWTO (AARCH64_R (TLSLE_LDST8_TPREL_LO12_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
10, /* bitpos */
HOWTO (AARCH64_R (TLSDESC_LD_PREL19), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
19, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSDESC_ADR_PREL21), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
(G(S) - P) using an ADRP instruction. */
HOWTO (AARCH64_R (TLSDESC_ADR_PAGE21), /* type */
12, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
21, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* LD64: GOT offset G(S) & 0xff8. */
HOWTO64 (AARCH64_R (TLSDESC_LD64_LO12), /* type */
3, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* LD32: GOT offset G(S) & 0xffc. */
HOWTO32 (AARCH64_R (TLSDESC_LD32_LO12_NC), /* type */
2, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* ADD: GOT offset G(S) & 0xfff. */
HOWTO (AARCH64_R (TLSDESC_ADD_LO12), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSDESC_OFF_G1), /* type */
16, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSDESC_OFF_G0_NC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSDESC_LDR), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO64 (AARCH64_R (TLSDESC_ADD), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
12, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSDESC_CALL), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (COPY), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (GLOB_DAT), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (JUMP_SLOT), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (RELATIVE), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLS_DTPMOD), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLS_DTPREL), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLS_TPREL), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (TLSDESC), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (AARCH64_R (IRELATIVE), /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type elfNN_aarch64_howto_none =
HOWTO (R_AARCH64_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
TYPE field. */
static reloc_howto_type ia64_howto_table[] =
{
- IA64_HOWTO (R_IA64_NONE, "NONE", 3, false, true),
-
- IA64_HOWTO (R_IA64_IMM14, "IMM14", 0, false, true),
- IA64_HOWTO (R_IA64_IMM22, "IMM22", 0, false, true),
- IA64_HOWTO (R_IA64_IMM64, "IMM64", 0, false, true),
- IA64_HOWTO (R_IA64_DIR32MSB, "DIR32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_DIR32LSB, "DIR32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_DIR64MSB, "DIR64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_DIR64LSB, "DIR64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_GPREL22, "GPREL22", 0, false, true),
- IA64_HOWTO (R_IA64_GPREL64I, "GPREL64I", 0, false, true),
- IA64_HOWTO (R_IA64_GPREL32MSB, "GPREL32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_GPREL32LSB, "GPREL32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_GPREL64MSB, "GPREL64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_GPREL64LSB, "GPREL64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_LTOFF22, "LTOFF22", 0, false, true),
- IA64_HOWTO (R_IA64_LTOFF64I, "LTOFF64I", 0, false, true),
-
- IA64_HOWTO (R_IA64_PLTOFF22, "PLTOFF22", 0, false, true),
- IA64_HOWTO (R_IA64_PLTOFF64I, "PLTOFF64I", 0, false, true),
- IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_FPTR64I, "FPTR64I", 0, false, true),
- IA64_HOWTO (R_IA64_FPTR32MSB, "FPTR32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_FPTR32LSB, "FPTR32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_FPTR64MSB, "FPTR64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_FPTR64LSB, "FPTR64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_PCREL60B, "PCREL60B", 0, true, true),
- IA64_HOWTO (R_IA64_PCREL21B, "PCREL21B", 0, true, true),
- IA64_HOWTO (R_IA64_PCREL21M, "PCREL21M", 0, true, true),
- IA64_HOWTO (R_IA64_PCREL21F, "PCREL21F", 0, true, true),
- IA64_HOWTO (R_IA64_PCREL32MSB, "PCREL32MSB", 2, true, true),
- IA64_HOWTO (R_IA64_PCREL32LSB, "PCREL32LSB", 2, true, true),
- IA64_HOWTO (R_IA64_PCREL64MSB, "PCREL64MSB", 4, true, true),
- IA64_HOWTO (R_IA64_PCREL64LSB, "PCREL64LSB", 4, true, true),
-
- IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 0, false, true),
- IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 0, false, true),
- IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_REL32MSB, "REL32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_REL32LSB, "REL32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_REL64MSB, "REL64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_REL64LSB, "REL64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_LTV32MSB, "LTV32MSB", 2, false, true),
- IA64_HOWTO (R_IA64_LTV32LSB, "LTV32LSB", 2, false, true),
- IA64_HOWTO (R_IA64_LTV64MSB, "LTV64MSB", 4, false, true),
- IA64_HOWTO (R_IA64_LTV64LSB, "LTV64LSB", 4, false, true),
-
- IA64_HOWTO (R_IA64_PCREL21BI, "PCREL21BI", 0, true, true),
- IA64_HOWTO (R_IA64_PCREL22, "PCREL22", 0, true, true),
- IA64_HOWTO (R_IA64_PCREL64I, "PCREL64I", 0, true, true),
-
- IA64_HOWTO (R_IA64_IPLTMSB, "IPLTMSB", 4, false, true),
- IA64_HOWTO (R_IA64_IPLTLSB, "IPLTLSB", 4, false, true),
- IA64_HOWTO (R_IA64_COPY, "COPY", 4, false, true),
- IA64_HOWTO (R_IA64_LTOFF22X, "LTOFF22X", 0, false, true),
- IA64_HOWTO (R_IA64_LDXMOV, "LDXMOV", 0, false, true),
-
- IA64_HOWTO (R_IA64_TPREL14, "TPREL14", 0, false, false),
- IA64_HOWTO (R_IA64_TPREL22, "TPREL22", 0, false, false),
- IA64_HOWTO (R_IA64_TPREL64I, "TPREL64I", 0, false, false),
- IA64_HOWTO (R_IA64_TPREL64MSB, "TPREL64MSB", 4, false, false),
- IA64_HOWTO (R_IA64_TPREL64LSB, "TPREL64LSB", 4, false, false),
- IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22", 0, false, false),
-
- IA64_HOWTO (R_IA64_DTPMOD64MSB, "DTPMOD64MSB", 4, false, false),
- IA64_HOWTO (R_IA64_DTPMOD64LSB, "DTPMOD64LSB", 4, false, false),
- IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 0, false, false),
-
- IA64_HOWTO (R_IA64_DTPREL14, "DTPREL14", 0, false, false),
- IA64_HOWTO (R_IA64_DTPREL22, "DTPREL22", 0, false, false),
- IA64_HOWTO (R_IA64_DTPREL64I, "DTPREL64I", 0, false, false),
- IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 2, false, false),
- IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 2, false, false),
- IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 4, false, false),
- IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 4, false, false),
- IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 0, false, false),
+ IA64_HOWTO (R_IA64_NONE, "NONE", 0, false, true),
+
+ IA64_HOWTO (R_IA64_IMM14, "IMM14", 1, false, true),
+ IA64_HOWTO (R_IA64_IMM22, "IMM22", 1, false, true),
+ IA64_HOWTO (R_IA64_IMM64, "IMM64", 1, false, true),
+ IA64_HOWTO (R_IA64_DIR32MSB, "DIR32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_DIR32LSB, "DIR32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_DIR64MSB, "DIR64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_DIR64LSB, "DIR64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_GPREL22, "GPREL22", 1, false, true),
+ IA64_HOWTO (R_IA64_GPREL64I, "GPREL64I", 1, false, true),
+ IA64_HOWTO (R_IA64_GPREL32MSB, "GPREL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_GPREL32LSB, "GPREL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_GPREL64MSB, "GPREL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_GPREL64LSB, "GPREL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_LTOFF22, "LTOFF22", 1, false, true),
+ IA64_HOWTO (R_IA64_LTOFF64I, "LTOFF64I", 1, false, true),
+
+ IA64_HOWTO (R_IA64_PLTOFF22, "PLTOFF22", 1, false, true),
+ IA64_HOWTO (R_IA64_PLTOFF64I, "PLTOFF64I", 1, false, true),
+ IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_FPTR64I, "FPTR64I", 1, false, true),
+ IA64_HOWTO (R_IA64_FPTR32MSB, "FPTR32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_FPTR32LSB, "FPTR32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_FPTR64MSB, "FPTR64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_FPTR64LSB, "FPTR64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_PCREL60B, "PCREL60B", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL21B, "PCREL21B", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL21M, "PCREL21M", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL21F, "PCREL21F", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL32MSB, "PCREL32MSB", 4, true, true),
+ IA64_HOWTO (R_IA64_PCREL32LSB, "PCREL32LSB", 4, true, true),
+ IA64_HOWTO (R_IA64_PCREL64MSB, "PCREL64MSB", 8, true, true),
+ IA64_HOWTO (R_IA64_PCREL64LSB, "PCREL64LSB", 8, true, true),
+
+ IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 1, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 1, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_REL32MSB, "REL32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_REL32LSB, "REL32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_REL64MSB, "REL64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_REL64LSB, "REL64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_LTV32MSB, "LTV32MSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTV32LSB, "LTV32LSB", 4, false, true),
+ IA64_HOWTO (R_IA64_LTV64MSB, "LTV64MSB", 8, false, true),
+ IA64_HOWTO (R_IA64_LTV64LSB, "LTV64LSB", 8, false, true),
+
+ IA64_HOWTO (R_IA64_PCREL21BI, "PCREL21BI", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL22, "PCREL22", 1, true, true),
+ IA64_HOWTO (R_IA64_PCREL64I, "PCREL64I", 1, true, true),
+
+ IA64_HOWTO (R_IA64_IPLTMSB, "IPLTMSB", 8, false, true),
+ IA64_HOWTO (R_IA64_IPLTLSB, "IPLTLSB", 8, false, true),
+ IA64_HOWTO (R_IA64_COPY, "COPY", 8, false, true),
+ IA64_HOWTO (R_IA64_LTOFF22X, "LTOFF22X", 1, false, true),
+ IA64_HOWTO (R_IA64_LDXMOV, "LDXMOV", 1, false, true),
+
+ IA64_HOWTO (R_IA64_TPREL14, "TPREL14", 1, false, false),
+ IA64_HOWTO (R_IA64_TPREL22, "TPREL22", 1, false, false),
+ IA64_HOWTO (R_IA64_TPREL64I, "TPREL64I", 1, false, false),
+ IA64_HOWTO (R_IA64_TPREL64MSB, "TPREL64MSB", 8, false, false),
+ IA64_HOWTO (R_IA64_TPREL64LSB, "TPREL64LSB", 8, false, false),
+ IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22", 1, false, false),
+
+ IA64_HOWTO (R_IA64_DTPMOD64MSB, "DTPMOD64MSB", 8, false, false),
+ IA64_HOWTO (R_IA64_DTPMOD64LSB, "DTPMOD64LSB", 8, false, false),
+ IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 1, false, false),
+
+ IA64_HOWTO (R_IA64_DTPREL14, "DTPREL14", 1, false, false),
+ IA64_HOWTO (R_IA64_DTPREL22, "DTPREL22", 1, false, false),
+ IA64_HOWTO (R_IA64_DTPREL64I, "DTPREL64I", 1, false, false),
+ IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 4, false, false),
+ IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 4, false, false),
+ IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 8, false, false),
+ IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 8, false, false),
+ IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 1, false, false),
};
static unsigned char elf_code_to_howto_index[R_IA64_MAX_RELOC_CODE + 1];
}loongarch_reloc_howto_type;
#define LOONGARCH_DEFAULT_HOWTO(r_name) \
- { HOWTO (R_LARCH_##r_name, 0, 2, 32, false, 0, complain_overflow_signed, \
+ { HOWTO (R_LARCH_##r_name, 0, 4, 32, false, 0, complain_overflow_signed, \
bfd_elf_generic_reloc, "R_LARCH_" #r_name, false, 0, ALL_ONES, \
false), BFD_RELOC_LARCH_##r_name, NULL }
/* No relocation. */
LOONGARCH_HOWTO (R_LARCH_NONE, /* type (0). */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit relocation. */
LOONGARCH_HOWTO (R_LARCH_32, /* type (1). */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 64 bit relocation. */
LOONGARCH_HOWTO (R_LARCH_64, /* type (2). */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_RELATIVE, /* type (3). */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_COPY, /* type (4). */
0, /* rightshift */
- 0, /* this one is variable size */
+ 1, /* this one is variable size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_JUMP_SLOT, /* type (5). */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Dynamic TLS relocations. */
LOONGARCH_HOWTO (R_LARCH_TLS_DTPMOD32, /* type (6). */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_TLS_DTPMOD64, /* type (7). */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_TLS_DTPREL32, /* type (8). */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_TLS_DTPREL64, /* type (9). */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_TLS_TPREL32, /* type (10). */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_TLS_TPREL64, /* type (11). */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_IRELATIVE, /* type (12). */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
LOONGARCH_HOWTO (R_LARCH_MARK_LA, /* type (20). */
0, /* rightshift. */
- 3, /* size. */
+ 0, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_MARK_PCREL, /* type (21). */
0, /* rightshift. */
- 3, /* size. */
+ 0, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_PUSH_PCREL, /* type (22). */
2, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
32, /* bitsize. */
true /* FIXME: somewhat use this. */, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_S_10_5, /* type (38). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
5, /* bitsize. */
false, /* pc_relative. */
10, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_U_10_12, /* type (39). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
12, /* bitsize. */
false, /* pc_relative. */
10, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_S_10_12, /* type (40). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
12, /* bitsize. */
false, /* pc_relative. */
10, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_S_10_16, /* type (41). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
10, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_S_10_16_S2, /* type (42). */
2, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
10, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_S_5_20, /* type (43). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
20, /* bitsize. */
false, /* pc_relative. */
5, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_S_0_5_10_16_S2,
/* type (44). */
2, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
21, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_S_0_10_10_16_S2, /* type (45). */
2, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
26, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SOP_POP_32_U, /* type (46). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_ADD8, /* type (47). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
8, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_ADD16, /* type (48). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_ADD24, /* type (49). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
24, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_ADD32, /* type (50). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_ADD64, /* type (51). */
0, /* rightshift. */
- 4, /* size. */
+ 8, /* size. */
64, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SUB8, /* type (52). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
8, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SUB16, /* type (53). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
16, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SUB24, /* type (54). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
24, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SUB32, /* type (55). */
0, /* rightshift. */
- 2, /* size. */
+ 4, /* size. */
32, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_SUB64, /* type (56). */
0, /* rightshift. */
- 4, /* size. */
+ 8, /* size. */
64, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_GNU_VTINHERIT, /* type (57). */
0, /* rightshift. */
- 0, /* size. */
+ 1, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
LOONGARCH_HOWTO (R_LARCH_GNU_VTENTRY, /* type (58). */
0, /* rightshift. */
- 0, /* size. */
+ 1, /* size. */
0, /* bitsize. */
false, /* pc_relative. */
0, /* bitpos. */
{
bfd_vma off;
static reloc_howto_type none_howto
- = HOWTO (0, 0, 3, 0, false, 0, complain_overflow_dont, NULL,
+ = HOWTO (0, 0, 0, 0, false, 0, complain_overflow_dont, NULL,
"unused", false, 0, 0, false);
off = ((*parent)->address
/* No relocation. */
HOWTO (R_RISCV_NONE, /* type */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32 bit relocation. */
HOWTO (R_RISCV_32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 64 bit relocation. */
HOWTO (R_RISCV_64, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Relocation against a local symbol in a shared object. */
HOWTO (R_RISCV_RELATIVE, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_RISCV_COPY, /* type */
0, /* rightshift */
- 0, /* this one is variable size */
+ 1, /* this one is variable size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_RISCV_JUMP_SLOT, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Dynamic TLS relocations. */
HOWTO (R_RISCV_TLS_DTPMOD32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_RISCV_TLS_DTPMOD64, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_RISCV_TLS_DTPREL32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_RISCV_TLS_DTPREL64, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_RISCV_TLS_TPREL32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_RISCV_TLS_TPREL64, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 12-bit PC-relative branch offset. */
HOWTO (R_RISCV_BRANCH, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 20-bit PC-relative jump offset. */
HOWTO (R_RISCV_JAL, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 32-bit PC-relative function call (AUIPC/JALR). */
HOWTO (R_RISCV_CALL, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Like R_RISCV_CALL, but not locally binding. */
HOWTO (R_RISCV_CALL_PLT, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 20 bits of 32-bit PC-relative GOT access. */
HOWTO (R_RISCV_GOT_HI20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 20 bits of 32-bit PC-relative TLS IE GOT access. */
HOWTO (R_RISCV_TLS_GOT_HI20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 20 bits of 32-bit PC-relative TLS GD GOT reference. */
HOWTO (R_RISCV_TLS_GD_HI20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 20 bits of 32-bit PC-relative reference. */
HOWTO (R_RISCV_PCREL_HI20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Low 12 bits of a 32-bit PC-relative load or add. */
HOWTO (R_RISCV_PCREL_LO12_I, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 12 bits of a 32-bit PC-relative store. */
HOWTO (R_RISCV_PCREL_LO12_S, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 20 bits of 32-bit absolute address. */
HOWTO (R_RISCV_HI20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 12 bits of 32-bit load or add. */
HOWTO (R_RISCV_LO12_I, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 12 bits of 32-bit store. */
HOWTO (R_RISCV_LO12_S, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* High 20 bits of TLS LE thread pointer offset. */
HOWTO (R_RISCV_TPREL_HI20, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 12 bits of TLS LE thread pointer offset for loads and adds. */
HOWTO (R_RISCV_TPREL_LO12_I, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* Low 12 bits of TLS LE thread pointer offset for stores. */
HOWTO (R_RISCV_TPREL_LO12_S, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TLS LE thread pointer usage. May be relaxed. */
HOWTO (R_RISCV_TPREL_ADD, /* type */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_ADD8, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_ADD16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_ADD32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 64-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_ADD64, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_SUB8, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_SUB16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_SUB32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 64-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_SUB64, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_RISCV_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_RISCV_GNU_VTENTRY, /* type */
0, /* rightshift */
- 4, /* size */
+ 8, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
addend rounded up to the next power of two. */
HOWTO (R_RISCV_ALIGN, /* type */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8-bit PC-relative branch offset. */
HOWTO (R_RISCV_RVC_BRANCH, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* 11-bit PC-relative jump offset. */
HOWTO (R_RISCV_RVC_JUMP, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* High 6 bits of 18-bit absolute address. */
HOWTO (R_RISCV_RVC_LUI, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GP-relative load. */
HOWTO (R_RISCV_GPREL_I, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GP-relative store. */
HOWTO (R_RISCV_GPREL_S, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TP-relative TLS LE load. */
HOWTO (R_RISCV_TPREL_I, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* TP-relative TLS LE store. */
HOWTO (R_RISCV_TPREL_S, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* The paired relocation may be relaxed. */
HOWTO (R_RISCV_RELAX, /* type */
0, /* rightshift */
- 3, /* size */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 6-bit in-place addition, for local label subtraction. */
HOWTO (R_RISCV_SUB6, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 6-bit in-place setting, for local label subtraction. */
HOWTO (R_RISCV_SET6, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 8-bit in-place setting, for local label subtraction. */
HOWTO (R_RISCV_SET8, /* type */
0, /* rightshift */
- 0, /* size */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 16-bit in-place setting, for local label subtraction. */
HOWTO (R_RISCV_SET16, /* type */
0, /* rightshift */
- 1, /* size */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit in-place setting, for local label subtraction. */
HOWTO (R_RISCV_SET32, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* 32-bit PC relative. */
HOWTO (R_RISCV_32_PCREL, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* Relocation against a local ifunc symbol in a shared object. */
HOWTO (R_RISCV_IRELATIVE, /* type */
0, /* rightshift */
- 2, /* size */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type _bfd_sparc_elf_howto_table[] =
{
- HOWTO(R_SPARC_NONE, 0,3, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true),
- HOWTO(R_SPARC_8, 0,0, 8,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_8", false,0,0x000000ff,true),
- HOWTO(R_SPARC_16, 0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_16", false,0,0x0000ffff,true),
- HOWTO(R_SPARC_32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_32", false,0,0xffffffff,true),
- HOWTO(R_SPARC_DISP8, 0,0, 8,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP8", false,0,0x000000ff,true),
- HOWTO(R_SPARC_DISP16, 0,1,16,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP16", false,0,0x0000ffff,true),
- HOWTO(R_SPARC_DISP32, 0,2,32,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP32", false,0,0xffffffff,true),
- HOWTO(R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP30", false,0,0x3fffffff,true),
- HOWTO(R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_HI22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HI22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_22, 0,2,22,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_13, 0,2,13,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_13", false,0,0x00001fff,true),
- HOWTO(R_SPARC_LO10, 0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LO10", false,0,0x000003ff,true),
- HOWTO(R_SPARC_GOT10, 0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT10", false,0,0x000003ff,true),
- HOWTO(R_SPARC_GOT13, 0,2,13,false,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_GOT13", false,0,0x00001fff,true),
- HOWTO(R_SPARC_GOT22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_PC10, 0,2,10,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC10", false,0,0x000003ff,true),
- HOWTO(R_SPARC_PC22, 10,2,22,true, 0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PC22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_WPLT30, 2,2,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WPLT30", false,0,0x3fffffff,true),
- HOWTO(R_SPARC_COPY, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_COPY", false,0,0x00000000,true),
- HOWTO(R_SPARC_GLOB_DAT, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GLOB_DAT",false,0,0x00000000,true),
- HOWTO(R_SPARC_JMP_SLOT, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_SLOT",false,0,0x00000000,true),
- HOWTO(R_SPARC_RELATIVE, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_RELATIVE",false,0,0x00000000,true),
- HOWTO(R_SPARC_UA32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA32", false,0,0xffffffff,true),
- HOWTO(R_SPARC_PLT32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT32", false,0,0xffffffff,true),
- HOWTO(R_SPARC_HIPLT22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_HIPLT22", false,0,0x00000000,true),
- HOWTO(R_SPARC_LOPLT10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_LOPLT10", false,0,0x00000000,true),
- HOWTO(R_SPARC_PCPLT32, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT32", false,0,0x00000000,true),
- HOWTO(R_SPARC_PCPLT22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT22", false,0,0x00000000,true),
- HOWTO(R_SPARC_PCPLT10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT10", false,0,0x00000000,true),
- HOWTO(R_SPARC_10, 0,2,10,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_10", false,0,0x000003ff,true),
- HOWTO(R_SPARC_11, 0,2,11,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_11", false,0,0x000007ff,true),
- HOWTO(R_SPARC_64, 0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_64", false,0,MINUS_ONE, true),
- HOWTO(R_SPARC_OLO10, 0,2,13,false,0,complain_overflow_signed, sparc_elf_notsup_reloc, "R_SPARC_OLO10", false,0,0x00001fff,true),
- HOWTO(R_SPARC_HH22, 42,2,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_HH22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_HM10, 32,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HM10", false,0,0x000003ff,true),
- HOWTO(R_SPARC_LM22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LM22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_PC_HH22, 42,2,22,true, 0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_PC_HH22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_PC_HM10, 32,2,10,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_HM10", false,0,0x000003ff,true),
- HOWTO(R_SPARC_PC_LM22, 10,2,22,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_LM22", false,0,0x003fffff,true),
- HOWTO(R_SPARC_WDISP16, 2,2,16,true, 0,complain_overflow_signed, sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", false,0,0x00000000,true),
- HOWTO(R_SPARC_WDISP19, 2,2,19,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP19", false,0,0x0007ffff,true),
- HOWTO(R_SPARC_UNUSED_42, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_UNUSED_42",false,0,0x00000000,true),
- HOWTO(R_SPARC_7, 0,2, 7,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_7", false,0,0x0000007f,true),
- HOWTO(R_SPARC_5, 0,2, 5,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_5", false,0,0x0000001f,true),
- HOWTO(R_SPARC_6, 0,2, 6,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_6", false,0,0x0000003f,true),
- HOWTO(R_SPARC_DISP64, 0,4,64,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP64", false,0,MINUS_ONE, true),
- HOWTO(R_SPARC_PLT64, 0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT64", false,0,MINUS_ONE, true),
- HOWTO(R_SPARC_HIX22, 0,4, 0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc, "R_SPARC_HIX22", false,0,MINUS_ONE, false),
- HOWTO(R_SPARC_LOX10, 0,4, 0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_LOX10", false,0,MINUS_ONE, false),
- HOWTO(R_SPARC_H44, 22,2,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_H44", false,0,0x003fffff,false),
- HOWTO(R_SPARC_M44, 12,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_M44", false,0,0x000003ff,false),
- HOWTO(R_SPARC_L44, 0,2,13,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_L44", false,0,0x00000fff,false),
- HOWTO(R_SPARC_REGISTER, 0,4, 0,false,0,complain_overflow_bitfield,sparc_elf_notsup_reloc, "R_SPARC_REGISTER",false,0,MINUS_ONE, false),
- HOWTO(R_SPARC_UA64, 0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA64", false,0,MINUS_ONE, true),
- HOWTO(R_SPARC_UA16, 0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA16", false,0,0x0000ffff,true),
- HOWTO(R_SPARC_TLS_GD_HI22,10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_HI22",false,0,0x003fffff,true),
- HOWTO(R_SPARC_TLS_GD_LO10,0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_LO10",false,0,0x000003ff,true),
- HOWTO(R_SPARC_TLS_GD_ADD,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_ADD",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_GD_CALL,2,2,30,true,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_CALL",false,0,0x3fffffff,true),
- HOWTO(R_SPARC_TLS_LDM_HI22,10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_HI22",false,0,0x003fffff,true),
- HOWTO(R_SPARC_TLS_LDM_LO10,0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_LO10",false,0,0x000003ff,true),
- HOWTO(R_SPARC_TLS_LDM_ADD,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_ADD",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_LDM_CALL,2,2,30,true,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_CALL",false,0,0x3fffffff,true),
- HOWTO(R_SPARC_TLS_LDO_HIX22,0,2,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_TLS_LDO_HIX22",false,0,0x003fffff, false),
- HOWTO(R_SPARC_TLS_LDO_LOX10,0,2,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_TLS_LDO_LOX10",false,0,0x000003ff, false),
- HOWTO(R_SPARC_TLS_LDO_ADD,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDO_ADD",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_IE_HI22,10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_HI22",false,0,0x003fffff,true),
- HOWTO(R_SPARC_TLS_IE_LO10,0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_LO10",false,0,0x000003ff,true),
- HOWTO(R_SPARC_TLS_IE_LD,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_LD",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_IE_LDX,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_LDX",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_IE_ADD,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_ADD",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_LE_HIX22,0,2,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc, "R_SPARC_TLS_LE_HIX22",false,0,0x003fffff, false),
- HOWTO(R_SPARC_TLS_LE_LOX10,0,2,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_TLS_LE_LOX10",false,0,0x000003ff, false),
- HOWTO(R_SPARC_TLS_DTPMOD32,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_DTPMOD32",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_DTPMOD64,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_DTPMOD64",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_DTPOFF32,0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_TLS_DTPOFF32",false,0,0xffffffff,true),
- HOWTO(R_SPARC_TLS_DTPOFF64,0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_TLS_DTPOFF64",false,0,MINUS_ONE,true),
- HOWTO(R_SPARC_TLS_TPOFF32,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_TPOFF32",false,0,0x00000000,true),
- HOWTO(R_SPARC_TLS_TPOFF64,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_TPOFF64",false,0,0x00000000,true),
- HOWTO(R_SPARC_GOTDATA_HIX22,0,2,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_GOTDATA_HIX22",false,0,0x003fffff, false),
- HOWTO(R_SPARC_GOTDATA_LOX10,0,2,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_GOTDATA_LOX10",false,0,0x000003ff, false),
- HOWTO(R_SPARC_GOTDATA_OP_HIX22,0,2,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_GOTDATA_OP_HIX22",false,0,0x003fffff, false),
- HOWTO(R_SPARC_GOTDATA_OP_LOX10,0,2,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_GOTDATA_OP_LOX10",false,0,0x000003ff, false),
- HOWTO(R_SPARC_GOTDATA_OP,0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOTDATA_OP",false,0,0x00000000,true),
- HOWTO(R_SPARC_H34,12,2,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc,"R_SPARC_H34",false,0,0x003fffff,false),
- HOWTO(R_SPARC_SIZE32,0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_SIZE32",false,0,0xffffffff,true),
- HOWTO(R_SPARC_SIZE64,0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_SIZE64",false,0,MINUS_ONE, true),
- HOWTO(R_SPARC_WDISP10,2,2,10,true, 0,complain_overflow_signed,sparc_elf_wdisp10_reloc,"R_SPARC_WDISP10",false,0,0x00000000,true),
+ HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true),
+ HOWTO(R_SPARC_8, 0,1, 8,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_8", false,0,0x000000ff,true),
+ HOWTO(R_SPARC_16, 0,2,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_16", false,0,0x0000ffff,true),
+ HOWTO(R_SPARC_32, 0,4,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_32", false,0,0xffffffff,true),
+ HOWTO(R_SPARC_DISP8, 0,1, 8,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP8", false,0,0x000000ff,true),
+ HOWTO(R_SPARC_DISP16, 0,2,16,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP16", false,0,0x0000ffff,true),
+ HOWTO(R_SPARC_DISP32, 0,4,32,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP32", false,0,0xffffffff,true),
+ HOWTO(R_SPARC_WDISP30, 2,4,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP30", false,0,0x3fffffff,true),
+ HOWTO(R_SPARC_WDISP22, 2,4,22,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_HI22, 10,4,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HI22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_22, 0,4,22,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_13, 0,4,13,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_13", false,0,0x00001fff,true),
+ HOWTO(R_SPARC_LO10, 0,4,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LO10", false,0,0x000003ff,true),
+ HOWTO(R_SPARC_GOT10, 0,4,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT10", false,0,0x000003ff,true),
+ HOWTO(R_SPARC_GOT13, 0,4,13,false,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_GOT13", false,0,0x00001fff,true),
+ HOWTO(R_SPARC_GOT22, 10,4,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_PC10, 0,4,10,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC10", false,0,0x000003ff,true),
+ HOWTO(R_SPARC_PC22, 10,4,22,true, 0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PC22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_WPLT30, 2,4,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WPLT30", false,0,0x3fffffff,true),
+ HOWTO(R_SPARC_COPY, 0,1,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_COPY", false,0,0x00000000,true),
+ HOWTO(R_SPARC_GLOB_DAT, 0,1,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GLOB_DAT",false,0,0x00000000,true),
+ HOWTO(R_SPARC_JMP_SLOT, 0,1,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_SLOT",false,0,0x00000000,true),
+ HOWTO(R_SPARC_RELATIVE, 0,1,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_RELATIVE",false,0,0x00000000,true),
+ HOWTO(R_SPARC_UA32, 0,4,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA32", false,0,0xffffffff,true),
+ HOWTO(R_SPARC_PLT32, 0,4,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT32", false,0,0xffffffff,true),
+ HOWTO(R_SPARC_HIPLT22, 0,1,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_HIPLT22", false,0,0x00000000,true),
+ HOWTO(R_SPARC_LOPLT10, 0,1,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_LOPLT10", false,0,0x00000000,true),
+ HOWTO(R_SPARC_PCPLT32, 0,1,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT32", false,0,0x00000000,true),
+ HOWTO(R_SPARC_PCPLT22, 0,1,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT22", false,0,0x00000000,true),
+ HOWTO(R_SPARC_PCPLT10, 0,1,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT10", false,0,0x00000000,true),
+ HOWTO(R_SPARC_10, 0,4,10,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_10", false,0,0x000003ff,true),
+ HOWTO(R_SPARC_11, 0,4,11,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_11", false,0,0x000007ff,true),
+ HOWTO(R_SPARC_64, 0,8,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_64", false,0,MINUS_ONE, true),
+ HOWTO(R_SPARC_OLO10, 0,4,13,false,0,complain_overflow_signed, sparc_elf_notsup_reloc, "R_SPARC_OLO10", false,0,0x00001fff,true),
+ HOWTO(R_SPARC_HH22, 42,4,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_HH22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_HM10, 32,4,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HM10", false,0,0x000003ff,true),
+ HOWTO(R_SPARC_LM22, 10,4,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LM22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_PC_HH22, 42,4,22,true, 0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_PC_HH22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_PC_HM10, 32,4,10,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_HM10", false,0,0x000003ff,true),
+ HOWTO(R_SPARC_PC_LM22, 10,4,22,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_LM22", false,0,0x003fffff,true),
+ HOWTO(R_SPARC_WDISP16, 2,4,16,true, 0,complain_overflow_signed, sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", false,0,0x00000000,true),
+ HOWTO(R_SPARC_WDISP19, 2,4,19,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP19", false,0,0x0007ffff,true),
+ HOWTO(R_SPARC_UNUSED_42, 0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_UNUSED_42",false,0,0x00000000,true),
+ HOWTO(R_SPARC_7, 0,4, 7,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_7", false,0,0x0000007f,true),
+ HOWTO(R_SPARC_5, 0,4, 5,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_5", false,0,0x0000001f,true),
+ HOWTO(R_SPARC_6, 0,4, 6,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_6", false,0,0x0000003f,true),
+ HOWTO(R_SPARC_DISP64, 0,8,64,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP64", false,0,MINUS_ONE, true),
+ HOWTO(R_SPARC_PLT64, 0,8,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT64", false,0,MINUS_ONE, true),
+ HOWTO(R_SPARC_HIX22, 0,8, 0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc, "R_SPARC_HIX22", false,0,MINUS_ONE, false),
+ HOWTO(R_SPARC_LOX10, 0,8, 0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_LOX10", false,0,MINUS_ONE, false),
+ HOWTO(R_SPARC_H44, 22,4,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_H44", false,0,0x003fffff,false),
+ HOWTO(R_SPARC_M44, 12,4,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_M44", false,0,0x000003ff,false),
+ HOWTO(R_SPARC_L44, 0,4,13,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_L44", false,0,0x00000fff,false),
+ HOWTO(R_SPARC_REGISTER, 0,8, 0,false,0,complain_overflow_bitfield,sparc_elf_notsup_reloc, "R_SPARC_REGISTER",false,0,MINUS_ONE, false),
+ HOWTO(R_SPARC_UA64, 0,8,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA64", false,0,MINUS_ONE, true),
+ HOWTO(R_SPARC_UA16, 0,2,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA16", false,0,0x0000ffff,true),
+ HOWTO(R_SPARC_TLS_GD_HI22,10,4,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_HI22",false,0,0x003fffff,true),
+ HOWTO(R_SPARC_TLS_GD_LO10,0,4,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_LO10",false,0,0x000003ff,true),
+ HOWTO(R_SPARC_TLS_GD_ADD,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_ADD",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_GD_CALL,2,4,30,true,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_TLS_GD_CALL",false,0,0x3fffffff,true),
+ HOWTO(R_SPARC_TLS_LDM_HI22,10,4,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_HI22",false,0,0x003fffff,true),
+ HOWTO(R_SPARC_TLS_LDM_LO10,0,4,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_LO10",false,0,0x000003ff,true),
+ HOWTO(R_SPARC_TLS_LDM_ADD,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_ADD",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_LDM_CALL,2,4,30,true,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_TLS_LDM_CALL",false,0,0x3fffffff,true),
+ HOWTO(R_SPARC_TLS_LDO_HIX22,0,4,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_TLS_LDO_HIX22",false,0,0x003fffff, false),
+ HOWTO(R_SPARC_TLS_LDO_LOX10,0,4,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_TLS_LDO_LOX10",false,0,0x000003ff, false),
+ HOWTO(R_SPARC_TLS_LDO_ADD,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_LDO_ADD",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_IE_HI22,10,4,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_HI22",false,0,0x003fffff,true),
+ HOWTO(R_SPARC_TLS_IE_LO10,0,4,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_LO10",false,0,0x000003ff,true),
+ HOWTO(R_SPARC_TLS_IE_LD,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_LD",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_IE_LDX,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_LDX",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_IE_ADD,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_IE_ADD",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_LE_HIX22,0,4,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc, "R_SPARC_TLS_LE_HIX22",false,0,0x003fffff, false),
+ HOWTO(R_SPARC_TLS_LE_LOX10,0,4,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_TLS_LE_LOX10",false,0,0x000003ff, false),
+ HOWTO(R_SPARC_TLS_DTPMOD32,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_DTPMOD32",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_DTPMOD64,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_DTPMOD64",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_DTPOFF32,0,4,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_TLS_DTPOFF32",false,0,0xffffffff,true),
+ HOWTO(R_SPARC_TLS_DTPOFF64,0,8,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_TLS_DTPOFF64",false,0,MINUS_ONE,true),
+ HOWTO(R_SPARC_TLS_TPOFF32,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_TPOFF32",false,0,0x00000000,true),
+ HOWTO(R_SPARC_TLS_TPOFF64,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_TLS_TPOFF64",false,0,0x00000000,true),
+ HOWTO(R_SPARC_GOTDATA_HIX22,0,4,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_GOTDATA_HIX22",false,0,0x003fffff, false),
+ HOWTO(R_SPARC_GOTDATA_LOX10,0,4,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_GOTDATA_LOX10",false,0,0x000003ff, false),
+ HOWTO(R_SPARC_GOTDATA_OP_HIX22,0,4,0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_GOTDATA_OP_HIX22",false,0,0x003fffff, false),
+ HOWTO(R_SPARC_GOTDATA_OP_LOX10,0,4,0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_GOTDATA_OP_LOX10",false,0,0x000003ff, false),
+ HOWTO(R_SPARC_GOTDATA_OP,0,1, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOTDATA_OP",false,0,0x00000000,true),
+ HOWTO(R_SPARC_H34,12,4,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc,"R_SPARC_H34",false,0,0x003fffff,false),
+ HOWTO(R_SPARC_SIZE32,0,4,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_SIZE32",false,0,0xffffffff,true),
+ HOWTO(R_SPARC_SIZE64,0,8,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_SIZE64",false,0,MINUS_ONE, true),
+ HOWTO(R_SPARC_WDISP10,2,4,10,true, 0,complain_overflow_signed,sparc_elf_wdisp10_reloc,"R_SPARC_WDISP10",false,0,0x00000000,true),
};
static reloc_howto_type sparc_jmp_irel_howto =
- HOWTO(R_SPARC_JMP_IREL, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_IREL",false,0,0x00000000,true);
+ HOWTO(R_SPARC_JMP_IREL, 0,1,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_IREL",false,0,0x00000000,true);
static reloc_howto_type sparc_irelative_howto =
- HOWTO(R_SPARC_IRELATIVE, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_IRELATIVE",false,0,0x00000000,true);
+ HOWTO(R_SPARC_IRELATIVE, 0,1,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_IRELATIVE",false,0,0x00000000,true);
static reloc_howto_type sparc_vtinherit_howto =
- HOWTO (R_SPARC_GNU_VTINHERIT, 0,2,0,false,0,complain_overflow_dont, NULL, "R_SPARC_GNU_VTINHERIT", false,0, 0, false);
+ HOWTO (R_SPARC_GNU_VTINHERIT, 0,4,0,false,0,complain_overflow_dont, NULL, "R_SPARC_GNU_VTINHERIT", false,0, 0, false);
static reloc_howto_type sparc_vtentry_howto =
- HOWTO (R_SPARC_GNU_VTENTRY, 0,2,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_SPARC_GNU_VTENTRY", false,0,0, false);
+ HOWTO (R_SPARC_GNU_VTENTRY, 0,4,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_SPARC_GNU_VTENTRY", false,0,0, false);
static reloc_howto_type sparc_rev32_howto =
- HOWTO(R_SPARC_REV32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_REV32", false,0,0xffffffff,true);
+ HOWTO(R_SPARC_REV32, 0,4,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_REV32", false,0,0xffffffff,true);
reloc_howto_type *
_bfd_sparc_elf_reloc_type_lookup (bfd *abfd,
/* This reloc does nothing. */
HOWTO (R_TILEGX_NONE, /* type */
0, /* rightshift */
- 3, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 64 bit absolute relocation. */
HOWTO (R_TILEGX_64, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 32 bit absolute relocation. */
HOWTO (R_TILEGX_32, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit absolute relocation. */
HOWTO (R_TILEGX_16, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* An 8 bit absolute relocation. */
HOWTO (R_TILEGX_8, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 64 bit pc-relative relocation. */
HOWTO (R_TILEGX_64_PCREL,/* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
64, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 32 bit pc-relative relocation. */
HOWTO (R_TILEGX_32_PCREL,/* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
32, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit pc-relative relocation. */
HOWTO (R_TILEGX_16_PCREL,/* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* An 8 bit pc-relative relocation. */
HOWTO (R_TILEGX_8_PCREL, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
8, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation without overflow. */
HOWTO (R_TILEGX_HW0, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation without overflow. */
HOWTO (R_TILEGX_HW1, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation without overflow. */
HOWTO (R_TILEGX_HW2, /* type */
32, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation without overflow. */
HOWTO (R_TILEGX_HW3, /* type */
48, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation with overflow. */
HOWTO (R_TILEGX_HW0_LAST, /* type */
0, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation with overflow. */
HOWTO (R_TILEGX_HW1_LAST, /* type */
16, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* A 16 bit relocation with overflow. */
HOWTO (R_TILEGX_HW2_LAST, /* type */
32, /* rightshift */
- 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 2, /* size */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEGX_COPY, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEGX_GLOB_DAT, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEGX_JMP_SLOT, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEGX_RELATIVE, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEGX_BROFF_X1, /* type */
TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
17, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEGX_JUMPOFF_X1, /* type */
TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
HOWTO (R_TILEGX_JUMPOFF_X1_PLT, /* type */
TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
complain_overflow_unsigned, bfd_elf_generic_reloc, \
#name, false, 0, -1, false)
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_DEST_IMM8_X1, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_DEST_IMM8_X1, 1, 8),
- TILEGX_UIMM_HOWTO(R_TILEGX_MT_IMM14_X1, 1, 14),
- TILEGX_UIMM_HOWTO(R_TILEGX_MF_IMM14_X1, 1, 14),
+ TILEGX_UIMM_HOWTO(R_TILEGX_MT_IMM14_X1, 2, 14),
+ TILEGX_UIMM_HOWTO(R_TILEGX_MF_IMM14_X1, 2, 14),
- TILEGX_UIMM_HOWTO(R_TILEGX_MMSTART_X0, 0, 6),
- TILEGX_UIMM_HOWTO(R_TILEGX_MMEND_X0, 0, 6),
+ TILEGX_UIMM_HOWTO(R_TILEGX_MMSTART_X0, 1, 6),
+ TILEGX_UIMM_HOWTO(R_TILEGX_MMEND_X0, 1, 6),
- TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_X0, 0, 6),
- TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_X1, 0, 6),
- TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_Y0, 0, 6),
- TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_Y1, 0, 6),
+ TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_X0, 1, 6),
+ TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_X1, 1, 6),
+ TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_Y0, 1, 6),
+ TILEGX_UIMM_HOWTO(R_TILEGX_SHAMT_Y1, 1, 6),
#define TILEGX_IMM16_HOWTO(name, rshift) \
- HOWTO (name, rshift, 1, 16, false, 0, \
+ HOWTO (name, rshift, 2, 16, false, 0, \
complain_overflow_dont, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, false)
TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW3, 48),
#define TILEGX_IMM16_HOWTO_LAST(name, rshift) \
- HOWTO (name, rshift, 1, 16, false, 0, \
+ HOWTO (name, rshift, 2, 16, false, 0, \
complain_overflow_signed, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, false)
/* PC-relative offsets. */
#define TILEGX_IMM16_HOWTO_PCREL(name, rshift) \
- HOWTO (name, rshift, 1, 16, true, 0, \
+ HOWTO (name, rshift, 2, 16, true, 0, \
complain_overflow_dont, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, true)
TILEGX_IMM16_HOWTO_PCREL (R_TILEGX_IMM16_X1_HW3_PCREL, 48),
#define TILEGX_IMM16_HOWTO_LAST_PCREL(name, rshift) \
- HOWTO (name, rshift, 1, 16, true, 0, \
+ HOWTO (name, rshift, 2, 16, true, 0, \
complain_overflow_signed, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, true)
EMPTY_HOWTO (91),
#define TILEGX_IMM16_HOWTO_TLS_IE(name, rshift) \
- HOWTO (name, rshift, 1, 16, false, 0, \
+ HOWTO (name, rshift, 2, 16, false, 0, \
complain_overflow_dont, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, true)
TILEGX_IMM16_HOWTO_LAST_PCREL (R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL, 32),
#define TILEGX_IMM16_HOWTO_LAST_TLS_IE(name, rshift) \
- HOWTO (name, rshift, 1, 16, false, 0, \
+ HOWTO (name, rshift, 2, 16, false, 0, \
complain_overflow_signed, bfd_elf_generic_reloc, \
#name, false, 0, 0xffff, true)
EMPTY_HOWTO (104),
EMPTY_HOWTO (105),
- HOWTO(R_TILEGX_TLS_DTPMOD64, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_TILEGX_TLS_DTPMOD64, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPMOD64",
false, 0, 0, true),
- HOWTO(R_TILEGX_TLS_DTPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ HOWTO(R_TILEGX_TLS_DTPOFF64, 0, 8, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPOFF64",
false, 0, -1, true),
- HOWTO(R_TILEGX_TLS_TPOFF64, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_TILEGX_TLS_TPOFF64, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEGX_TLS_TPOFF64",
false, 0, 0, true),
- HOWTO(R_TILEGX_TLS_DTPMOD32, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_TILEGX_TLS_DTPMOD32, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPMOD32",
false, 0, 0, true),
- HOWTO(R_TILEGX_TLS_DTPOFF32, 0, 4, 32, false, 0, complain_overflow_bitfield,
+ HOWTO(R_TILEGX_TLS_DTPOFF32, 0, 8, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPOFF32",
false, 0, -1, true),
- HOWTO(R_TILEGX_TLS_TPOFF32, 0, 0, 0, false, 0, complain_overflow_dont,
+ HOWTO(R_TILEGX_TLS_TPOFF32, 0, 1, 0, false, 0, complain_overflow_dont,
bfd_elf_generic_reloc, "R_TILEGX_TLS_TPOFF32",
false, 0, 0, true),
HOWTO (R_TILEGX_TLS_GD_CALL, /* type */
TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 4, /* size */
27, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
-1, /* dst_mask */
true), /* pcrel_offset */
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0_TLS_GD_ADD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1_TLS_GD_ADD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0_TLS_GD_ADD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1_TLS_GD_ADD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_TLS_IE_LOAD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0_TLS_ADD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1_TLS_ADD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0_TLS_ADD, 0, 8),
- TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1_TLS_ADD, 0, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0_TLS_GD_ADD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1_TLS_GD_ADD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0_TLS_GD_ADD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1_TLS_GD_ADD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_TLS_IE_LOAD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0_TLS_ADD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1_TLS_ADD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0_TLS_ADD, 1, 8),
+ TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y1_TLS_ADD, 1, 8),
};
static reloc_howto_type tilegx_elf_howto_table2 [] =
/* GNU extension to record C++ vtable hierarchy */
HOWTO (R_TILEGX_GNU_VTINHERIT, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
/* GNU extension to record C++ vtable member usage */
HOWTO (R_TILEGX_GNU_VTENTRY, /* type */
0, /* rightshift */
- 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* size */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
static reloc_howto_type arm64_howto_table[]=
{
/* 0 */
- HOWTO (BFD_RELOC_64, 0, 4, 64, false, 0,
+ HOWTO (BFD_RELOC_64, 0, 8, 64, false, 0,
complain_overflow_bitfield,
NULL, "64",
false, MINUS_ONE, MINUS_ONE, false),
- HOWTO (BFD_RELOC_32, 0, 2, 32, false, 0,
+ HOWTO (BFD_RELOC_32, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO (BFD_RELOC_16, 0, 1, 16, false, 0,
+ HOWTO (BFD_RELOC_16, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "16",
false, 0xffff, 0xffff, false),
- HOWTO (BFD_RELOC_8, 0, 0, 8, false, 0,
+ HOWTO (BFD_RELOC_8, 0, 1, 8, false, 0,
complain_overflow_bitfield,
NULL, "8",
false, 0xff, 0xff, false),
/* 4 */
- HOWTO (BFD_RELOC_64_PCREL, 0, 4, 64, true, 0,
+ HOWTO (BFD_RELOC_64_PCREL, 0, 8, 64, true, 0,
complain_overflow_bitfield,
NULL, "DISP64",
false, MINUS_ONE, MINUS_ONE, true),
- HOWTO (BFD_RELOC_32_PCREL, 0, 2, 32, true, 0,
+ HOWTO (BFD_RELOC_32_PCREL, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "DISP32",
false, 0xffffffff, 0xffffffff, true),
- HOWTO (BFD_RELOC_16_PCREL, 0, 1, 16, true, 0,
+ HOWTO (BFD_RELOC_16_PCREL, 0, 2, 16, true, 0,
complain_overflow_bitfield,
NULL, "DISP16",
false, 0xffff, 0xffff, true),
- HOWTO (BFD_RELOC_AARCH64_CALL26, 0, 2, 26, true, 0,
+ HOWTO (BFD_RELOC_AARCH64_CALL26, 0, 4, 26, true, 0,
complain_overflow_bitfield,
NULL, "BRANCH26",
false, 0x03ffffff, 0x03ffffff, true),
/* 8 */
- HOWTO (BFD_RELOC_AARCH64_ADR_HI21_PCREL, 12, 2, 21, true, 0,
+ HOWTO (BFD_RELOC_AARCH64_ADR_HI21_PCREL, 12, 4, 21, true, 0,
complain_overflow_signed,
NULL, "PAGE21",
false, 0x1fffff, 0x1fffff, true),
- HOWTO (BFD_RELOC_AARCH64_LDST16_LO12, 1, 2, 12, true, 0,
+ HOWTO (BFD_RELOC_AARCH64_LDST16_LO12, 1, 4, 12, true, 0,
complain_overflow_signed,
NULL, "PGOFF12",
false, 0xffe, 0xffe, true),
- HOWTO (BFD_RELOC_MACH_O_ARM64_ADDEND, 0, 2, 32, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_ARM64_ADDEND, 0, 4, 32, false, 0,
complain_overflow_signed,
NULL, "ADDEND",
false, 0xffffffff, 0xffffffff, false),
- HOWTO (BFD_RELOC_MACH_O_SUBTRACTOR32, 0, 2, 32, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_SUBTRACTOR32, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "SUBTRACTOR32",
false, 0xffffffff, 0xffffffff, false),
/* 12 */
- HOWTO (BFD_RELOC_MACH_O_SUBTRACTOR64, 0, 4, 64, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_SUBTRACTOR64, 0, 8, 64, false, 0,
complain_overflow_bitfield,
NULL, "SUBTRACTOR64",
false, MINUS_ONE, MINUS_ONE, false),
- HOWTO (BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21, 12, 2, 21, true, 0,
+ HOWTO (BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21, 12, 4, 21, true, 0,
complain_overflow_signed,
NULL, "GOT_LD_PG21",
false, 0x1fffff, 0x1fffff, true),
- HOWTO (BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12, 1, 2, 12, true, 0,
+ HOWTO (BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12, 1, 4, 12, true, 0,
complain_overflow_signed,
NULL, "GOT_LD_PGOFF12",
false, 0xffe, 0xffe, true),
- HOWTO (BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT, 0, 2, 32, true, 0,
+ HOWTO (BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "PTR_TO_GOT",
false, 0xffffffff, 0xffffffff, true),
static reloc_howto_type arm_howto_table[]=
{
/* 0 */
- HOWTO (BFD_RELOC_32, 0, 2, 32, false, 0,
+ HOWTO (BFD_RELOC_32, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO (BFD_RELOC_16, 0, 1, 16, false, 0,
+ HOWTO (BFD_RELOC_16, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "16",
false, 0xffff, 0xffff, false),
- HOWTO (BFD_RELOC_8, 0, 0, 8, false, 0,
+ HOWTO (BFD_RELOC_8, 0, 1, 8, false, 0,
complain_overflow_bitfield,
NULL, "8",
false, 0xff, 0xff, false),
- HOWTO (BFD_RELOC_32_PCREL, 0, 2, 32, true, 0,
+ HOWTO (BFD_RELOC_32_PCREL, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "DISP32",
false, 0xffffffff, 0xffffffff, true),
/* 4 */
- HOWTO (BFD_RELOC_16_PCREL, 0, 1, 16, true, 0,
+ HOWTO (BFD_RELOC_16_PCREL, 0, 2, 16, true, 0,
complain_overflow_bitfield,
NULL, "DISP16",
false, 0xffff, 0xffff, true),
- HOWTO (BFD_RELOC_MACH_O_SECTDIFF, 0, 2, 32, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_SECTDIFF, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "SECTDIFF_32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO (BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 2, 32, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "LSECTDIFF_32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 2, 32, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "PAIR_32",
false, 0xffffffff, 0xffffffff, false),
/* 8 */
- HOWTO (BFD_RELOC_MACH_O_SECTDIFF, 0, 1, 16, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_SECTDIFF, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "SECTDIFF_16",
false, 0xffff, 0xffff, false),
- HOWTO (BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 1, 16, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "LSECTDIFF_16",
false, 0xffff, 0xffff, false),
- HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 1, 16, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "PAIR_16",
false, 0xffff, 0xffff, false),
- HOWTO (BFD_RELOC_ARM_PCREL_CALL, 2, 2, 24, true, 0,
+ HOWTO (BFD_RELOC_ARM_PCREL_CALL, 2, 4, 24, true, 0,
complain_overflow_signed,
NULL, "BR24",
false, 0x00ffffff, 0x00ffffff, true),
/* 12 */
- HOWTO (BFD_RELOC_ARM_MOVW, 0, 2, 16, false, 0,
+ HOWTO (BFD_RELOC_ARM_MOVW, 0, 4, 16, false, 0,
complain_overflow_dont,
NULL, "MOVW",
false, 0x000f0fff, 0x000f0fff, false),
- HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 2, 16, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 4, 16, false, 0,
complain_overflow_bitfield,
NULL, "PAIR_W",
false, 0x000f0fff, 0x000f0fff, false),
- HOWTO (BFD_RELOC_ARM_MOVT, 0, 2, 16, false, 0,
+ HOWTO (BFD_RELOC_ARM_MOVT, 0, 4, 16, false, 0,
complain_overflow_bitfield,
NULL, "MOVT",
false, 0x000f0fff, 0x000f0fff, false),
- HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 2, 16, false, 0,
+ HOWTO (BFD_RELOC_MACH_O_PAIR, 0, 4, 16, false, 0,
complain_overflow_bitfield,
NULL, "PAIR_T",
false, 0x000f0fff, 0x000f0fff, false),
/* 16 */
- HOWTO (BFD_RELOC_THUMB_PCREL_BLX, 2, 2, 24, true, 0,
+ HOWTO (BFD_RELOC_THUMB_PCREL_BLX, 2, 4, 24, true, 0,
complain_overflow_signed,
NULL, "TBR22",
false, 0x07ff2fff, 0x07ff2fff, true)
static reloc_howto_type i386_howto_table[]=
{
/* 0 */
- HOWTO(BFD_RELOC_32, 0, 2, 32, false, 0,
+ HOWTO(BFD_RELOC_32, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO(BFD_RELOC_16, 0, 1, 16, false, 0,
+ HOWTO(BFD_RELOC_16, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "16",
false, 0xffff, 0xffff, false),
- HOWTO(BFD_RELOC_8, 0, 0, 8, false, 0,
+ HOWTO(BFD_RELOC_8, 0, 1, 8, false, 0,
complain_overflow_bitfield,
NULL, "8",
false, 0xff, 0xff, false),
- HOWTO(BFD_RELOC_32_PCREL, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_32_PCREL, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "DISP32",
false, 0xffffffff, 0xffffffff, true),
/* 4 */
- HOWTO(BFD_RELOC_16_PCREL, 0, 1, 16, true, 0,
+ HOWTO(BFD_RELOC_16_PCREL, 0, 2, 16, true, 0,
complain_overflow_bitfield,
NULL, "DISP16",
false, 0xffff, 0xffff, true),
- HOWTO(BFD_RELOC_MACH_O_SECTDIFF, 0, 2, 32, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_SECTDIFF, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "SECTDIFF_32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO(BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 2, 32, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "LSECTDIFF_32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO(BFD_RELOC_MACH_O_PAIR, 0, 2, 32, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_PAIR, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "PAIR_32",
false, 0xffffffff, 0xffffffff, false),
/* 8 */
- HOWTO(BFD_RELOC_MACH_O_SECTDIFF, 0, 1, 16, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_SECTDIFF, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "SECTDIFF_16",
false, 0xffff, 0xffff, false),
- HOWTO(BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 1, 16, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_LOCAL_SECTDIFF, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "LSECTDIFF_16",
false, 0xffff, 0xffff, false),
- HOWTO(BFD_RELOC_MACH_O_PAIR, 0, 1, 16, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_PAIR, 0, 2, 16, false, 0,
complain_overflow_bitfield,
NULL, "PAIR_16",
false, 0xffff, 0xffff, false),
static reloc_howto_type x86_64_howto_table[]=
{
/* 0 */
- HOWTO(BFD_RELOC_64, 0, 4, 64, false, 0,
+ HOWTO(BFD_RELOC_64, 0, 8, 64, false, 0,
complain_overflow_bitfield,
NULL, "64",
false, MINUS_ONE, MINUS_ONE, false),
- HOWTO(BFD_RELOC_32, 0, 2, 32, false, 0,
+ HOWTO(BFD_RELOC_32, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO(BFD_RELOC_32_PCREL, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_32_PCREL, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "DISP32",
false, 0xffffffff, 0xffffffff, true),
- HOWTO(BFD_RELOC_MACH_O_X86_64_PCREL32_1, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_PCREL32_1, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "DISP32_1",
false, 0xffffffff, 0xffffffff, true),
/* 4 */
- HOWTO(BFD_RELOC_MACH_O_X86_64_PCREL32_2, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_PCREL32_2, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "DISP32_2",
false, 0xffffffff, 0xffffffff, true),
- HOWTO(BFD_RELOC_MACH_O_X86_64_PCREL32_4, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_PCREL32_4, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "DISP32_4",
false, 0xffffffff, 0xffffffff, true),
- HOWTO(BFD_RELOC_MACH_O_X86_64_BRANCH32, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_BRANCH32, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "BRANCH32",
false, 0xffffffff, 0xffffffff, true),
- HOWTO(BFD_RELOC_MACH_O_X86_64_GOT_LOAD, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_GOT_LOAD, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "GOT_LOAD",
false, 0xffffffff, 0xffffffff, true),
/* 8 */
- HOWTO(BFD_RELOC_MACH_O_SUBTRACTOR32, 0, 2, 32, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_SUBTRACTOR32, 0, 4, 32, false, 0,
complain_overflow_bitfield,
NULL, "SUBTRACTOR32",
false, 0xffffffff, 0xffffffff, false),
- HOWTO(BFD_RELOC_MACH_O_SUBTRACTOR64, 0, 4, 64, false, 0,
+ HOWTO(BFD_RELOC_MACH_O_SUBTRACTOR64, 0, 8, 64, false, 0,
complain_overflow_bitfield,
NULL, "SUBTRACTOR64",
false, MINUS_ONE, MINUS_ONE, false),
- HOWTO(BFD_RELOC_MACH_O_X86_64_GOT, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_GOT, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "GOT",
false, 0xffffffff, 0xffffffff, true),
- HOWTO(BFD_RELOC_MACH_O_X86_64_BRANCH8, 0, 0, 8, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_BRANCH8, 0, 1, 8, true, 0,
complain_overflow_bitfield,
NULL, "BRANCH8",
false, 0xff, 0xff, true),
/* 12 */
- HOWTO(BFD_RELOC_MACH_O_X86_64_TLV, 0, 2, 32, true, 0,
+ HOWTO(BFD_RELOC_MACH_O_X86_64_TLV, 0, 4, 32, true, 0,
complain_overflow_bitfield,
NULL, "TLV",
false, 0xffffffff, 0xffffffff, true),
reloc_howto_type howto_table_pdp11[] =
{
/* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone */
-HOWTO( 0, 0, 1, 16, false, 0, complain_overflow_signed,0,"16", true, 0x0000ffff,0x0000ffff, false),
-HOWTO( 1, 0, 1, 16, true, 0, complain_overflow_signed,0,"DISP16", true, 0x0000ffff,0x0000ffff, false),
-HOWTO( 2, 0, 2, 32, false, 0, complain_overflow_signed,0,"32", true, 0x0000ffff,0x0000ffff, false),
+HOWTO( 0, 0, 2, 16, false, 0, complain_overflow_signed,0,"16", true, 0x0000ffff,0x0000ffff, false),
+HOWTO( 1, 0, 2, 16, true, 0, complain_overflow_signed,0,"DISP16", true, 0x0000ffff,0x0000ffff, false),
+HOWTO( 2, 0, 4, 32, false, 0, complain_overflow_signed,0,"32", true, 0x0000ffff,0x0000ffff, false),
};
#define TABLE_SIZE(TABLE) (sizeof(TABLE)/sizeof(TABLE[0]))
The HOWTO macro fills in a reloc_howto_type (a typedef for
const struct reloc_howto_struct).
-.#define HOWTO_RSIZE(sz) (sz < 0 ? -sz : sz)
+.#define HOWTO_RSIZE(sz) (sz == 1 || sz == -1 ? 0 : sz == 2 || sz == -2 ? 1 : sz == 4 || sz == -4 ? 2 : sz == 0 ? 3 : sz == 8 || sz == -8 ? 4 : sz == 3 || sz == -3 ? 5 : 0x777)
.#define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name, \
. inplace, src_mask, dst_mask, pcrel_off) \
. { (unsigned) type, HOWTO_RSIZE (size), bits, right, left, ovf, \
This is used to fill in an empty howto entry in an array.
.#define EMPTY_HOWTO(C) \
-. HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \
+. HOWTO ((C), 0, 1, 0, false, 0, complain_overflow_dont, NULL, \
. NULL, false, 0, 0, false)
.
*/
}
static reloc_howto_type bfd_howto_32 =
-HOWTO (0, 00, 2, 32, false, 0, complain_overflow_dont, 0, "VRT32", false, 0xffffffff, 0xffffffff, true);
+HOWTO (0, 00, 4, 32, false, 0, complain_overflow_dont, 0, "VRT32", false, 0xffffffff, 0xffffffff, true);
/*
INTERNAL_FUNCTION
{
bfd_vma off;
static reloc_howto_type none_howto
- = HOWTO (0, 0, 3, 0, false, 0, complain_overflow_dont, NULL,
+ = HOWTO (0, 0, 0, 0, false, 0, complain_overflow_dont, NULL,
"unused", false, 0, 0, false);
off = ((*parent)->address
#endif
#define SOM_HOWTO(TYPE, NAME) \
- HOWTO(TYPE, 0, 0, 32, false, 0, 0, hppa_som_reloc, NAME, false, 0, 0, false)
+ HOWTO(TYPE, 0, 1, 32, false, 0, 0, hppa_som_reloc, NAME, false, 0, 0, false)
static reloc_howto_type som_hppa_howto_table[] =
{
{
HOWTO (ALPHA_R_IGNORE, /* Type. */
0, /* Rightshift. */
- 0, /* Size (0 = byte, 1 = short, 2 = long). */
+ 1, /* Size. */
8, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
/* A 64 bit reference to a symbol. */
HOWTO (ALPHA_R_REFQUAD, /* Type. */
0, /* Rightshift. */
- 4, /* Size (0 = byte, 1 = short, 2 = long). */
+ 8, /* Size. */
64, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
relative offset in the instruction. */
HOWTO (ALPHA_R_BRADDR, /* Type. */
2, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
21, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
/* A hint for a jump to a register. */
HOWTO (ALPHA_R_HINT, /* Type. */
2, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
14, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
/* 16 bit PC relative offset. */
HOWTO (ALPHA_R_SREL16, /* Type. */
0, /* Rightshift. */
- 1, /* Size (0 = byte, 1 = short, 2 = long). */
+ 2, /* Size. */
16, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
/* 32 bit PC relative offset. */
HOWTO (ALPHA_R_SREL32, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
/* A 64 bit PC relative offset. */
HOWTO (ALPHA_R_SREL64, /* Type. */
0, /* Rightshift. */
- 4, /* Size (0 = byte, 1 = short, 2 = long). */
+ 8, /* Size. */
64, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
/* Push a value on the reloc evaluation stack. */
HOWTO (ALPHA_R_OP_PUSH, /* Type. */
0, /* Rightshift. */
- 0, /* Size (0 = byte, 1 = short, 2 = long). */
+ 1, /* Size. */
0, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
a bitfield of size r_size starting at bit position r_offset. */
HOWTO (ALPHA_R_OP_STORE, /* Type. */
0, /* Rightshift. */
- 4, /* Size (0 = byte, 1 = short, 2 = long). */
+ 8, /* Size. */
64, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
relocation stack. */
HOWTO (ALPHA_R_OP_PSUB, /* Type. */
0, /* Rightshift. */
- 0, /* Size (0 = byte, 1 = short, 2 = long). */
+ 1, /* Size. */
0, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
given value. */
HOWTO (ALPHA_R_OP_PRSHIFT, /* Type. */
0, /* Rightshift. */
- 0, /* Size (0 = byte, 1 = short, 2 = long). */
+ 1, /* Size. */
0, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
/* Hack. Linkage is done by linker. */
HOWTO (ALPHA_R_LINKAGE, /* Type. */
0, /* Rightshift. */
- 0, /* Size (0 = byte, 1 = short, 2 = long). */
+ 1, /* Size. */
0, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
/* A 32 bit reference to a symbol. */
HOWTO (ALPHA_R_REFLONG, /* Type. */
0, /* Rightshift. */
- 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 4, /* Size. */
32, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
/* A 64 bit reference to a procedure, written as 32 bit value. */
HOWTO (ALPHA_R_CODEADDR, /* Type. */
0, /* Rightshift. */
- 4, /* Size (0 = byte, 1 = short, 2 = long). */
+ 8, /* Size. */
64, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
HOWTO (ALPHA_R_NOP, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
/* The following value must match that of ALPHA_R_BSR/ALPHA_R_BOH
because the calculations for the 3 relocations are the same.
HOWTO (ALPHA_R_BSR, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
HOWTO (ALPHA_R_LDA, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long). */
+ 0, /* Size. */
0, /* Bitsize. */
false, /* PC relative. */
0, /* Bitpos. */
HOWTO (ALPHA_R_BOH, /* Type. */
0, /* Rightshift. */
- 3, /* Size (0 = byte, 1 = short, 2 = long, 3 = nil). */
+ 0, /* Size. */
0, /* Bitsize. */
true, /* PC relative. */
0, /* Bitpos. */
ARC_RELOC_HOWTO(ARC_NONE, 0, \
- 2, \
+ 4, \
32, \
replace_none, \
bitfield, \
0)
ARC_RELOC_HOWTO(ARC_8, 1, \
- 0, \
+ 1, \
8, \
replace_bits8, \
bitfield, \
( S + A ))
ARC_RELOC_HOWTO(ARC_16, 2, \
- 1, \
+ 2, \
16, \
replace_bits16, \
bitfield, \
( S + A ))
ARC_RELOC_HOWTO(ARC_24, 3, \
- 2, \
+ 4, \
24, \
replace_bits24, \
bitfield, \
( S + A ))
ARC_RELOC_HOWTO(ARC_32, 4, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( S + A ))
ARC_RELOC_HOWTO(ARC_N8, 8, \
- 0, \
+ 1, \
8, \
replace_bits8, \
bitfield, \
( A - S ))
ARC_RELOC_HOWTO(ARC_N16, 9, \
- 1, \
+ 2, \
16, \
replace_bits16, \
bitfield, \
( A - S ))
ARC_RELOC_HOWTO(ARC_N24, 10, \
- 2, \
+ 4, \
24, \
replace_bits24, \
bitfield, \
( A - S ))
ARC_RELOC_HOWTO(ARC_N32, 11, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( A - S ))
ARC_RELOC_HOWTO(ARC_SDA, 12, \
- 2, \
+ 4, \
9, \
replace_disp9, \
bitfield, \
( ME ( ( ( S + A ) - _SDA_BASE_ ) ) ))
ARC_RELOC_HOWTO(ARC_SECTOFF, 13, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ( S - SECTSTART ) + A ))
ARC_RELOC_HOWTO(ARC_S21H_PCREL, 14, \
- 2, \
+ 4, \
20, \
replace_disp21h, \
signed, \
( ME ( ( ( ( S + A ) - P ) >> 1 ) ) ))
ARC_RELOC_HOWTO(ARC_S21W_PCREL, 15, \
- 2, \
+ 4, \
19, \
replace_disp21w, \
signed, \
( ME ( ( ( ( S + A ) - P ) >> 2 ) ) ))
ARC_RELOC_HOWTO(ARC_S25H_PCREL, 16, \
- 2, \
+ 4, \
24, \
replace_disp25h, \
signed, \
( ME ( ( ( ( S + A ) - P ) >> 1 ) ) ))
ARC_RELOC_HOWTO(ARC_S25W_PCREL, 17, \
- 2, \
+ 4, \
23, \
replace_disp25w, \
signed, \
( ME ( ( ( ( S + A ) - P ) >> 2 ) ) ))
ARC_RELOC_HOWTO(ARC_SDA32, 18, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ( ( S + A ) - _SDA_BASE_ ) ))
ARC_RELOC_HOWTO(ARC_SDA_LDST, 19, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
signed, \
( ME ( ( ( S + A ) - _SDA_BASE_ ) ) ))
ARC_RELOC_HOWTO(ARC_SDA_LDST1, 20, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
signed, \
( ME ( ( ( ( S + A ) - _SDA_BASE_ ) >> 1 ) ) ))
ARC_RELOC_HOWTO(ARC_SDA_LDST2, 21, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
signed, \
( ME ( ( ( ( S + A ) - _SDA_BASE_ ) >> 2 ) ) ))
ARC_RELOC_HOWTO(ARC_SDA16_LD, 22, \
- 1, \
+ 2, \
9, \
replace_disp9s, \
signed, \
( ( S + A ) - _SDA_BASE_ ))
ARC_RELOC_HOWTO(ARC_SDA16_LD1, 23, \
- 1, \
+ 2, \
9, \
replace_disp9s, \
signed, \
( ( ( S + A ) - _SDA_BASE_ ) >> 1 ))
ARC_RELOC_HOWTO(ARC_SDA16_LD2, 24, \
- 1, \
+ 2, \
9, \
replace_disp9s, \
signed, \
( ( ( S + A ) - _SDA_BASE_ ) >> 2 ))
ARC_RELOC_HOWTO(ARC_S13_PCREL, 25, \
- 1, \
+ 2, \
11, \
replace_disp13s, \
signed, \
( ( ( S + A ) - P ) >> 2 ))
ARC_RELOC_HOWTO(ARC_W, 26, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ( S + A ) & ( ~3 ) ))
ARC_RELOC_HOWTO(ARC_32_ME, 27, \
- 2, \
+ 4, \
32, \
replace_limm, \
signed, \
( ME ( ( S + A ) ) ))
ARC_RELOC_HOWTO(ARC_32_ME_S, 105, \
- 2, \
+ 4, \
32, \
replace_limms, \
signed, \
( ME ( ( S + A ) ) ))
ARC_RELOC_HOWTO(ARC_N32_ME, 28, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ME ( ( A - S ) ) ))
ARC_RELOC_HOWTO(ARC_SECTOFF_ME, 29, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ME ( ( ( S - SECTSTART ) + A ) ) ))
ARC_RELOC_HOWTO(ARC_SDA32_ME, 30, \
- 2, \
+ 4, \
32, \
replace_limm, \
signed, \
( ME ( ( ( S + A ) - _SDA_BASE_ ) ) ))
ARC_RELOC_HOWTO(ARC_W_ME, 31, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ME ( ( ( S + A ) & ( ~3 ) ) ) ))
ARC_RELOC_HOWTO(AC_SECTOFF_U8, 35, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
bitfield, \
( ME ( ( ( S + A ) - SECTSTART ) ) ))
ARC_RELOC_HOWTO(AC_SECTOFF_U8_1, 36, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
bitfield, \
( ME ( ( ( ( S + A ) - SECTSTART ) >> 1 ) ) ))
ARC_RELOC_HOWTO(AC_SECTOFF_U8_2, 37, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
bitfield, \
( ME ( ( ( ( S + A ) - SECTSTART ) >> 2 ) ) ))
ARC_RELOC_HOWTO(AC_SECTOFF_S9, 38, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
bitfield, \
( ME ( ( ( ( S + A ) - SECTSTART ) - 256 ) ) ))
ARC_RELOC_HOWTO(AC_SECTOFF_S9_1, 39, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
bitfield, \
( ME ( ( ( ( ( S + A ) - SECTSTART ) - 256 ) >> 1 ) ) ))
ARC_RELOC_HOWTO(AC_SECTOFF_S9_2, 40, \
- 2, \
+ 4, \
9, \
replace_disp9ls, \
bitfield, \
( ME ( ( ( ( ( S + A ) - SECTSTART ) - 256 ) >> 2 ) ) ))
ARC_RELOC_HOWTO(ARC_SECTOFF_ME_1, 41, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ME ( ( ( ( S - SECTSTART ) + A ) >> 1 ) ) ))
ARC_RELOC_HOWTO(ARC_SECTOFF_ME_2, 42, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ME ( ( ( ( S - SECTSTART ) + A ) >> 2 ) ) ))
ARC_RELOC_HOWTO(ARC_SECTOFF_1, 43, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ( ( S - SECTSTART ) + A ) >> 1 ))
ARC_RELOC_HOWTO(ARC_SECTOFF_2, 44, \
- 2, \
+ 4, \
32, \
replace_word32, \
bitfield, \
( ( ( S - SECTSTART ) + A ) >> 2 ))
ARC_RELOC_HOWTO(ARC_SDA_12, 45, \
- 2, \
+ 4, \
12, \
replace_disp12s, \
signed, \
( ME ( ( ( S + A ) - _SDA_BASE_ ) ) ))
ARC_RELOC_HOWTO(ARC_SDA16_ST2, 48, \
- 1, \
+ 2, \
9, \
replace_disp9s1, \
signed, \
( ( ( S + A ) - _SDA_BASE_ ) >> 2 ))
ARC_RELOC_HOWTO(ARC_32_PCREL, 49, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ( S + A ) - PDATA ))
ARC_RELOC_HOWTO(ARC_PC32, 50, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ME ( ( ( S + A ) - P ) ) ))
ARC_RELOC_HOWTO(ARC_GOT32, 59, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
( G + A ))
ARC_RELOC_HOWTO(ARC_GOTPC32, 51, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ME ( ( ( ( GOT + G ) + A ) - P ) ) ))
ARC_RELOC_HOWTO(ARC_PLT32, 52, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ME ( ( ( L + A ) - P ) ) ))
ARC_RELOC_HOWTO(ARC_COPY, 53, \
- 2, \
+ 4, \
0, \
replace_none, \
signed, \
none)
ARC_RELOC_HOWTO(ARC_GLOB_DAT, 54, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
S)
ARC_RELOC_HOWTO(ARC_JMP_SLOT, 55, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ME ( S ) ))
ARC_RELOC_HOWTO(ARC_RELATIVE, 56, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ME ( ( B + A ) ) ))
ARC_RELOC_HOWTO(ARC_GOTOFF, 57, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ME ( ( ( S + A ) - GOT ) ) ))
ARC_RELOC_HOWTO(ARC_GOTPC, 58, \
- 2, \
+ 4, \
32, \
replace_word32, \
signed, \
( ME ( ( GOT_BEGIN - P ) ) ))
ARC_RELOC_HOWTO(ARC_S21W_PCREL_PLT, 60, \
- 2, \
+ 4, \
19, \
replace_disp21w, \
signed, \
( ME ( ( ( ( L + A ) - P ) >> 2 ) ) ))
ARC_RELOC_HOWTO(ARC_S25H_PCREL_PLT, 61, \
- 2, \
+ 4, \
24, \
replace_disp25h, \
signed, \
( ME ( ( ( ( L + A ) - P ) >> 1 ) ) ))
ARC_RELOC_HOWTO(ARC_JLI_SECTOFF, 63, \
- 1, \
+ 2, \
10, \
replace_jli, \
bitfield, \
( ( S - JLI ) >> 2))
ARC_RELOC_HOWTO(ARC_TLS_DTPMOD, 66, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
0)
ARC_RELOC_HOWTO(ARC_TLS_TPOFF, 68, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
0)
ARC_RELOC_HOWTO(ARC_TLS_GD_GOT, 69, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
( ME ( ( ( G + GOT ) - P ) ) ))
ARC_RELOC_HOWTO(ARC_TLS_GD_LD, 70, \
- 2, \
+ 4, \
0, \
replace_none, \
dont, \
0)
ARC_RELOC_HOWTO(ARC_TLS_GD_CALL, 71, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
0)
ARC_RELOC_HOWTO(ARC_TLS_IE_GOT, 72, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
( ME ( ( ( G + GOT ) - P ) ) ))
ARC_RELOC_HOWTO(ARC_TLS_DTPOFF, 67, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
( ME ( S - FINAL_SECTSTART ) + A ))
ARC_RELOC_HOWTO(ARC_TLS_DTPOFF_S9, 73, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
( ME ( ( S - TLS_REL ) ) ))
ARC_RELOC_HOWTO(ARC_TLS_LE_S9, 74, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
( ME ( ( ( S + TCB_SIZE ) - TLS_REL ) ) ))
ARC_RELOC_HOWTO(ARC_TLS_LE_32, 75, \
- 2, \
+ 4, \
32, \
replace_word32, \
dont, \
( ME ( ( ( ( S + A ) + TLS_TBSS ) - TLS_REL ) ) ))
ARC_RELOC_HOWTO(ARC_S25W_PCREL_PLT, 76, \
- 2, \
+ 4, \
23, \
replace_disp25w, \
signed, \
( ME ( ( ( ( L + A ) - P ) >> 2 ) ) ))
ARC_RELOC_HOWTO(ARC_S21H_PCREL_PLT, 77, \
- 2, \
+ 4, \
20, \
replace_disp21h, \
signed, \
( ME ( ( ( ( L + A ) - P ) >> 1 ) ) ))
ARC_RELOC_HOWTO(ARC_NPS_CMEM16, 78, \
- 2, \
+ 4, \
16, \
replace_bits16, \
dont, \