s390 assembler improvements and testsuite
[deliverable/binutils-gdb.git] / gas / config / tc-mips.h
index 31654f7b9873000adb763a717f7c431d58adb208..1358cc87b0adeb3b4fb97e58b1eeea811a395d5c 100644 (file)
@@ -1,5 +1,6 @@
 /* tc-mips.h -- header file for tc-mips.c.
-   Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001
+   Free Software Foundation, Inc.
    Contributed by the OSF and Ralph Campbell.
    Written by Keith Knowles and Ralph Campbell, working independently.
    Modified for ECOFF support by Ian Lance Taylor of Cygnus Support.
 
 #define TC_MIPS
 
+#ifdef ANSI_PROTOTYPES
+struct frag;
+struct expressionS;
+#endif
+
+/* Default to big endian.  */
+#ifndef TARGET_BYTES_BIG_ENDIAN
+#define TARGET_BYTES_BIG_ENDIAN                1
+#endif
+
 #define TARGET_ARCH bfd_arch_mips
 
-#define ONLY_STANDARD_ESCAPES
 #define WORKING_DOT_WORD       1
 #define OLD_FLOAT_READS
 #define REPEAT_CONS_EXPRESSIONS
 #define MAX_RELOC_EXPANSION 3
 #define LOCAL_LABELS_FB 1
 
-/* We don't want to define LOCAL_LABELS_DOLLAR, because $0 is really a
-   reference to a register, not a label.  */
-#undef LOCAL_LABELS_DOLLAR
-#define LOCAL_LABELS_DOLLAR 0
-
 /* Maximum symbol offset that can be encoded in a BFD_RELOC_MIPS_GPREL
    relocation: */
-#define MAX_GPREL_OFFSET (0x7FF4)
-
-#define LOCAL_LABEL(name) mips_local_label (name)
-extern int mips_local_label PARAMS ((const char *));
+#define MAX_GPREL_OFFSET (0x7FF0)
 
-#define md_relax_frag(fragp, stretch) mips_relax_frag(fragp, stretch)
+#define md_relax_frag(segment, fragp, stretch) mips_relax_frag(fragp, stretch)
 extern int mips_relax_frag PARAMS ((struct frag *, long));
 
 #define md_undefined_symbol(name)      (0)
 #define md_operand(x)
 
+extern void mips_handle_align PARAMS ((struct frag *));
+#define HANDLE_ALIGN(fragp)  mips_handle_align (fragp)
+
+#define MAX_MEM_FOR_RS_ALIGN_CODE  (1 + 2)
+
 /* We permit PC relative difference expressions when generating
    embedded PIC code.  */
 #define DIFF_EXPR_OK
 
-#define LITTLE_ENDIAN   1234
-#define BIG_ENDIAN      4321
-
-/* Default to big endian.  */
-#ifndef TARGET_BYTES_LITTLE_ENDIAN
-#undef  TARGET_BYTES_BIG_ENDIAN
-#define TARGET_BYTES_BIG_ENDIAN                1
-#endif
+/* Tell assembler that we have an itbl_mips.h header file to include.  */
+#define HAVE_ITBL_CPU
 
 /* The endianness of the target format may change based on command
    line arguments.  */
 #define TARGET_FORMAT mips_target_format()
-extern const char *mips_target_format ();
+extern const char *mips_target_format PARAMS ((void));
 
 struct mips_cl_insn
 {
@@ -82,31 +83,33 @@ struct mips_cl_insn
 
 extern int tc_get_register PARAMS ((int frame));
 
+#define tc_init_after_args() mips_init_after_args()
+extern void mips_init_after_args PARAMS ((void));
+
 #define md_parse_long_option(arg) mips_parse_long_option (arg)
 extern int mips_parse_long_option PARAMS ((const char *));
 
 #define tc_frob_label(sym) mips_define_label (sym)
-extern void mips_define_label PARAMS ((struct symbol *));
+extern void mips_define_label PARAMS ((symbolS *));
+
+#define tc_frob_file_before_adjust() mips_frob_file_before_adjust ()
+extern void mips_frob_file_before_adjust PARAMS ((void));
 
 #define tc_frob_file() mips_frob_file ()
 extern void mips_frob_file PARAMS ((void));
 
-#ifdef OBJ_ELF
+#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
 #define tc_frob_file_after_relocs mips_frob_file_after_relocs
 extern void mips_frob_file_after_relocs PARAMS ((void));
 #endif
 
-#define TC_CONS_FIX_NEW cons_fix_new_mips
-extern void cons_fix_new_mips ();
-
-/* Don't adjust MIPS16 jump relocations to section addresses, so we
-   don't have to worry about the format of the offset in the .o file.  */
-#define tc_fix_adjustable(fixp) ((fixp)->fx_r_type != BFD_RELOC_MIPS16_JMP)
+#define tc_fix_adjustable(fixp) mips_fix_adjustable (fixp)
+extern int mips_fix_adjustable PARAMS ((struct fix *));
 
 /* When generating embedded PIC code we must keep PC relative
    relocations.  */
 #define TC_FORCE_RELOCATION(fixp) mips_force_relocation (fixp)
-extern int mips_force_relocation ();
+extern int mips_force_relocation PARAMS ((struct fix *));
 
 /* md_apply_fix sets fx_done correctly.  */
 #define TC_HANDLE_FX_DONE 1
@@ -116,7 +119,7 @@ extern int mips_force_relocation ();
 extern unsigned long mips_gprmask;
 extern unsigned long mips_cprmask[4];
 
-#ifdef OBJ_ELF
+#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
 
 #define elf_tc_final_processing mips_elf_final_processing
 extern void mips_elf_final_processing PARAMS ((void));
@@ -137,6 +140,7 @@ extern void md_mips_end PARAMS ((void));
 #define md_end()       md_mips_end()
 
 #define USE_GLOBAL_POINTER_OPT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \
+                                || OUTPUT_FLAVOR == bfd_target_coff_flavour \
                                 || OUTPUT_FLAVOR == bfd_target_elf_flavour)
 
 extern void mips_pop_insert PARAMS ((void));
@@ -148,7 +152,4 @@ extern void mips_flush_pending_output PARAMS ((void));
 extern void mips_enable_auto_align PARAMS ((void));
 #define md_elf_section_change_hook()   mips_enable_auto_align()
 
-extern void mips_init_after_args PARAMS ((void));
-#define tc_init_after_args mips_init_after_args
-
 #endif /* TC_MIPS */
This page took 0.033533 seconds and 4 git commands to generate.