1*1424dfb3Schristos /* tc-vax.h -- Header file for tc-vax.c. 2*1424dfb3Schristos Copyright (C) 1987-2020 Free Software Foundation, Inc. 3*1424dfb3Schristos 4*1424dfb3Schristos This file is part of GAS, the GNU Assembler. 5*1424dfb3Schristos 6*1424dfb3Schristos GAS is free software; you can redistribute it and/or modify 7*1424dfb3Schristos it under the terms of the GNU General Public License as published by 8*1424dfb3Schristos the Free Software Foundation; either version 3, or (at your option) 9*1424dfb3Schristos any later version. 10*1424dfb3Schristos 11*1424dfb3Schristos GAS is distributed in the hope that it will be useful, 12*1424dfb3Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 13*1424dfb3Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*1424dfb3Schristos GNU General Public License for more details. 15*1424dfb3Schristos 16*1424dfb3Schristos You should have received a copy of the GNU General Public License 17*1424dfb3Schristos along with GAS; see the file COPYING. If not, write to the Free 18*1424dfb3Schristos Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 19*1424dfb3Schristos 02110-1301, USA. */ 20*1424dfb3Schristos 21*1424dfb3Schristos #define TC_VAX 1 22*1424dfb3Schristos 23*1424dfb3Schristos #define TARGET_BYTES_BIG_ENDIAN 0 24*1424dfb3Schristos 25*1424dfb3Schristos #ifdef OBJ_AOUT 26*1424dfb3Schristos #ifdef TE_NetBSD 27*1424dfb3Schristos #define TARGET_FORMAT "a.out-vax-netbsd" 28*1424dfb3Schristos #endif 29*1424dfb3Schristos #ifndef TARGET_FORMAT 30*1424dfb3Schristos #define TARGET_FORMAT "a.out-vax-bsd" 31*1424dfb3Schristos #endif 32*1424dfb3Schristos #endif 33*1424dfb3Schristos 34*1424dfb3Schristos #ifdef OBJ_VMS 35*1424dfb3Schristos #define TARGET_FORMAT "vms-vax" 36*1424dfb3Schristos #endif 37*1424dfb3Schristos 38*1424dfb3Schristos #ifdef OBJ_ELF 39*1424dfb3Schristos #define TARGET_FORMAT "elf32-vax" 40*1424dfb3Schristos #endif 41*1424dfb3Schristos 42*1424dfb3Schristos #define TARGET_ARCH bfd_arch_vax 43*1424dfb3Schristos 44*1424dfb3Schristos #define NO_RELOC BFD_RELOC_NONE 45*1424dfb3Schristos #define NOP_OPCODE 0x01 46*1424dfb3Schristos 47*1424dfb3Schristos #define md_operand(x) 48*1424dfb3Schristos 49*1424dfb3Schristos #ifdef OBJ_ELF 50*1424dfb3Schristos #define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) vax_cons (EXP, NBYTES) 51*1424dfb3Schristos #define TC_CONS_FIX_NEW vax_cons_fix_new 52*1424dfb3Schristos bfd_reloc_code_real_type vax_cons (expressionS *, int); 53*1424dfb3Schristos void vax_cons_fix_new (struct frag *, int, unsigned int, struct expressionS *, 54*1424dfb3Schristos bfd_reloc_code_real_type); 55*1424dfb3Schristos #endif 56*1424dfb3Schristos 57*1424dfb3Schristos extern const struct relax_type md_relax_table[]; 58*1424dfb3Schristos #define TC_GENERIC_RELAX_TABLE md_relax_table 59*1424dfb3Schristos 60*1424dfb3Schristos /* Values passed to md_apply_fix don't include symbol values. */ 61*1424dfb3Schristos #define MD_APPLY_SYM_VALUE(FIX) 0 62*1424dfb3Schristos 63*1424dfb3Schristos #define tc_fix_adjustable(FIX) \ 64*1424dfb3Schristos ((FIX)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ 65*1424dfb3Schristos && (FIX)->fx_r_type != BFD_RELOC_32_PLT_PCREL \ 66*1424dfb3Schristos && (FIX)->fx_r_type != BFD_RELOC_32_GOT_PCREL \ 67*1424dfb3Schristos && (FIX)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ 68*1424dfb3Schristos && ((FIX)->fx_pcrel \ 69*1424dfb3Schristos || ((FIX)->fx_subsy != NULL \ 70*1424dfb3Schristos && (S_GET_SEGMENT ((FIX)->fx_subsy) \ 71*1424dfb3Schristos == S_GET_SEGMENT ((FIX)->fx_addsy))) \ 72*1424dfb3Schristos || S_IS_LOCAL ((FIX)->fx_addsy))) 73*1424dfb3Schristos 74*1424dfb3Schristos /* 75*1424dfb3Schristos * Local Variables: 76*1424dfb3Schristos * comment-column: 0 77*1424dfb3Schristos * fill-column: 131 78*1424dfb3Schristos * End: 79*1424dfb3Schristos */ 80