tc-alpha.h revision 33965
1/* This file is tc-alpha.h 2 Copyright (C) 1994, 1995, 1996, 1997 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_BYTES_BIG_ENDIAN 0 25 26#define TARGET_ARCH bfd_arch_alpha 27 28#define TARGET_FORMAT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \ 29 ? "ecoff-littlealpha" \ 30 : OUTPUT_FLAVOR == bfd_target_elf_flavour \ 31 ? "elf64-alpha" \ 32 : OUTPUT_FLAVOR == bfd_target_evax_flavour \ 33 ? "evax-alpha" \ 34 : "unknown-format") 35 36#define NEED_LITERAL_POOL 37#define TC_HANDLES_FX_DONE 38#define REPEAT_CONS_EXPRESSIONS 39 40extern int alpha_force_relocation PARAMS ((struct fix *)); 41extern int alpha_fix_adjustable PARAMS ((struct fix *)); 42 43extern unsigned long alpha_gprmask, alpha_fprmask; 44extern valueT alpha_gp_value; 45 46#define TC_FORCE_RELOCATION(FIXP) alpha_force_relocation (FIXP) 47#define tc_fix_adjustable(FIXP) alpha_fix_adjustable (FIXP) 48#define RELOC_REQUIRES_SYMBOL 49 50#define md_convert_frag(b,s,f) as_fatal ("alpha convert_frag\n") 51#define md_create_long_jump(p,f,t,fr,s) as_fatal("alpha_create_long_jump") 52#define md_create_short_jump(p,f,t,fr,s) as_fatal("alpha_create_short_jump") 53#define md_estimate_size_before_relax(f,s) \ 54 (as_fatal("estimate_size_before_relax called"),1) 55#define md_operand(x) 56 57#ifdef OBJ_EVAX 58 59/* This field keeps the symbols position in the link section. */ 60#define OBJ_SYMFIELD_TYPE valueT 61 62#define TC_CONS_FIX_NEW(FRAG,OFF,LEN,EXP) \ 63 fix_new_exp (FRAG, OFF, (int)LEN, EXP, 0, \ 64 LEN == 2 ? BFD_RELOC_16 \ 65 : LEN == 4 ? BFD_RELOC_32 \ 66 : LEN == 8 ? BFD_RELOC_64 \ 67 : BFD_RELOC_ALPHA_LINKAGE); 68#endif 69 70#define md_number_to_chars number_to_chars_littleendian 71 72extern int tc_get_register PARAMS ((int frame)); 73extern void alpha_frob_ecoff_data PARAMS ((void)); 74 75#define tc_frob_label(sym) alpha_define_label (sym) 76extern void alpha_define_label PARAMS ((struct symbol *)); 77 78#define md_cons_align(nbytes) alpha_cons_align (nbytes) 79extern void alpha_cons_align PARAMS ((int)); 80 81#ifdef OBJ_ECOFF 82#define tc_frob_file_before_adjust() alpha_frob_file_before_adjust () 83extern void alpha_frob_file_before_adjust PARAMS ((void)); 84#endif 85