Use macros for TUI window names
[deliverable/binutils-gdb.git] / gas / config / tc-z80.h
index 0ae318af57590a639f5a4902cda77c1971f3481e..7fd7c9e352373d052ac2922fab5f876e13b25778 100644 (file)
@@ -1,5 +1,5 @@
 /* this is tc-z80.h
 /* this is tc-z80.h
-   Copyright 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2020 Free Software Foundation, Inc.
 
    Contributed by Arnold Metselaar <arnold_m@operamail.com>
 
 
    Contributed by Arnold Metselaar <arnold_m@operamail.com>
 
@@ -7,7 +7,7 @@
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of .the GNU General Public License as published by
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of .the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    GAS is distributed in the hope that it will be useful,
    any later version.
 
    GAS is distributed in the hope that it will be useful,
 #define TC_Z80
 
 #define TARGET_ARCH   bfd_arch_z80
 #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 BFD_ARCH      TARGET_ARCH
 #define COFF_MAGIC    0x5A80
-#define TARGET_MACH   0
 #define TARGET_BYTES_BIG_ENDIAN  0
 
 /* If you define this macro, GAS will warn about the
 #define TARGET_BYTES_BIG_ENDIAN  0
 
 /* If you define this macro, GAS will warn about the
 /* Define some functions to be called by generic code.  */
 #define md_end               z80_md_end
 #define md_start_line_hook() { if (z80_start_line_hook ()) continue; }
 /* Define some functions to be called by generic code.  */
 #define md_end               z80_md_end
 #define md_start_line_hook() { if (z80_start_line_hook ()) continue; }
-#define md_optimize_expr     z80_optimize_expr
-#define TC_CONS_FIX_NEW z80_cons_fix_new
+#define TC_CONS_FIX_NEW(f,w,s,e,r)  z80_cons_fix_new ((f), (w), (s), (e))
 
 extern void z80_md_end (void);
 extern int z80_start_line_hook (void);
 
 extern void z80_md_end (void);
 extern int z80_start_line_hook (void);
-extern int z80_optimize_expr (expressionS *, operatorT, expressionS *);
 extern void z80_cons_fix_new (fragS *, int, int, expressionS *);
 
 #define WORKING_DOT_WORD
 extern void z80_cons_fix_new (fragS *, int, int, expressionS *);
 
 #define WORKING_DOT_WORD
@@ -78,7 +78,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
 
 /* 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
 
 /* A single '=' is accepted as a comparison operator.  */
 #define O_SINGLE_EQ O_eq
@@ -86,14 +86,18 @@ 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
 /* 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_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 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
+
+#define LABELS_WITHOUT_COLONS (z80_tc_labels_without_colon())
+extern int z80_tc_labels_without_colon (void);
 
 /* An `.lcomm' directive with no explicit alignment parameter will
    use this macro to set P2VAR to the alignment that a request for
 
 /* An `.lcomm' directive with no explicit alignment parameter will
    use this macro to set P2VAR to the alignment that a request for
@@ -104,4 +108,34 @@ extern void z80_cons_fix_new (fragS *, int, int, expressionS *);
    P2VAR to the truncated power of two of sizes up to eight bytes.  */
 #define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) (P2VAR) = 0
 
    P2VAR to the truncated power of two of sizes up to eight bytes.  */
 #define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) (P2VAR) = 0
 
+/* It does not make any sense to perform arithmetic on the numbers
+   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);
+
+/* Define the column that represents the PC.  */
+#define DWARF2_DEFAULT_RETURN_COLUMN   5
+
+/* The stack grows down, and is only byte aligned.  */
+#define DWARF2_CIE_DATA_ALIGNMENT      -1
+
+/* Z80 instructions are 1 or 4 bytes long.  */
+#define DWARF2_LINE_MIN_INSN_LENGTH    1
+
+/* 16 bits addresses are used on Z80.  */
+#define DWARF2_ADDR_SIZE(bfd)          z80_dwarf2_addr_size(bfd)
+extern int z80_dwarf2_addr_size (const bfd *abfd);
+
+/* CFI hooks.  */
+#define tc_cfi_frame_initial_instructions z80_tc_frame_initial_instructions
+extern void z80_tc_frame_initial_instructions (void);
+
+#define tc_regname_to_dw2regnum z80_tc_regname_to_dw2regnum
+extern int z80_tc_regname_to_dw2regnum (const char *regname);
+
 #endif
 #endif
This page took 0.024841 seconds and 4 git commands to generate.