diff options
Diffstat (limited to 'gas/config/tc-arm.h')
-rw-r--r-- | gas/config/tc-arm.h | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h deleted file mode 100644 index c5ab8870512..00000000000 --- a/gas/config/tc-arm.h +++ /dev/null @@ -1,211 +0,0 @@ -/* This file is tc-arm.h - Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 - Free Software Foundation, Inc. - Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) - Modified by David Taylor (dtaylor@armltd.co.uk) - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GAS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -#define TC_ARM 1 - -#ifndef TARGET_BYTES_BIG_ENDIAN -#define TARGET_BYTES_BIG_ENDIAN 0 -#endif - -#define WORKING_DOT_WORD - -#define COFF_MAGIC ARMMAGIC -#define TARGET_ARCH bfd_arch_arm - -#define AOUT_MACHTYPE 0 - -#define DIFF_EXPR_OK - -#ifdef LITTLE_ENDIAN -#undef LITTLE_ENDIAN -#endif - -#ifdef BIG_ENDIAN -#undef BIG_ENDIAN -#endif - -#define LITTLE_ENDIAN 1234 -#define BIG_ENDIAN 4321 - -#if defined OBJ_AOUT -#if defined TE_RISCIX -# define TARGET_FORMAT "a.out-riscix" -#elif defined TE_LINUX -# define ARM_BI_ENDIAN -# define TARGET_FORMAT "a.out-arm-linux" -#elif defined TE_NetBSD -# define TARGET_FORMAT "a.out-arm-netbsd" -#else -# define ARM_BI_ENDIAN -# define TARGET_FORMAT \ - (target_big_endian ? "a.out-arm-big" : "a.out-arm-little") -#endif -#endif /* OBJ_AOUT */ - -#ifdef OBJ_AIF -#define TARGET_FORMAT "aif" -#endif - -#if defined OBJ_COFF || defined OBJ_ELF -# define ARM_BI_ENDIAN - -# define TC_VALIDATE_FIX(fixP, segType, Label) \ - if (arm_validate_fix (fixP)) add_symbolP = fixP->fx_addsy - extern boolean arm_validate_fix PARAMS ((struct fix *)); -#endif - -#ifdef OBJ_COFF -# if defined TE_PE -# define TC_FORCE_RELOCATION(x) ((x)->fx_r_type == BFD_RELOC_RVA) -# ifdef TE_EPOC -# define TARGET_FORMAT (target_big_endian ? "epoc-pe-arm-big" : "epoc-pe-arm-little") -# else -# define TARGET_FORMAT (target_big_endian ? "pe-arm-big" : "pe-arm-little") -# endif -# else -# define TARGET_FORMAT (target_big_endian ? "coff-arm-big" : "coff-arm-little") -# endif -#endif - -#ifdef OBJ_ELF -# define TARGET_FORMAT elf32_arm_target_format() - extern const char * elf32_arm_target_format PARAMS ((void)); - -# define TC_FORCE_RELOCATION(fixp) arm_force_relocation (fixp) - extern int arm_force_relocation PARAMS ((struct fix *)); -#endif - -#define md_convert_frag(b, s, f) {as_fatal (_("arm convert_frag\n"));} - -#define md_cleanup() arm_cleanup () - extern void arm_cleanup PARAMS ((void)); - -#define md_start_line_hook() arm_start_line_hook () - extern void arm_start_line_hook PARAMS ((void)); - -#define tc_frob_label(S) arm_frob_label (S) - extern void arm_frob_label PARAMS ((symbolS *)); - -/* We also need to mark assembler created symbols: */ -#define tc_frob_fake_label(S) arm_frob_label (S) - -/* NOTE: The fake label creation in stabs.c:s_stab_generic() has - deliberately not been updated to mark assembler created stabs - symbols as Thumb. */ - -#define TC_FIX_TYPE PTR -#define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL) - -#ifdef OBJ_ELF -#include "write.h" /* For definition of fixS */ -#define obj_fix_adjustable(fixP) arm_fix_adjustable (fixP) -boolean arm_fix_adjustable PARAMS ((fixS *)); -#else -#define obj_fix_adjustable(fixP) 0 -#endif - -/* We need to keep some local information on symbols. */ - -#define TC_SYMFIELD_TYPE unsigned int -#define ARM_GET_FLAG(s) (*symbol_get_tc (s)) -#define ARM_SET_FLAG(s,v) (*symbol_get_tc (s) |= (v)) -#define ARM_RESET_FLAG(s,v) (*symbol_get_tc (s) &= ~(v)) - -#define ARM_FLAG_THUMB (1 << 0) /* The symbol is a Thumb symbol rather than an Arm symbol. */ -#define ARM_FLAG_INTERWORK (1 << 1) /* The symbol is attached to code that suppports interworking. */ -#define THUMB_FLAG_FUNC (1 << 2) /* The symbol is attached to the start of a Thumb function. */ - -#define ARM_IS_THUMB(s) (ARM_GET_FLAG (s) & ARM_FLAG_THUMB) -#define ARM_IS_INTERWORK(s) (ARM_GET_FLAG (s) & ARM_FLAG_INTERWORK) -#define THUMB_IS_FUNC(s) (ARM_GET_FLAG (s) & THUMB_FLAG_FUNC) - -#define ARM_SET_THUMB(s,t) ((t) ? ARM_SET_FLAG (s, ARM_FLAG_THUMB) : ARM_RESET_FLAG (s, ARM_FLAG_THUMB)) -#define ARM_SET_INTERWORK(s,t) ((t) ? ARM_SET_FLAG (s, ARM_FLAG_INTERWORK) : ARM_RESET_FLAG (s, ARM_FLAG_INTERWORK)) -#define THUMB_SET_FUNC(s,t) ((t) ? ARM_SET_FLAG (s, THUMB_FLAG_FUNC) : ARM_RESET_FLAG (s, THUMB_FLAG_FUNC)) - - -#define TC_START_LABEL(C,STR) \ - (c == ':' || (c == '/' && arm_data_in_code ())) -int arm_data_in_code PARAMS ((void)); - -#define tc_canonicalize_symbol_name(str) \ - arm_canonicalize_symbol_name (str); -char * arm_canonicalize_symbol_name PARAMS ((char *)); - -#define obj_adjust_symtab() arm_adjust_symtab () - extern void arm_adjust_symtab PARAMS ((void)); - -#ifdef OBJ_ELF -#define obj_frob_symbol(sym, punt) armelf_frob_symbol ((sym), & (punt)) -void armelf_frob_symbol PARAMS ((symbolS *, int *)); -#endif - -#define tc_aout_pre_write_hook(x) {;} /* not used */ - -#define LISTING_HEADER "ARM GAS " - -#define OPTIONAL_REGISTER_PREFIX '%' - -#define md_operand(x) - -#define TC_HANDLES_FX_DONE - -#define MD_APPLY_FIX3 - -#define LOCAL_LABEL(name) (name[0] == '.' && (name[1] == 'L')) -#define LOCAL_LABELS_FB 1 -#ifdef OBJ_ELF -#define LOCAL_LABEL_PREFIX '.' -#endif - -/* This expression evaluates to false if the relocation is for a local object - for which we still want to do the relocation at runtime. True if we - are willing to perform this relocation while building the .o file. - This is only used for pcrel relocations, so GOTOFF does not need to be - checked here. I am not sure if some of the others are ever used with - pcrel, but it is easier to be safe than sorry. */ - -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ( (FIX)->fx_r_type != BFD_RELOC_ARM_GOT12 \ - && (FIX)->fx_r_type != BFD_RELOC_ARM_GOT32 \ - && (FIX)->fx_r_type != BFD_RELOC_32) - -#define TC_CONS_FIX_NEW cons_fix_new_arm - extern void cons_fix_new_arm PARAMS ((fragS *, int, int, expressionS *)); - -/* Don't allow symbols to be discarded on GOT related relocs, - nor on globals. */ -#define tc_fix_adjustable(x) (\ - ((x)->fx_r_type == BFD_RELOC_ARM_PLT32 \ - || (x)->fx_r_type == BFD_RELOC_ARM_GOT32 \ - || (x)->fx_r_type == BFD_RELOC_ARM_GOTOFF \ - || S_IS_EXTERN ((x)->fx_addsy) \ - || S_IS_WEAK ((x)->fx_addsy)) ? 0 : 1) - -#ifdef OBJ_ELF -#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_" -#else -#define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_" -#endif - -/* end of tc-arm.h */ |