(root)/
binutils-2.41/
gas/
config/
tc-score.h
       1  /* tc-score.h -- Score specific file for assembler
       2     Copyright (C) 2006-2023 Free Software Foundation, Inc.
       3     Contributed by:
       4     Brain.lin (brain.lin@sunplusct.com)
       5     Mei Ligang (ligang@sunnorth.com.cn)
       6     Pei-Lin Tsai (pltsai@sunplus.com)
       7  
       8     This file is part of GAS, the GNU Assembler.
       9  
      10     GAS is free software; you can redistribute it and/or modify
      11     it under the terms of the GNU General Public License as published by
      12     the Free Software Foundation; either version 3, or (at your option)
      13     any later version.
      14  
      15     GAS is distributed in the hope that it will be useful,
      16     but WITHOUT ANY WARRANTY; without even the implied warranty of
      17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      18     GNU General Public License for more details.
      19  
      20     You should have received a copy of the GNU General Public License
      21     along with GAS; see the file COPYING.  If not, write to the Free
      22     Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
      23     MA 02110-1301, USA.  */
      24  
      25  #ifndef TC_SCORE
      26  #define TC_SCORE
      27  
      28  #define TARGET_ARCH 	            bfd_arch_score
      29  #define WORKING_DOT_WORD
      30  #define DIFF_EXPR_OK
      31  #define RELOC_EXPANSION_POSSIBLE
      32  #define MAX_RELOC_EXPANSION         2
      33  #define MAX_MEM_FOR_RS_ALIGN_CODE  (3 + 4)
      34  
      35  #define md_undefined_symbol(name)  NULL
      36  
      37  #define TARGET_FORMAT  (target_big_endian ? "elf32-bigscore" : "elf32-littlescore")
      38  
      39  #define md_relax_frag(segment, fragp, stretch)  score_relax_frag (segment, fragp, stretch)
      40  extern int score_relax_frag (asection *, struct frag *, long);
      41  
      42  /* #define md_frag_check(fragp)  score_frag_check (fragp) */
      43  extern void score_frag_check (fragS *);
      44  
      45  #define TC_VALIDATE_FIX(FIXP, SEGTYPE, SKIP)  score_validate_fix (FIXP)
      46  extern void score_validate_fix (struct fix *);
      47  
      48  #define TC_FORCE_RELOCATION(FIXP)  score_force_relocation (FIXP)
      49  extern int score_force_relocation (struct fix *);
      50  
      51  #define tc_fix_adjustable(fixp)  score_fix_adjustable (fixp)
      52  extern bool score_fix_adjustable (struct fix *);
      53  
      54  #define elf_tc_final_processing  score_elf_final_processing
      55  extern void score_elf_final_processing (void);
      56  
      57  struct score_tc_frag_data
      58  {
      59    unsigned int is_insn;
      60    struct fix *fixp;
      61  };
      62  
      63  #define TC_FRAG_TYPE struct score_tc_frag_data
      64  
      65  #define TC_FRAG_INIT(FRAGP, MAX_BYTES) \
      66    do \
      67      { \
      68        (FRAGP)->tc_frag_data.is_insn = (((FRAGP)->fr_type == rs_machine_dependent) ? 1 : 0); \
      69      } \
      70    while (0)
      71  
      72  #ifdef OBJ_ELF
      73  #define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
      74  #else
      75  #define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_"
      76  #endif
      77  
      78  #endif /*TC_SCORE */