]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - bfd/elf32-rl78.c
HOWTO size encoding
[thirdparty/binutils-gdb.git] / bfd / elf32-rl78.c
index 6c1b2d7aa7b233cbe93454db582e47918fd7c71b..958bff05615547d8937e8b2ffeeb142cce4b9921 100644 (file)
@@ -44,25 +44,25 @@ static bfd_reloc_status_type rl78_special_reloc (bfd *, arelent *, asymbol *, vo
 
 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),
@@ -92,9 +92,9 @@ static reloc_howto_type rl78_elf_howto_table [] =
   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),
@@ -114,23 +114,23 @@ static reloc_howto_type rl78_elf_howto_table [] =
   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)
 
@@ -182,29 +182,29 @@ static reloc_howto_type rl78_elf_howto_table [] =
   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.  */