1 /* tc-bfin.h - header file for tc-bfin.c 2 Copyright 2005 3 Free Software Foundation, Inc. 4 5 This file is part of GAS, the GNU Assembler. 6 7 GAS is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2, or (at your option) 10 any later version. 11 12 GAS is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with GAS; see the file COPYING. If not, write to the Free 19 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 20 02110-1301, USA. */ 21 22 #define TC_BFIN 1 23 #define TC_ADI_BFIN 1 24 25 #define TARGET_BYTES_BIG_ENDIAN 0 26 27 #define TARGET_ARCH bfd_arch_bfin 28 29 /* 30 * Define the target format macro here. The value for this should be 31 * "elf32-bfin", not "elf32-little-bfin". Since the BFD source file 32 * elf32-bfin.c defines TARGET_LITTLE_NAME to be "elf32-little-bfin", 33 * we must use this value, until this is corrected and BFD is rebuilt. */ 34 #ifdef OBJ_ELF 35 #define TARGET_FORMAT "elf32-bfin" 36 #endif 37 38 #define LISTING_HEADER "BFIN GAS " 39 40 #define WORKING_DOT_WORD 41 42 extern void bfin_start_line_hook PARAMS ((void)); 43 extern bfd_boolean bfin_start_label PARAMS ((char *)); 44 45 #define md_start_line_hook() bfin_start_line_hook() 46 #define md_number_to_chars number_to_chars_littleendian 47 #define md_convert_frag(b,s,f) as_fatal ("bfin convert_frag\n"); 48 49 /* Allow for [, ], etc. */ 50 #define LEX_BR 6 51 52 #define TC_EOL_IN_INSN(PTR) (bfin_eol_in_insn(PTR) ? 1 : 0) 53 extern bfd_boolean bfin_eol_in_insn PARAMS ((char *)); 54 55 /* The instruction is permitted to contain an = character. */ 56 #define TC_EQUAL_IN_INSN(C, NAME) (bfin_name_is_register (NAME) ? 1 : 0) 57 extern bfd_boolean bfin_name_is_register PARAMS ((char *)); 58 #define NOP_OPCODE 0x0000 59 60 #define LOCAL_LABELS_FB 1 61 62 #define DOUBLESLASH_LINE_COMMENTS 63 64 #define TC_START_LABEL(ch ,ptr) (ch == ':' && bfin_start_label (ptr)) 65 #define tc_fix_adjustable(FIX) bfin_fix_adjustable (FIX) 66 extern bfd_boolean bfin_fix_adjustable PARAMS ((struct fix *)); 67 68 #define TC_FORCE_RELOCATION(FIX) bfin_force_relocation (FIX) 69 extern int bfin_force_relocation PARAMS ((struct fix *)); 70 71 /* Call md_pcrel_from_section(), not md_pcrel_from(). */ 72 #define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) 73 extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); 74 75 /* Values passed to md_apply_fix3 don't include symbol values. */ 76 #define MD_APPLY_SYM_VALUE(FIX) 0 77 78 /* end of tc-bfin.h */ 79