138889Sjdp/* tc-arc.h - Macros and type defines for the ARC.
2218822Sdim   Copyright 1994, 1995, 1997, 2000, 2001, 2002, 2005
3130561Sobrien   Free Software Foundation, Inc.
438889Sjdp   Contributed by Doug Evans (dje@cygnus.com).
538889Sjdp
638889Sjdp   This file is part of GAS, the GNU Assembler.
738889Sjdp
838889Sjdp   GAS is free software; you can redistribute it and/or modify
938889Sjdp   it under the terms of the GNU General Public License as
1038889Sjdp   published by the Free Software Foundation; either version 2,
1138889Sjdp   or (at your option) any later version.
1238889Sjdp
1338889Sjdp   GAS is distributed in the hope that it will be useful, but
1438889Sjdp   WITHOUT ANY WARRANTY; without even the implied warranty of
1538889Sjdp   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
1638889Sjdp   the GNU General Public License for more details.
1738889Sjdp
1838889Sjdp   You should have received a copy of the GNU General Public License
1938889Sjdp   along with GAS; see the file COPYING.  If not, write to the Free
20218822Sdim   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
21218822Sdim   02110-1301, USA.  */
2238889Sjdp
2338889Sjdp#define TC_ARC 1
2438889Sjdp
2538889Sjdp#define TARGET_BYTES_BIG_ENDIAN 0
2638889Sjdp
2738889Sjdp#define LOCAL_LABELS_FB 1
2838889Sjdp
2938889Sjdp#define TARGET_ARCH bfd_arch_arc
3038889Sjdp
3185815Sobrien#define DIFF_EXPR_OK
3285815Sobrien#define REGISTER_PREFIX '%'
3385815Sobrien
3485815Sobrien#ifdef LITTLE_ENDIAN
3585815Sobrien#undef LITTLE_ENDIAN
3685815Sobrien#endif
3785815Sobrien
3885815Sobrien#ifdef BIG_ENDIAN
3985815Sobrien#undef BIG_ENDIAN
4085815Sobrien#endif
4185815Sobrien
4238889Sjdp#define LITTLE_ENDIAN   1234
4385815Sobrien
4438889Sjdp#define BIG_ENDIAN      4321
4538889Sjdp
4638889Sjdp/* The endianness of the target format may change based on command
4738889Sjdp   line arguments.  */
48218822Sdimextern const char * arc_target_format;
4938889Sjdp
50218822Sdim#define DEFAULT_TARGET_FORMAT  "elf32-littlearc"
51218822Sdim#define TARGET_FORMAT          arc_target_format
52218822Sdim#define DEFAULT_BYTE_ORDER     LITTLE_ENDIAN
5338889Sjdp#define WORKING_DOT_WORD
54218822Sdim#define LISTING_HEADER         "ARC GAS "
5538889Sjdp
5638889Sjdp/* The ARC needs to parse reloc specifiers in .word.  */
5738889Sjdp
58218822Sdimextern void arc_parse_cons_expression (struct expressionS *, unsigned);
5938889Sjdp#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) \
60218822Sdim  arc_parse_cons_expression (EXP, NBYTES)
6138889Sjdp
62218822Sdimextern void arc_cons_fix_new (struct frag *, int, int, struct expressionS *);
6338889Sjdp#define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP) \
64218822Sdim  arc_cons_fix_new (FRAG, WHERE, NBYTES, EXP)
6538889Sjdp
6685815Sobrien#define DWARF2_LINE_MIN_INSN_LENGTH 4
67130561Sobrien
68218822Sdim/* Values passed to md_apply_fix don't include the symbol value.  */
69130561Sobrien#define MD_APPLY_SYM_VALUE(FIX) 0
70130561Sobrien
71130561Sobrien/* No shared lib support, so we don't need to ensure externally
72130561Sobrien   visible symbols can be overridden.  */
73130561Sobrien#define EXTERN_FORCE_RELOC 0
74