S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate.
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 16 Jan 2019 13:34:50 +0000 (14:34 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 16 Jan 2019 13:39:04 +0000 (14:39 +0100)
commitd5dcaf1b59e77047e10a1f246095d6b21f7d9772
treef0849cbdc103770465bd83bf4905515b0191b270
parent338c923d26fa86f695fcdc4b659a5f0772768093
S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate.

When assembling instructions which involve OPR references, emit
RELOC_S12Z_OPR instead of RELOC_EXT24.

bfd/
* bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
* libbfd.h: regen.
* elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
source field.  (md_apply_fix): Apply final fix
to BFD_RELOC_S12Z_OPR.
* reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.

gas/
* config/tc-s12z.c (emit_opr): Emit BFD_RELOC_S12Z_OPR instead of
BFD_RELOC_24.
* testsuite/gas/s12z/opr-indirect-expr.d: Expect R_S12Z_OPR instead
of R_S12Z_EXT24.
bfd/ChangeLog
bfd/bfd-in2.h
bfd/elf32-s12z.c
bfd/libbfd.h
bfd/reloc.c
gas/ChangeLog
gas/config/tc-s12z.c
gas/testsuite/gas/s12z/opr-indirect-expr.d