tc-arc.h revision 130561
138889Sjdp/* tc-arc.h - Macros and type defines for the ARC.
2130561Sobrien   Copyright 1994, 1995, 1997, 2000, 2001, 2002
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
2038889Sjdp   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
2185815Sobrien   02111-1307, 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.  */
4838889Sjdpextern const char *arc_target_format;
4938889Sjdp#define DEFAULT_TARGET_FORMAT "elf32-littlearc"
5038889Sjdp#define TARGET_FORMAT arc_target_format
5138889Sjdp#define DEFAULT_BYTE_ORDER LITTLE_ENDIAN
5238889Sjdp
5338889Sjdp#define WORKING_DOT_WORD
5438889Sjdp
5538889Sjdp#define LISTING_HEADER "ARC GAS "
5638889Sjdp
5738889Sjdp/* The ARC needs to parse reloc specifiers in .word.  */
5838889Sjdp
5989857Sobrienextern void arc_parse_cons_expression PARAMS ((struct expressionS *, unsigned));
6038889Sjdp#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) \
6138889Sjdparc_parse_cons_expression (EXP, NBYTES)
6238889Sjdp
6389857Sobrienextern void arc_cons_fix_new PARAMS ((struct frag *, int, int, struct expressionS *));
6438889Sjdp#define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP) \
6538889Sjdparc_cons_fix_new (FRAG, WHERE, NBYTES, EXP)
6638889Sjdp
6785815Sobrien#define DWARF2_LINE_MIN_INSN_LENGTH 4
68130561Sobrien
69130561Sobrien/* Values passed to md_apply_fix3 don't include the symbol value.  */
70130561Sobrien#define MD_APPLY_SYM_VALUE(FIX) 0
71130561Sobrien
72130561Sobrien/* No shared lib support, so we don't need to ensure externally
73130561Sobrien   visible symbols can be overridden.  */
74130561Sobrien#define EXTERN_FORCE_RELOC 0
75