tc-score.h revision 214571
1284677Sdim/* tc-score.h -- Score specific file for assembler 2284677Sdim Copyright 2006 Free Software Foundation, Inc. 3353358Sdim Contributed by: 4353358Sdim Mei Ligang (ligang@sunnorth.com.cn) 5353358Sdim Pei-Lin Tsai (pltsai@sunplus.com) 6284677Sdim 7284677Sdim This file is part of GAS, the GNU Assembler. 8284677Sdim 9284677Sdim GAS is free software; you can redistribute it and/or modify 10284677Sdim it under the terms of the GNU General Public License as published by 11284677Sdim the Free Software Foundation; either version 2, or (at your option) 12284677Sdim any later version. 13284677Sdim 14284677Sdim GAS is distributed in the hope that it will be useful, 15284677Sdim but WITHOUT ANY WARRANTY; without even the implied warranty of 16284677Sdim MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17284677Sdim GNU General Public License for more details. 18284677Sdim 19284677Sdim You should have received a copy of the GNU General Public License 20284677Sdim along with GAS; see the file COPYING. If not, write to the Free 21341825Sdim Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 22284677Sdim MA 02110-1301, USA. */ 23284677Sdim 24284677Sdim#ifndef TC_SCORE 25284677Sdim#define TC_SCORE 26284677Sdim 27284677Sdim#define TARGET_ARCH bfd_arch_score 28284677Sdim#define WORKING_DOT_WORD 29284677Sdim#define DIFF_EXPR_OK 30284677Sdim#define RELOC_EXPANSION_POSSIBLE 31284677Sdim#define MAX_RELOC_EXPANSION 2 32284677Sdim#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4) 33284677Sdim 34309124Sdim#define md_undefined_symbol(name) NULL 35309124Sdim 36341825Sdim#define TARGET_FORMAT (target_big_endian ? "elf32-bigscore" : "elf32-littlescore") 37341825Sdim 38284677Sdim#define md_relax_frag(segment, fragp, stretch) score_relax_frag (segment, fragp, stretch) 39284677Sdimextern int score_relax_frag (asection *, struct frag *, long); 40284677Sdim 41284677Sdim#define md_frag_check(fragp) score_frag_check (fragp) 42284677Sdimextern void score_frag_check (fragS *); 43284677Sdim 44284677Sdim#define TC_VALIDATE_FIX(FIXP, SEGTYPE, SKIP) score_validate_fix (FIXP) 45284677Sdimextern void score_validate_fix (struct fix *); 46284677Sdim 47284677Sdim#define TC_FORCE_RELOCATION(FIXP) score_force_relocation (FIXP) 48284677Sdimextern int score_force_relocation (struct fix *); 49309124Sdim 50309124Sdim#define tc_fix_adjustable(fixp) score_fix_adjustable (fixp) 51284677Sdimextern bfd_boolean score_fix_adjustable (struct fix *); 52284677Sdim 53284677Sdim#define elf_tc_final_processing score_elf_final_processing 54284677Sdimextern void score_elf_final_processing (void); 55284677Sdim 56309124Sdimstruct score_tc_frag_data 57284677Sdim{ 58284677Sdim unsigned int is_insn; 59284677Sdim struct fix *fixp; 60309124Sdim}; 61309124Sdim 62284677Sdim#define TC_FRAG_TYPE struct score_tc_frag_data 63284677Sdim 64327952Sdim#define TC_FRAG_INIT(FRAGP) \ 65327952Sdim do \ 66321369Sdim { \ 67284677Sdim (FRAGP)->tc_frag_data.is_insn = (((FRAGP)->fr_type == rs_machine_dependent) ? 1 : 0); \ 68284677Sdim } \ 69284677Sdim while (0) 70314564Sdim 71284677Sdim#ifdef OBJ_ELF 72284677Sdim#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_" 73327952Sdim#else 74327952Sdim#define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_" 75327952Sdim#endif 76327952Sdim 77327952Sdimenum score_pic_level 78327952Sdim{ 79327952Sdim NO_PIC, 80284677Sdim PIC 81284677Sdim}; 82327952Sdim 83327952Sdim#endif /*TC_SCORE */ 84309124Sdim