diff options
author | Nick Clifton <nickc@redhat.com> | 2015-06-30 11:25:18 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-06-30 11:25:18 +0100 |
commit | 54f66250d79ec304ea427915bfd8b535ec249c3b (patch) | |
tree | d9911abb7db95ebca361a100e30bf5af9389bcd5 /bfd | |
parent | 7b9be803fed8f500b512d5685773c84fffcdf63f (diff) | |
download | gdb-54f66250d79ec304ea427915bfd8b535ec249c3b.zip gdb-54f66250d79ec304ea427915bfd8b535ec249c3b.tar.gz gdb-54f66250d79ec304ea427915bfd8b535ec249c3b.tar.bz2 |
Add support for SADDR addressing to the RL78 port.
gas * config/rl78-parse.y: Tag all saddr expressions throughout.
(SET_SA): New.
(expr_is_saddr): Allow symbolic expressions.
* config/tc-rl78.c (md_apply_fix): Handle SADDR.
bfd * elf32-rl78.c (rl78_elf_howto_table): Add RH_SADDR.
(rl78_reloc_map): Add R_RL78_RH_SADDR.
* reloc.c: Add BFD_RELOC_RL78_SADDR.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/bfd-in2.h | 1 | ||||
-rw-r--r-- | bfd/elf32-rl78.c | 3 | ||||
-rw-r--r-- | bfd/libbfd.h | 1 | ||||
-rw-r--r-- | bfd/reloc.c | 2 |
4 files changed, 6 insertions, 1 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 35e9d77..ce964bb 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -4584,6 +4584,7 @@ number for the SBIC, SBIS, SBI and CBI instructions */ BFD_RELOC_RL78_HI8, BFD_RELOC_RL78_LO16, BFD_RELOC_RL78_CODE, + BFD_RELOC_RL78_SADDR, /* Renesas RX Relocations. */ BFD_RELOC_RX_NEG8, diff --git a/bfd/elf32-rl78.c b/bfd/elf32-rl78.c index ff3af7b..add3336 100644 --- a/bfd/elf32-rl78.c +++ b/bfd/elf32-rl78.c @@ -95,7 +95,7 @@ static reloc_howto_type rl78_elf_howto_table [] = RL78REL (RH_RELAX, 0, 0, 0, dont, FALSE), EMPTY_HOWTO (0x2e), - EMPTY_HOWTO (0x2f), + RL78REL (RH_SADDR, 0, 0, 0, dont, FALSE), EMPTY_HOWTO (0x30), EMPTY_HOWTO (0x31), EMPTY_HOWTO (0x32), @@ -242,6 +242,7 @@ static const struct rl78_reloc_map rl78_reloc_map [] = { BFD_RELOC_RL78_ABS16UL, R_RL78_ABS16UL }, { BFD_RELOC_RL78_ABS16UW, R_RL78_ABS16UW }, { BFD_RELOC_RL78_ABS16U, R_RL78_ABS16U }, + { BFD_RELOC_RL78_SADDR, R_RL78_RH_SADDR }, { BFD_RELOC_RL78_RELAX, R_RL78_RH_RELAX } }; diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 711f08f..cc19552 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -2114,6 +2114,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_RL78_HI8", "BFD_RELOC_RL78_LO16", "BFD_RELOC_RL78_CODE", + "BFD_RELOC_RL78_SADDR", "BFD_RELOC_RX_NEG8", "BFD_RELOC_RX_NEG16", "BFD_RELOC_RX_NEG24", diff --git a/bfd/reloc.c b/bfd/reloc.c index d312e48..9a06878 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -4956,6 +4956,8 @@ ENUMX BFD_RELOC_RL78_LO16 ENUMX BFD_RELOC_RL78_CODE +ENUMX + BFD_RELOC_RL78_SADDR ENUMDOC Renesas RL78 Relocations. |