Back to index

cell-binutils  2.17cvs20070401
tc-h8300.h
Go to the documentation of this file.
00001 /* This file is tc-h8300.h
00002    Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
00003    1997, 1998, 2000, 2001, 2002, 2003, 2005
00004    Free Software Foundation, Inc.
00005 
00006    This file is part of GAS, the GNU Assembler.
00007 
00008    GAS is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU General Public License as published by
00010    the Free Software Foundation; either version 2, or (at your option)
00011    any later version.
00012 
00013    GAS is distributed in the hope that it will be useful,
00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016    GNU General Public License for more details.
00017 
00018    You should have received a copy of the GNU General Public License
00019    along with GAS; see the file COPYING.  If not, write to the Free
00020    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
00021    02110-1301, USA.  */
00022 
00023 #define TC_H8300
00024 
00025 #define TARGET_BYTES_BIG_ENDIAN 1
00026 
00027 #define TARGET_ARCH bfd_arch_h8300
00028 
00029 /* Fixup debug sections since we will never relax them.  */
00030 #define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_ALLOC)
00031 #ifdef OBJ_ELF
00032 #define TARGET_FORMAT "elf32-h8300"
00033 #define LOCAL_LABEL_PREFIX '.'
00034 #define LOCAL_LABEL(NAME) (NAME[0] == '.' && NAME[1] == 'L')
00035 #define FAKE_LABEL_NAME ".L0\001"
00036 #endif
00037 
00038 struct fix;
00039 struct internal_reloc;
00040 
00041 #define WORKING_DOT_WORD
00042 
00043 #define COFF_MAGIC ( Smode && Nmode ? 0x8304 : Hmode && Nmode ? 0x8303 : Smode ? 0x8302 : Hmode ? 0x8301 : 0x8300)
00044 #define IGNORE_NONSTANDARD_ESCAPES
00045 
00046 #define tc_coff_symbol_emit_hook(a) ; /* not used */
00047 
00048 /* No shared lib support, so we don't need to ensure externally
00049    visible symbols can be overridden.  */
00050 #define EXTERN_FORCE_RELOC 0
00051 
00052 /* Minimum instruction is of 16 bits.  */
00053 #define DWARF2_LINE_MIN_INSN_LENGTH 2
00054 
00055 #ifdef OBJ_ELF
00056 /* Provide mappings from the original H8 COFF relocation names to
00057    their corresponding BFD relocation names.  This allows us to use
00058    most of tc-h8300.c without modifications for both ELF and COFF
00059    ports.  */
00060 #define R_MOV24B1 BFD_RELOC_H8_DIR24A8
00061 #define R_MOVL1 BFD_RELOC_H8_DIR32A16
00062 #define R_MOV24B1 BFD_RELOC_H8_DIR24A8
00063 #define R_MOVL1 BFD_RELOC_H8_DIR32A16
00064 #define R_RELLONG BFD_RELOC_32
00065 #define R_MOV16B1 BFD_RELOC_H8_DIR16A8
00066 #define R_RELWORD BFD_RELOC_16
00067 #define R_RELBYTE BFD_RELOC_8
00068 #define R_PCRWORD BFD_RELOC_16_PCREL
00069 #define R_PCRBYTE BFD_RELOC_8_PCREL
00070 #define R_JMPL1 BFD_RELOC_H8_DIR24R8
00071 #define R_MEM_INDIRECT BFD_RELOC_8
00072 
00073 /* We do not want to adjust any relocations to make implementation of
00074    linker relaxations easier.  */
00075 #define tc_fix_adjustable(FIX) 0
00076 #endif
00077 
00078 #define LISTING_HEADER "Renesas H8/300 GAS "
00079 #ifndef OBJ_ELF
00080 #define RELOC_32 1234
00081 #endif
00082 
00083 extern int Hmode;
00084 extern int Smode;
00085 extern int Nmode;
00086 extern int SXmode;
00087 
00088 #define md_operand(x)
00089 
00090 /* This target is buggy, and sets fix size too large.  */
00091 #define TC_FX_SIZE_SLACK(FIX) 1