diff options
author | Sergey Belyashov <sergey.belyashov@gmail.com> | 2020-01-02 14:10:40 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2020-01-02 14:14:59 +0000 |
commit | 6655dba246bd164d953fe220a0e3d4eed85bb268 (patch) | |
tree | 423258b5dadb447dc649e71c6ce48aaeed8ba385 /gas/config/tc-z80.h | |
parent | 0db131fb835e4c4f6a024e86743467e7e01c965e (diff) | |
download | binutils-gdb-6655dba246bd164d953fe220a0e3d4eed85bb268.tar.gz |
Add support for the GBZ80, Z180, and eZ80 variants of the Z80 architecure. Add an ELF based target for these as well.
PR 25224
bfd * Makefile.am: Add z80-elf target support.
* configure.ac: Likewise.
* targets.c: Likewise.
* config.bfd: Add z80-elf target support and new arches: ez80 and z180.
* elf32-z80.c: New file.
* archures.c: Add new z80 architectures: eZ80 and Z180.
* coffcode.h: Likewise.
* cpu-z80.c: Likewise.
* bfd-in2.h: Likewise plus additional Z80 relocations.
* coff-z80.c: Add new relocations for Z80 target and local label check.
gas * config/tc-z80.c: Add new architectures: Z180 and eZ80. Add support
for assembler code generated by SDCC. Add new relocation types. Add
z80-elf target support.
* config/tc-z80.h: Add z80-elf target support. Enable dollar local
labels. Local labels starts from ".L".
* testsuite/gas/all/fwdexp.d: Fix failure due to symbol conflict.
* testsuite/gas/all/fwdexp.s: Likewise.
* testsuite/gas/z80/suffix.d: Fix failure on ELF target.
* testsuite/gas/z80/z80.exp: Add new tests
* testsuite/gas/z80/dollar.d: New file.
* testsuite/gas/z80/dollar.s: New file.
* testsuite/gas/z80/ez80_adl_all.d: New file.
* testsuite/gas/z80/ez80_adl_all.s: New file.
* testsuite/gas/z80/ez80_adl_suf.d: New file.
* testsuite/gas/z80/ez80_isuf.s: New file.
* testsuite/gas/z80/ez80_z80_all.d: New file.
* testsuite/gas/z80/ez80_z80_all.s: New file.
* testsuite/gas/z80/ez80_z80_suf.d: New file.
* testsuite/gas/z80/r800_extra.d: New file.
* testsuite/gas/z80/r800_extra.s: New file.
* testsuite/gas/z80/r800_ii8.d: New file.
* testsuite/gas/z80/r800_z80_doc.d: New file.
* testsuite/gas/z80/z180.d: New file.
* testsuite/gas/z80/z180.s: New file.
* testsuite/gas/z80/z180_z80_doc.d: New file.
* testsuite/gas/z80/z80_doc.d: New file.
* testsuite/gas/z80/z80_doc.s: New file.
* testsuite/gas/z80/z80_ii8.d: New file.
* testsuite/gas/z80/z80_ii8.s: New file.
* testsuite/gas/z80/z80_in_f_c.d: New file.
* testsuite/gas/z80/z80_in_f_c.s: New file.
* testsuite/gas/z80/z80_op_ii_ld.d: New file.
* testsuite/gas/z80/z80_op_ii_ld.s: New file.
* testsuite/gas/z80/z80_out_c_0.d: New file.
* testsuite/gas/z80/z80_out_c_0.s: New file.
* testsuite/gas/z80/z80_reloc.d: New file.
* testsuite/gas/z80/z80_reloc.s: New file.
* testsuite/gas/z80/z80_sli.d: New file.
* testsuite/gas/z80/z80_sli.s: New file.
ld * Makefile.am: Add new target z80-elf
* configure.tgt: Likewise.
* emultempl/z80.em: Add support for eZ80 and Z180 architectures.
* emulparams/elf32z80.sh: New file.
* emultempl/z80elf.em: Likewise.
* testsuite/ld-z80/arch_ez80_adl.d: Likewise.
* testsuite/ld-z80/arch_ez80_z80.d: Likewise.
* testsuite/ld-z80/arch_r800.d: Likewise.
* testsuite/ld-z80/arch_z180.d: Likewise.
* testsuite/ld-z80/arch_z80.d: Likewise.
* testsuite/ld-z80/comb_arch_ez80_z80.d: Likewise.
* testsuite/ld-z80/comb_arch_z180.d: Likewise.
* testsuite/ld-z80/labels.s: Likewise.
* testsuite/ld-z80/relocs.s: Likewise.
* testsuite/ld-z80/relocs_b_ez80.d: Likewise.
* testsuite/ld-z80/relocs_b_z80.d: Likewise.
* testsuite/ld-z80/relocs_f_z80.d: Likewise.
* testsuite/ld-z80/z80.exp: Likewise.
opcodes * z80-dis.c: Add support for eZ80 and Z80 instructions.
Diffstat (limited to 'gas/config/tc-z80.h')
-rw-r--r-- | gas/config/tc-z80.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gas/config/tc-z80.h b/gas/config/tc-z80.h index 83b09af707b..57490270913 100644 --- a/gas/config/tc-z80.h +++ b/gas/config/tc-z80.h @@ -24,6 +24,9 @@ #define TC_Z80 #define TARGET_ARCH bfd_arch_z80 +#ifndef OBJ_COFF +#define TARGET_FORMAT "elf32-z80" +#endif #define BFD_ARCH TARGET_ARCH #define COFF_MAGIC 0x5A80 #define TARGET_MACH 0 @@ -76,7 +79,7 @@ extern void z80_cons_fix_new (fragS *, int, int, expressionS *); /* Values passed to md_apply_fix3 don't include the symbol value. */ #define MD_APPLY_SYM_VALUE(FIX) 0 -#define LISTING_WORD_SIZE 2 +#define LISTING_WORD_SIZE 1 /* A single '=' is accepted as a comparison operator. */ #define O_SINGLE_EQ O_eq @@ -84,14 +87,15 @@ extern void z80_cons_fix_new (fragS *, int, int, expressionS *); /* A '$' is used to refer to the current location or as a hex. prefix. */ #define DOLLAR_DOT #define DOLLAR_AMBIGU 1 +#define LOCAL_LABEL_PREFIX '.' #define LOCAL_LABELS_FB 1 +#define LOCAL_LABELS_DOLLAR 1 #define LITERAL_PREFIXPERCENT_BIN #define NUMBERS_WITH_SUFFIX 1 #define NO_PSEUDO_DOT 1 /* We allow single quotes to delimit character constants as well, but it is cleaner to handle that in tc-z80.c. */ #define SINGLE_QUOTE_STRINGS -#define NO_STRING_ESCAPES /* An `.lcomm' directive with no explicit alignment parameter will use this macro to set P2VAR to the alignment that a request for @@ -106,4 +110,10 @@ extern void z80_cons_fix_new (fragS *, int, int, expressionS *); we use to identify registers. */ #define md_register_arithmetic 0 +#define TC_LABEL_IS_LOCAL z80_tc_label_is_local +extern int z80_tc_label_is_local (const char *name); + +#define elf_tc_final_processing z80_elf_final_processing +extern void z80_elf_final_processing (void); + #endif |