tc-alpha.h revision 1.2
1/* This file is tc-alpha.h 2 Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. 3 Written by Ken Raeburn <raeburn@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 published by 9 the Free Software Foundation; either version 2, or (at your option) 10 any later version. 11 12 GAS is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 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, 59 Temple Place - Suite 330, Boston, MA 20 02111-1307, USA. */ 21 22#define TC_ALPHA 23 24#define TARGET_ARCH bfd_arch_alpha 25 26#define TARGET_FORMAT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \ 27 ? "ecoff-littlealpha" \ 28 : OUTPUT_FLAVOR == bfd_target_elf_flavour \ 29 ? "elf64-alpha" \ 30 : OUTPUT_FLAVOR == bfd_target_evax_flavour \ 31 ? "evax-alpha" \ 32 : "unknown-format") 33 34#define NEED_LITERAL_POOL 35#define TC_HANDLES_FX_DONE 36#define REPEAT_CONS_EXPRESSIONS 37 38extern int alpha_force_relocation PARAMS ((struct fix *)); 39extern int alpha_fix_adjustable PARAMS ((struct fix *)); 40 41extern unsigned long alpha_gprmask, alpha_fprmask; 42extern valueT alpha_gp_value; 43 44#define TC_FORCE_RELOCATION(FIXP) alpha_force_relocation (FIXP) 45#define tc_fix_adjustable(FIXP) alpha_fix_adjustable (FIXP) 46#define RELOC_REQUIRES_SYMBOL 47 48#define md_convert_frag(b,s,f) as_fatal ("alpha convert_frag\n") 49#define md_create_long_jump(p,f,t,fr,s) as_fatal("alpha_create_long_jump") 50#define md_create_short_jump(p,f,t,fr,s) as_fatal("alpha_create_short_jump") 51#define md_estimate_size_before_relax(f,s) \ 52 (as_fatal("estimate_size_before_relax called"),1) 53#define md_operand(x) ((void) (0)) 54 55#ifdef OBJ_ECOFF 56#define LOCAL_LABEL(name) ((name)[0] == 'L') 57#endif 58#ifdef OBJ_ELF 59#define LOCAL_LABEL(name) ((name)[0] == '$') 60#define FAKE_LABEL_NAME "$L0\001" 61#endif 62#ifdef OBJ_EVAX 63#define LOCAL_LABEL(name) ((name)[0] == '$') 64#define FAKE_LABEL_NAME "$L0\001" 65/* This field keeps the symbols position in the link section. */ 66#define OBJ_SYMFIELD_TYPE valueT 67#endif 68 69#define md_number_to_chars number_to_chars_littleendian 70 71extern int tc_get_register PARAMS ((int frame)); 72extern void alpha_frob_ecoff_data PARAMS ((void)); 73 74#define tc_frob_label(sym) alpha_define_label (sym) 75extern void alpha_define_label PARAMS ((struct symbol *)); 76 77#define md_cons_align(nbytes) alpha_cons_align (nbytes) 78extern void alpha_cons_align PARAMS ((int)); 79 80