* config/bfin-defs.h (bfin_equals): Remove declaration.
[binutils-gdb.git] / gas / config / tc-hppa.h
index bacd09c284c33939f2017660c7f19c04b9710119..9b3edc1878f5c5e47fc635b689a599521984bd91 100644 (file)
@@ -1,6 +1,6 @@
 /* tc-hppa.h -- Header file for the PA
-   Copyright 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001
-   Free Software Foundation, Inc.
+   Copyright 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002,
+   2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -16,8 +16,8 @@
 
    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.  */
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 /* HP PA-RISC support was contributed by the Center for Software Science
    at the University of Utah.  */
 #ifdef OBJ_ELF
 #if TARGET_ARCH_SIZE == 64
 #include "bfd/elf64-hppa.h"
-#ifdef TE_LINUX
+#if defined (TE_LINUX) || defined (TE_NetBSD)
 #define TARGET_FORMAT "elf64-hppa-linux"
 #else
 #define TARGET_FORMAT "elf64-hppa"
 #endif
 #else /* TARGET_ARCH_SIZE == 32 */
 #include "bfd/elf32-hppa.h"
-#ifdef TE_LINUX
+#if defined (TE_LINUX)
 #define TARGET_FORMAT "elf32-hppa-linux"
 #else
+#if defined (TE_NetBSD)
+#define TARGET_FORMAT "elf32-hppa-netbsd"
+#else
 #define TARGET_FORMAT "elf32-hppa"
 #endif
 #endif
 #endif
+#endif
 
 #ifdef OBJ_SOM
 #include "bfd/som.h"
@@ -99,9 +103,8 @@ extern void pa_check_eof PARAMS ((void));
 
 #define tc_frob_label(sym) pa_define_label (sym)
 
-/* The PA does not need support for either of these.  */
-#define tc_crawl_symbol_chain(headers) {;}
-#define tc_headers_hook(headers) {;}
+extern const char      hppa_symbol_chars[];
+#define tc_symbol_chars        hppa_symbol_chars
 
 #define RELOC_EXPANSION_POSSIBLE
 #define MAX_RELOC_EXPANSION 6
@@ -112,24 +115,23 @@ extern void pa_check_eof PARAMS ((void));
   parse_cons_expression_hppa (EXP)
 #define TC_CONS_FIX_NEW cons_fix_new_hppa
 
-/* On the PA, an equal sign often appears as a condition or nullification
-   completer in an instruction.  This can be detected by checking the
-   previous character, if the character is a comma, then the equal is
-   being used as part of an instruction.  */
-#define TC_EQUAL_IN_INSN(C, PTR)       ((C) == ',')
-
-/* Similarly for an exclamation point.  It is used in FP comparison
-   instructions and as an end of line marker.  When used in an instruction
-   it will always follow a comma.  */
+/* On the PA, an exclamation point can appear in an instruction.  It is
+   used in FP comparison instructions and as an end of line marker.
+   When used in an instruction it will always follow a comma.  */
 #define TC_EOL_IN_INSN(PTR)    (*(PTR) == '!' && (PTR)[-1] == ',')
 
 int hppa_fix_adjustable PARAMS((struct fix *));
 #define tc_fix_adjustable hppa_fix_adjustable
 
+#define EXTERN_FORCE_RELOC 1
+
 /* Because of the strange PA calling conventions, it is sometimes
    necessary to emit a relocation for a call even though it would
    normally appear safe to handle it completely within GAS.  */
-#define TC_FORCE_RELOCATION(FIXP) hppa_force_relocation (FIXP)
+#define TC_FORCE_RELOCATION(FIX) hppa_force_relocation (FIX)
+
+/* Values passed to md_apply_fix don't include the symbol value.  */
+#define MD_APPLY_SYM_VALUE(FIX) 0
 
 #ifdef OBJ_SOM
 /* If a symbol is imported, but never used, then the symbol should
@@ -153,9 +155,7 @@ int hppa_fix_adjustable PARAMS((struct fix *));
 #endif
 
 #ifdef OBJ_ELF
-/* It's OK to subtract two symbols in the same section without
-   emitting a relocation.  */
-#define TC_FORCE_RELOCATION_SECTION(FIXP, SEC) 0
+#define DIFF_EXPR_OK 1
 
 /* Handle .type psuedo.  Given a type string of `millicode', set the
    internal elf symbol type to STT_PARISC_MILLI, and return
@@ -170,7 +170,8 @@ int hppa_fix_adjustable PARAMS((struct fix *));
 
 #define tc_frob_symbol(sym,punt) \
   { \
-    if ((S_GET_SEGMENT (sym) == &bfd_und_section && ! symbol_used_p (sym)) \
+    if ((S_GET_SEGMENT (sym) == &bfd_und_section && ! symbol_used_p (sym) && \
+        ELF_ST_VISIBILITY (S_GET_OTHER (sym)) == STV_DEFAULT) \
        || (S_GET_SEGMENT (sym) == &bfd_abs_section \
            && ! S_IS_EXTERNAL (sym)) \
        || strcmp (S_GET_NAME (sym), "$global$") == 0 \
@@ -194,6 +195,6 @@ int hppa_force_reg_syms_absolute
   PARAMS ((expressionS *, operatorT, expressionS *));
 
 #define TC_FIX_TYPE PTR
-#define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL)
+#define TC_INIT_FIX_DATA(FIX) ((FIX)->tc_fix_data = NULL)
 
 #endif /* _TC_HPPA_H */