Apply Nick Clifton's suggestion.
[deliverable/binutils-gdb.git] / gas / config / tc-hppa.h
index c1541d9373fc16108af7bd5413047d190e6f5b04..1ea9daa3d4582bf2f23dbf9baf42c6d42f116bd0 100644 (file)
@@ -1,5 +1,6 @@
 /* tc-hppa.h -- Header file for the PA
-   Copyright (C) 1989, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1989, 93, 94, 95, 96, 97, 98, 99, 2000
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
 
 #define WORKING_DOT_WORD
 
-/* FIXME.  The lack of a place to put things which are both target cpu
-   and target format dependent makes hacks like this necessary.  */
 #ifdef OBJ_ELF
+#if TARGET_ARCH_SIZE == 64
+#include "bfd/elf64-hppa.h"
+#define TARGET_FORMAT "elf64-hppa"
+#else
 #include "bfd/elf32-hppa.h"
 #define TARGET_FORMAT "elf32-hppa"
 #endif
+#endif
 
 #ifdef OBJ_SOM
 #include "bfd/som.h"
 #define TARGET_FORMAT "som"
 #endif
 
+#ifdef TE_LINUX
+/* Define to compile in an extra assembler option, -c, which enables a
+   warning (once per file) when a comment is encountered.
+   The hppa comment char is a `;' which tends to occur in random C asm
+   statements.  A semicolon is a line separator for most assemblers.
+   It's hard to find these lurking semicolons.  Thus...  */
+#define WARN_COMMENTS 1
+#endif
+
 /* FIXME.  Why oh why aren't these defined somewhere globally?  */
 #ifndef FALSE
 #define FALSE   (0)
 
 #define ASEC_NULL (asection *)0
 
-/* Labels are not required to have a colon for a suffix.  */
-#define LABELS_WITHOUT_COLONS
+/* pa_define_label gets used outside of tc-hppa.c via tc_frob_label.  */
+extern void pa_define_label PARAMS ((symbolS *));
 
-/* FIXME.  This should be static and declared in tc-hppa.c, but 
-   pa_define_label gets used outside of tc-hppa.c via tc_frob_label.
-   Should also be PARAMized, but symbolS isn't available here.  */
-extern void pa_define_label ();
-
-/* FIXME.  Types not available here, so they can't be PARAMized.  */
-extern void parse_cons_expression_hppa ();
-extern void cons_fix_new_hppa ();
-extern int hppa_force_relocation ();
+extern void parse_cons_expression_hppa PARAMS ((expressionS *));
+extern void cons_fix_new_hppa PARAMS ((fragS *, int, int, expressionS *));
+extern int hppa_force_relocation PARAMS ((struct fix *));
 
 /* This gets called before writing the object file to make sure
    things like entry/exit and proc/procend pairs match.  */
@@ -97,6 +104,7 @@ extern void pa_check_eof PARAMS ((void));
 #ifdef OBJ_ELF
 #define elf_tc_final_processing        elf_hppa_final_processing
 void elf_hppa_final_processing PARAMS ((void));
+void pa_end_of_source PARAMS ((void));
 #endif
 
 /* The PA needs to parse field selectors in .byte, etc.  */
@@ -116,6 +124,7 @@ void elf_hppa_final_processing PARAMS ((void));
    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
 
 /* Because of the strange PA calling conventions, it is sometimes
@@ -128,9 +137,9 @@ void elf_hppa_final_processing PARAMS ((void));
    *not* end up in the symbol table.  Likewise for absolute symbols
    with local scope.  */
 #define tc_frob_symbol(sym,punt) \
-    if ((S_GET_SEGMENT (sym) == &bfd_und_section && sym->sy_used == 0) \
+    if ((S_GET_SEGMENT (sym) == &bfd_und_section && ! symbol_used_p (sym)) \
        || (S_GET_SEGMENT (sym) == &bfd_abs_section \
-           && (sym->bsym->flags & BSF_EXPORT) == 0)) \
+           && ! S_IS_EXTERNAL (sym))) \
       punt = 1
 
 /* We need to be able to make relocations involving the difference of
@@ -147,14 +156,18 @@ void elf_hppa_final_processing PARAMS ((void));
 #ifdef OBJ_ELF
 #define tc_frob_symbol(sym,punt) \
   { \
-    if ((S_GET_SEGMENT (sym) == &bfd_und_section && sym->sy_used == 0) \
+    if ((S_GET_SEGMENT (sym) == &bfd_und_section && ! symbol_used_p (sym)) \
        || (S_GET_SEGMENT (sym) == &bfd_abs_section \
-           && (sym->bsym->flags & BSF_EXPORT) == 0)) \
+           && ! S_IS_EXTERNAL (sym)) \
+       || strcmp (S_GET_NAME (sym), "$global$") == 0) \
       punt = 1; \
   }
 #endif
 
 #define md_operand(x)
+#ifdef OBJ_ELF
+#define md_end() pa_end_of_source ()
+#endif
 
 #define TC_FIX_TYPE PTR
 #define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL)
This page took 0.024231 seconds and 4 git commands to generate.