From 9fc0b501af78bc4a92f53ec712e1aaa123e0224c Mon Sep 17 00:00:00 2001 From: Sergey Belyashov Date: Fri, 7 Feb 2020 14:53:46 +0000 Subject: Add support for the GBZ80 and Z80N variants of the Z80 architecture, and add DWARF debug info support to the Z80 assembler. PR 25469 bfd * archures.c: Add GBZ80 and Z80N machine values. * reloc.c: Add BFD_RELOC_Z80_16_BE. * coff-z80.c: Add support for new reloc. * coffcode.h: Add support for new machine values. * cpu-z80.c: Add support for new machine names. * elf32-z80.c: Add support for new reloc. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. binutils* readelf.c (get_machine_flags): Add support for Z80N machine number. gas * config/tc-z80.c: Add -gbz80 command line option to generate code for the GameBoy Z80. Add support for generating DWARF. * config/tc-z80.h: Add support for DWARF debug information generation. * doc/c-z80.texi: Document new command line option. * testsuite/gas/z80/gbz80_all.d: New file. * testsuite/gas/z80/gbz80_all.s: New file. * testsuite/gas/z80/z80.exp: Run the new tests. * testsuite/gas/z80/z80n_all.d: New file. * testsuite/gas/z80/z80n_all.s: New file. * testsuite/gas/z80/z80n_reloc.d: New file. include * coff/internal.h (R_IMM16BE): Define. * elf/z80.h (EF_Z80_MACH_Z80N): Define. (R_Z80_16_BE): New reloc. ld * emulparams/elf32z80.sh: Use z80 emulation. * emultempl/z80.em: Make generic to both COFF and ELF Z80 emulations. * emultempl/z80elf.em: Delete. * testsuite/ld-elf/pr22450.d: Expect to fail for the Z80. * testsuite/ld-elf/sec64k.exp: Fix Z80 assembly. * testsuite/ld-unique/pr21529.s: Avoid register name conflict. * testsuite/ld-unique/unique.s: Likewise. * testsuite/ld-unique/unique_empty.s: Likewise. * testsuite/ld-unique/unique_shared.s: Likewise. * testsuite/ld-unique/unique.d: Updated expected output. * testsuite/ld-z80/arch_z80n.d: New file. * testsuite/ld-z80/comb_arch_z80_z80n.d: New file. * testsuite/ld-z80/labels.s: Add more labels. * testsuite/ld-z80/relocs.s: Add more reloc tests. * testsuite/ld-z80/relocs_f_z80n.d: New file opcodes * z80-dis.c: Add support for GBZ80 opcodes. --- include/ChangeLog | 7 +++++++ include/coff/internal.h | 1 + include/elf/z80.h | 2 ++ 3 files changed, 10 insertions(+) (limited to 'include') diff --git a/include/ChangeLog b/include/ChangeLog index 1a37078..6facd28 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,10 @@ +2020-02-07 Sergey Belyashov + + PR 25469 + * coff/internal.h (R_IMM16BE): Define. + * elf/z80.h (EF_Z80_MACH_Z80N): Define. + (R_Z80_16_BE): New reloc. + 2020-02-04 Alan Modra * opcode/d30v.h (struct pd_reg): Make value field unsigned. diff --git a/include/coff/internal.h b/include/coff/internal.h index cbeb016..86fe070 100644 --- a/include/coff/internal.h +++ b/include/coff/internal.h @@ -812,6 +812,7 @@ struct internal_reloc /* Z80 modes */ #define R_OFF8 0x32 /* 8 bit signed abs, for (i[xy]+d) */ #define R_IMM24 0x33 /* 24 bit abs */ +#define R_IMM16BE 0x3A /* 16 bit abs, big endian */ /* R_JR, R_IMM8, R_IMM16, R_IMM32 - as for Z8k */ #define R_BYTE0 0x34 /* first (lowest) 8 bits of multibyte value */ #define R_BYTE1 0x35 /* second 8 bits of multibyte value */ diff --git a/include/elf/z80.h b/include/elf/z80.h index a7f72c9..9b5e86f 100644 --- a/include/elf/z80.h +++ b/include/elf/z80.h @@ -30,6 +30,7 @@ #define EF_Z80_MACH_EZ80_Z80 0x04 #define EF_Z80_MACH_EZ80_ADL 0x84 #define EF_Z80_MACH_GBZ80 0x05 +#define EF_Z80_MACH_Z80N 0x06 #define EF_Z80_MACH_MSK 0xff /* Relocations. */ @@ -47,6 +48,7 @@ START_RELOC_NUMBERS (elf_z80_reloc_type) RELOC_NUMBER (R_Z80_BYTE3, 10) RELOC_NUMBER (R_Z80_WORD0, 11) RELOC_NUMBER (R_Z80_WORD1, 12) + RELOC_NUMBER (R_Z80_16_BE, 13) END_RELOC_NUMBERS (R_Z80_max) #endif /* _ELF_Z80_H */ -- cgit v1.1