PR20744, Incorrect PowerPC VLE relocs
[deliverable/binutils-gdb.git] / gas / config / tc-m68k.h
index 7f4659276e09bb4cb982d54082366dc258957b4d..30ca2cb35e0b00048c52bda0dc04ae0cdef5cc3a 100644 (file)
@@ -1,13 +1,11 @@
 /* This file is tc-m68k.h
 /* This file is tc-m68k.h
-   Copyright 1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-   1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1987-2016 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
 
    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,
    any later version.
 
    GAS is distributed in the hope that it will be useful,
@@ -61,34 +59,11 @@ struct fix;
 #ifndef COFF_MAGIC
 #define COFF_MAGIC MC68MAGIC
 #endif
 #ifndef COFF_MAGIC
 #define COFF_MAGIC MC68MAGIC
 #endif
-#define BFD_ARCH bfd_arch_m68k /* for non-BFD_ASSEMBLER */
-#define TARGET_ARCH bfd_arch_m68k /* BFD_ASSEMBLER */
-#define COFF_FLAGS F_AR32W
-#define TC_COUNT_RELOC(x) ((x)->fx_addsy||(x)->fx_subsy)
-
-#define TC_COFF_FIX2RTYPE(FIX) tc_coff_fix2rtype(FIX)
-#define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep(frag)
-extern int tc_coff_sizemachdep (struct frag *);
-#ifdef TE_SUN3
-/* This variable contains the value to write out at the beginning of
-   the a.out file.  The 2<<16 means that this is a 68020 file instead
-   of an old-style 68000 file */
-
-#define DEFAULT_MAGIC_NUMBER_FOR_OBJECT_FILE (2<<16|OMAGIC);   /* Magic byte for file header */
-#endif /* TE_SUN3 */
-
-#ifndef AOUT_MACHTYPE
-#define AOUT_MACHTYPE m68k_aout_machtype
-extern int m68k_aout_machtype;
-#endif
+#define TARGET_ARCH bfd_arch_m68k
 
 #define tc_comment_chars m68k_comment_chars
 extern const char *m68k_comment_chars;
 
 
 #define tc_comment_chars m68k_comment_chars
 extern const char *m68k_comment_chars;
 
-#define tc_crawl_symbol_chain(a)       {;}     /* not used */
-#define tc_headers_hook(a)             {;}     /* not used */
-#define tc_aout_pre_write_hook(x)      {;}     /* not used */
-
 #define LISTING_WORD_SIZE 2    /* A word is 2 bytes */
 #define LISTING_LHS_WIDTH 2    /* One word on the first line */
 #define LISTING_LHS_WIDTH_SECOND 2     /* One word on the second line */
 #define LISTING_WORD_SIZE 2    /* A word is 2 bytes */
 #define LISTING_LHS_WIDTH 2    /* One word on the first line */
 #define LISTING_LHS_WIDTH_SECOND 2     /* One word on the second line */
@@ -101,10 +76,6 @@ extern const char *m68k_comment_chars;
 
 #if !defined (REGISTER_PREFIX_OPTIONAL)
 #if defined (M68KCOFF) || defined (OBJ_ELF)
 
 #if !defined (REGISTER_PREFIX_OPTIONAL)
 #if defined (M68KCOFF) || defined (OBJ_ELF)
-#ifndef BFD_ASSEMBLER
-#define LOCAL_LABEL(name) (name[0] == '.' \
-                          && (name[1] == 'L' || name[1] == '.'))
-#endif /* ! BFD_ASSEMBLER */
 #define REGISTER_PREFIX_OPTIONAL 0
 #else /* ! (COFF || ELF) */
 #define REGISTER_PREFIX_OPTIONAL 1
 #define REGISTER_PREFIX_OPTIONAL 0
 #else /* ! (COFF || ELF) */
 #define REGISTER_PREFIX_OPTIONAL 1
@@ -120,11 +91,6 @@ extern const char *m68k_comment_chars;
 #define tc_canonicalize_symbol_name(s) ((*(s) == '~' ? *(s) = '.' : '.'), s)
 /* On the Delta, dots are not required before pseudo-ops.  */
 #define NO_PSEUDO_DOT 1
 #define tc_canonicalize_symbol_name(s) ((*(s) == '~' ? *(s) = '.' : '.'), s)
 /* On the Delta, dots are not required before pseudo-ops.  */
 #define NO_PSEUDO_DOT 1
-#ifndef BFD_ASSEMBLER
-#undef LOCAL_LABEL
-#define LOCAL_LABEL(name) \
-  (name[0] == '.' || (name[0] == 'L' && name[1] == '%'))
-#endif
 #endif
 
 extern void m68k_mri_mode_change (int);
 #endif
 
 extern void m68k_mri_mode_change (int);
@@ -141,8 +107,6 @@ extern void m68k_flush_pending_output (void);
 
 extern void m68k_frob_symbol (symbolS *);
 
 
 extern void m68k_frob_symbol (symbolS *);
 
-#ifdef BFD_ASSEMBLER
-
 #define tc_frob_symbol(sym,punt)                               \
 do                                                             \
   {                                                            \
 #define tc_frob_symbol(sym,punt)                               \
 do                                                             \
   {                                                            \
@@ -177,25 +141,8 @@ extern int tc_m68k_fix_adjustable (struct fix *);
 extern void m68k_elf_final_processing (void);
 #endif
 
 extern void m68k_elf_final_processing (void);
 #endif
 
-#else /* ! BFD_ASSEMBLER */
-
-#define tc_frob_coff_symbol(sym) m68k_frob_symbol (sym)
-
-#define NO_RELOC          0
-#define RELAX_RELOC_ABS8  0
-#define RELAX_RELOC_ABS16 0
-#define RELAX_RELOC_ABS32 0
-#define RELAX_RELOC_PC8   0
-#define RELAX_RELOC_PC16  0
-#define RELAX_RELOC_PC32  0
-
-#endif /* ! BFD_ASSEMBLER */
-
 #define DIFF_EXPR_OK
 
 #define DIFF_EXPR_OK
 
-extern void m68k_init_after_args (void);
-#define tc_init_after_args m68k_init_after_args
-
 extern int m68k_parse_long_option (char *);
 #define md_parse_long_option m68k_parse_long_option
 
 extern int m68k_parse_long_option (char *);
 #define md_parse_long_option m68k_parse_long_option
 
@@ -229,3 +176,19 @@ extern int tc_m68k_regname_to_dw2regnum (const char *regname);
 
 #define tc_cfi_frame_initial_instructions tc_m68k_frame_initial_instructions
 extern void tc_m68k_frame_initial_instructions (void);
 
 #define tc_cfi_frame_initial_instructions tc_m68k_frame_initial_instructions
 extern void tc_m68k_frame_initial_instructions (void);
+
+#ifdef TE_UCLINUX
+/* elf2flt does not honor PT_LOAD's from the executable.
+   .text and .eh_frame sections will not end up in the same segment and so
+   we cannot use PC-relative encoding for CFI.  */
+# define CFI_DIFF_EXPR_OK 0
+
+/* However, follow compiler's guidance when it specifies encoding for LSDA.  */
+# define CFI_DIFF_LSDA_OK 1
+#endif
+
+struct broken_word;
+#define TC_CHECK_ADJUSTED_BROKEN_DOT_WORD(new_offset, brokw) \
+  tc_m68k_check_adjusted_broken_word ((offsetT) (new_offset), (brokw))
+extern void tc_m68k_check_adjusted_broken_word (offsetT,
+                                               struct broken_word *);
This page took 0.037745 seconds and 4 git commands to generate.