]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/config/tc-mcore.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / config / tc-mcore.h
index b0a29abff0b578790ec94d1cfe061893c6a69fb6..b759aa3581fe6b481fd6102fd940166982906a78 100644 (file)
@@ -1,12 +1,12 @@
 /* This file is tc-mcore.h
 
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1999-2021 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
    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,
 
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to the
-   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 #ifndef        TC_MCORE
 #define TC_MCORE 1
 
-#ifndef BFD_ASSEMBLER
- #error MCORE support requires BFD_ASSEMBLER
-#endif
-
 #define TARGET_ARCH    bfd_arch_mcore
 /* Used to initialise target_big_endian.  */
 #define TARGET_BYTES_BIG_ENDIAN 0
 
-/* Don't write out relocs for pcrel stuff.  */
-#define TC_COUNT_RELOC(x) (((x)->fx_addsy || (x)->fx_subsy) && \
-                          (x)->fx_r_type < BFD_RELOC_MCORE_PCREL_IMM8BY4)
-
 #define IGNORE_NONSTANDARD_ESCAPES
 
-#define TC_RELOC_MANGLE(a,b,c) tc_reloc_mangle (a, b, c)
-
 /* Some pseudo-op semantic extensions.  */
 #define        PSEUDO_LCOMM_OPTIONAL_ALIGN
 
-#define LISTING_HEADER         "M.CORE GAS Version 2.9.4"
+#define LISTING_HEADER         "M.CORE GAS"
 #define LISTING_LHS_CONT_LINES 4
 
-#define NEED_FX_R_TYPE 1
-#define COFF_FLAGS     1
-
 /* We want local label support.  */
 #define LOCAL_LABELS_FB 1
-     
-#define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep (frag)
-  
+
 extern const struct relax_type md_relax_table[];
 #define TC_GENERIC_RELAX_TABLE md_relax_table
 #define md_end md_mcore_end
 
-/* Want the section information too... */
-#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
-
-#define MD_APPLY_FIX3  /* We want the segment as well.  */
-
-
+/* Want the section information too...  */
+#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
 
 #ifdef  OBJ_COFF
 
@@ -75,28 +56,27 @@ struct mcore_tc_sy
 #define TC_SYMFIELD_TYPE struct mcore_tc_sy
 
 # if defined TE_PE
-#  define TC_FORCE_RELOCATION(x) ((x)->fx_r_type == BFD_RELOC_RVA)
+#  define TC_FORCE_RELOCATION(x) \
+     ((x)->fx_r_type == BFD_RELOC_RVA || generic_force_reloc (x))
 # endif
 
 #endif /* OBJ_COFF */
 
-
 #ifdef OBJ_ELF
 
 #define TARGET_FORMAT (target_big_endian ? "elf32-mcore-big" : "elf32-mcore-little")
 
-#define ELF_TC_SPECIAL_SECTIONS \
-  { ".ctors",  SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE }, \
-  { ".dtors",  SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE }, \
-/* Other special sections not generated by the assembler: .reginfo,
-   .liblist, .conflict, .gptab, .got, .dynamic, .rel.dyn.  */
+/* No shared lib support, so we don't need to ensure externally
+   visible symbols can be overridden.  */
+#define EXTERN_FORCE_RELOC 0
 
 /* When relaxing, we need to emit various relocs we otherwise wouldn't.  */
 #define TC_FORCE_RELOCATION(fix) mcore_force_relocation (fix)
-extern int mcore_force_relocation PARAMS ((struct fix *));
 
-#define obj_fix_adjustable(fixP) mcore_fix_adjustable (fixP)
-extern boolean mcore_fix_adjustable PARAMS ((struct fix *));
+#define tc_fix_adjustable(FIX) mcore_fix_adjustable (FIX)
+
+/* Values passed to md_apply_fix don't include the symbol value.  */
+#define MD_APPLY_SYM_VALUE(FIX) 0
 
 #endif /* OBJ_ELF */
 
@@ -105,25 +85,10 @@ extern boolean mcore_fix_adjustable PARAMS ((struct fix *));
 #endif
 
 #include "write.h"        /* For definition of fixS */
-  
-extern void      md_begin            PARAMS ((void));
-extern void      md_assemble         PARAMS ((char *));
-extern symbolS * md_undefined_symbol PARAMS ((char *));
-extern void      md_mcore_end        PARAMS ((void));
-extern char *    md_atof             PARAMS ((int, char *, int *));
-extern int       md_parse_option     PARAMS ((int, char *));
-extern void      md_show_usage       PARAMS ((FILE *));
-extern void      md_create_short_jump 
-  PARAMS ((char *, addressT, addressT, fragS *, symbolS *));
-extern void      md_create_long_jump
-  PARAMS ((char *, addressT, addressT, fragS *, symbolS *));
-extern void      md_convert_frag               PARAMS ((bfd *, segT, fragS *));
-extern int       md_apply_fix3                 PARAMS ((fixS *, valueT *, segT));
-extern void      md_operand                    PARAMS ((expressionS *));
-extern int       md_estimate_size_before_relax PARAMS ((fragS *, segT));
-extern void      md_number_to_chars            PARAMS ((char *, valueT, int));
-extern valueT    md_section_align              PARAMS ((segT, valueT));
-extern long      md_pcrel_from_section         PARAMS ((fixS *, segT));
-extern arelent * tc_gen_reloc                  PARAMS ((asection *, fixS *));
+
+extern void        md_mcore_end           (void);
+extern arelent *   tc_gen_reloc           (asection *, fixS *);
+extern int         mcore_force_relocation (fixS *);
+extern bfd_boolean mcore_fix_adjustable   (fixS *);
 
 #endif /* TC_MCORE */