Back to index

cell-binutils  2.17cvs20070401
tc-fr30.h
Go to the documentation of this file.
00001 /* tc-fr30.h -- Header file for tc-fr30.c.
00002    Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2005
00003    Free Software Foundation, Inc.
00004 
00005    This file is part of GAS, the GNU Assembler.
00006 
00007    GAS is free software; you can redistribute it and/or modify
00008    it under the terms of the GNU General Public License as published by
00009    the Free Software Foundation; either version 2, or (at your option)
00010    any later version.
00011 
00012    GAS is distributed in the hope that it will be useful,
00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015    GNU General Public License for more details.
00016 
00017    You should have received a copy of the GNU General Public License
00018    along with GAS; see the file COPYING.  If not, write to
00019    the Free Software Foundation, 51 Franklin Street - Fifth Floor,
00020    Boston, MA 02110-1301, USA.  */
00021 
00022 #define TC_FR30
00023 
00024 #define LISTING_HEADER "FR30 GAS "
00025 
00026 /* The target BFD architecture.  */
00027 #define TARGET_ARCH bfd_arch_fr30
00028 
00029 #define TARGET_FORMAT "elf32-fr30"
00030 
00031 #define TARGET_BYTES_BIG_ENDIAN 1
00032 
00033 /* Permit temporary numeric labels.  */
00034 #define LOCAL_LABELS_FB 1
00035 
00036 #define DIFF_EXPR_OK        /* .-foo gets turned into PC relative relocs.  */
00037 
00038 /* We don't need to handle .word strangely.  */
00039 #define WORKING_DOT_WORD
00040 
00041 /* Values passed to md_apply_fix don't include the symbol value.  */
00042 #define MD_APPLY_SYM_VALUE(FIX) 0
00043 
00044 #define md_apply_fix gas_cgen_md_apply_fix
00045 
00046 #define tc_fix_adjustable(FIX) fr30_fix_adjustable (FIX)
00047 struct fix;
00048 extern bfd_boolean fr30_fix_adjustable (struct fix *);
00049 
00050 #define tc_gen_reloc gas_cgen_tc_gen_reloc
00051 
00052 /* Call md_pcrel_from_section(), not md_pcrel_from().  */
00053 #define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
00054 extern long md_pcrel_from_section (struct fix *, segT);
00055 
00056 /* For 8 vs 16 vs 32 bit branch selection.  */
00057 #define TC_GENERIC_RELAX_TABLE md_relax_table
00058 extern const struct relax_type md_relax_table[];
00059 
00060 /* We need a special version of the TC_START_LABEL macro so that we
00061    allow the LDI:8, LDI:20, LDI:32 and delay slot instructions to be
00062    parsed as such.  Note - in a HORRIBLE HACK, we make use of the
00063    knowledge that this marco is only ever evaluated in one place
00064    (read_a_source_file in read.c) where we can access the local
00065    variable 's' - the start of the symbol that was terminated by
00066    'character'.  Also we need to be able to change the contents of
00067    the local variable 'c' which is passed to this macro as 'character'.  */
00068 #define TC_START_LABEL(character, i_l_p)                \
00069   ((character) != ':' ? 0 : (character = fr30_is_colon_insn (s)) ? 0 : ((character = ':'), 1))
00070 extern char fr30_is_colon_insn (char *);