Add binutils support for v850e1 processor
[deliverable/binutils-gdb.git] / gas / config / tc-h8300.h
index 07c34f902c4feb4d9642d527b78e0bb47832f1e2..7bce0a32ff23da50c590a805cb0c087949bad212 100644 (file)
@@ -1,6 +1,7 @@
 /* This file is tc-h8300.h
 /* This file is tc-h8300.h
-
-   Copyright (C) 1987-1992 Free Software Foundation, Inc.
+   Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+   1997, 1998, 2000, 2002, 2003
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
 
    This file is part of GAS, the GNU Assembler.
 
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    GNU General Public License for more details.
 
    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, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
+   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.  */
 
 #define TC_H8300
 
 
 #define TC_H8300
 
-/* This macro translates between an internal fix and an coff reloc type */
-#define TC_COFF_FIX2RTYPE(fixP) abort();
+#define TARGET_BYTES_BIG_ENDIAN 1
+
+#define TARGET_ARCH bfd_arch_h8300
+
+#ifdef BFD_ASSEMBLER
+/* Fixup debug sections since we will never relax them.  */
+#define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_ALLOC)
+#endif
+#ifdef OBJ_ELF
+#define TARGET_FORMAT "elf32-h8300"
+#define LOCAL_LABEL_PREFIX '.'
+#define LOCAL_LABEL(NAME) (NAME[0] == '.' && NAME[1] == 'L')
+#define FAKE_LABEL_NAME ".L0\001"
+#endif
+
+#if ANSI_PROTOTYPES
+struct fix;
+struct internal_reloc;
+#endif
+
+#define WORKING_DOT_WORD
+
+/* This macro translates between an internal fix and a coff reloc type.  */
+#define TC_COFF_FIX2RTYPE(fixP) abort ();
 
 #define BFD_ARCH bfd_arch_h8300
 
 #define BFD_ARCH bfd_arch_h8300
-#define COFF_MAGIC Hmode ? 0x8301 : 0x8300
+#define COFF_MAGIC ( Smode && Nmode ? 0x8304 : Hmode && Nmode ? 0x8303 : Smode ? 0x8302 : Hmode ? 0x8301 : 0x8300)
 #define TC_COUNT_RELOC(x) (1)
 #define IGNORE_NONSTANDARD_ESCAPES
 
 #define tc_coff_symbol_emit_hook(a) ; /* not used */
 #define TC_COUNT_RELOC(x) (1)
 #define IGNORE_NONSTANDARD_ESCAPES
 
 #define tc_coff_symbol_emit_hook(a) ; /* not used */
-#define TC_RELOC_MANGLE(a,b,c) tc_reloc_mangle(a,b,c)
+#define TC_RELOC_MANGLE(s,a,b,c) tc_reloc_mangle(a,b,c)
+extern void tc_reloc_mangle
+  PARAMS ((struct fix *, struct internal_reloc *, bfd_vma));
+
+/* No shared lib support, so we don't need to ensure externally
+   visible symbols can be overridden.  */
+#define EXTERN_FORCE_RELOC 0
+
+/* Minimum instruction is of 16 bits.  */
+#define DWARF2_LINE_MIN_INSN_LENGTH 2
+
+#ifdef OBJ_ELF
+/* Provide mappings from the original H8 COFF relocation names to
+   their corresponding BFD relocation names.  This allows us to use
+   most of tc-h8300.c without modifications for both ELF and COFF
+   ports.  */
+#define R_MOV24B1 BFD_RELOC_H8_DIR24A8
+#define R_MOVL1 BFD_RELOC_H8_DIR32A16
+#define R_MOV24B1 BFD_RELOC_H8_DIR24A8
+#define R_MOVL1 BFD_RELOC_H8_DIR32A16
+#define R_RELLONG BFD_RELOC_32
+#define R_MOV16B1 BFD_RELOC_H8_DIR16A8
+#define R_RELWORD BFD_RELOC_16
+#define R_RELBYTE BFD_RELOC_8
+#define R_PCRWORD BFD_RELOC_16_PCREL
+#define R_PCRBYTE BFD_RELOC_8_PCREL
+#define R_JMPL1 BFD_RELOC_H8_DIR24R8
+#define R_MEM_INDIRECT BFD_RELOC_8
+
+/* We do not want to adjust any relocations to make implementation of
+   linker relaxations easier.  */
+#define tc_fix_adjustable(FIX) 0
+#endif
+
 #define TC_CONS_RELOC          (Hmode ? R_RELLONG: R_RELWORD)
 
 #define DO_NOT_STRIP 0
 #define TC_CONS_RELOC          (Hmode ? R_RELLONG: R_RELWORD)
 
 #define DO_NOT_STRIP 0
-#define DO_STRIP 0
-#define LISTING_HEADER "Hitachi H8/300 GAS "
+#define LISTING_HEADER "Renesas H8/300 GAS "
 #define NEED_FX_R_TYPE 1
 #define NEED_FX_R_TYPE 1
+#ifndef OBJ_ELF
 #define RELOC_32 1234
 #define RELOC_32 1234
+#endif
 
 extern int Hmode;
 
 extern int Hmode;
+extern int Smode;
+extern int Nmode;
+extern int SXmode;
 
 
-/* end of tc-h8300.h */
+#define md_operand(x)
This page took 0.024008 seconds and 4 git commands to generate.