Home | History | Annotate | Download | only in config
      1 /* tc-arc.h - Macros and type defines for the ARC.
      2    Copyright (C) 1994-2014 Free Software Foundation, Inc.
      3    Contributed by Doug Evans (dje (at) cygnus.com).
      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
      9    published by the Free Software Foundation; either version 3,
     10    or (at your option) any later version.
     11 
     12    GAS is distributed in the hope that it will be useful, but
     13    WITHOUT ANY WARRANTY; without even the implied warranty of
     14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
     15    the 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_ARC 1
     23 
     24 #define TARGET_BYTES_BIG_ENDIAN 0
     25 
     26 #define LOCAL_LABELS_FB 1
     27 
     28 #define TARGET_ARCH bfd_arch_arc
     29 
     30 #define DIFF_EXPR_OK
     31 #define REGISTER_PREFIX '%'
     32 
     33 #ifdef LITTLE_ENDIAN
     34 #undef LITTLE_ENDIAN
     35 #endif
     36 
     37 #ifdef BIG_ENDIAN
     38 #undef BIG_ENDIAN
     39 #endif
     40 
     41 #define LITTLE_ENDIAN   1234
     42 
     43 #define BIG_ENDIAN      4321
     44 
     45 /* The endianness of the target format may change based on command
     46    line arguments.  */
     47 extern const char * arc_target_format;
     48 
     49 #define DEFAULT_TARGET_FORMAT  "elf32-littlearc"
     50 #define TARGET_FORMAT          arc_target_format
     51 #define DEFAULT_BYTE_ORDER     LITTLE_ENDIAN
     52 #define WORKING_DOT_WORD
     53 #define LISTING_HEADER         "ARC GAS "
     54 
     55 /* The ARC needs to parse reloc specifiers in .word.  */
     56 
     57 extern bfd_reloc_code_real_type arc_parse_cons_expression (struct expressionS *,
     58 							   unsigned);
     59 #define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) \
     60   arc_parse_cons_expression (EXP, NBYTES)
     61 
     62 extern void arc_cons_fix_new (struct frag *, int, int, struct expressionS *,
     63 			      bfd_reloc_code_real_type);
     64 #define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP, RELOC)	\
     65   arc_cons_fix_new (FRAG, WHERE, NBYTES, EXP, RELOC)
     66 
     67 #define DWARF2_LINE_MIN_INSN_LENGTH 4
     68 
     69 /* Values passed to md_apply_fix don't include the symbol value.  */
     70 #define MD_APPLY_SYM_VALUE(FIX) 0
     71 
     72 /* No shared lib support, so we don't need to ensure externally
     73    visible symbols can be overridden.  */
     74 #define EXTERN_FORCE_RELOC 0
     75