1 /* This file is tc-pj.h 2 Copyright (C) 1999-2014 Free Software Foundation, Inc. 3 4 Contributed by Steve Chamberlain of Transmeta, sac (at) pobox.com 5 6 This file is part of GAS, the GNU Assembler. 7 8 GAS is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3, or (at your option) 11 any later version. 12 13 GAS is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with GAS; see the file COPYING. If not, write to 20 the Free Software Foundation, 51 Franklin Street - Fifth Floor, 21 Boston, MA 02110-1301, USA. */ 22 23 /* Contributed by Steve Chamberlain, of Transmeta. sac (at) pobox.com. */ 24 25 #define WORKING_DOT_WORD 26 #define IGNORE_NONSTANDARD_ESCAPES 27 #define TARGET_ARCH bfd_arch_pj 28 #define TARGET_FORMAT (target_big_endian ? "elf32-pj" : "elf32-pjl") 29 #define LISTING_HEADER \ 30 (target_big_endian \ 31 ? "Pico Java GAS Big Endian" \ 32 : "Pico Java GAS Little Endian") 33 34 void pj_cons_fix_new_pj (struct frag *, int, int, expressionS *, 35 bfd_reloc_code_real_type); 36 arelent *tc_gen_reloc (asection *, struct fix *); 37 38 #define md_section_align(SEGMENT, SIZE) (SIZE) 39 #define md_convert_frag(B, S, F) as_fatal (_("convert_frag\n")) 40 #define md_estimate_size_before_relax(A, B) (as_fatal (_("estimate size\n")),0) 41 #define md_undefined_symbol(NAME) 0 42 43 /* PC relative operands are relative to the start of the opcode, and 44 the operand is always one byte into the opcode. */ 45 46 #define md_pcrel_from(FIX) \ 47 ((FIX)->fx_where + (FIX)->fx_frag->fr_address - 1) 48 49 #define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP, RELOC) \ 50 pj_cons_fix_new_pj (FRAG, WHERE, NBYTES, EXP, RELOC) 51 52 /* No shared lib support, so we don't need to ensure externally 53 visible symbols can be overridden. */ 54 #define EXTERN_FORCE_RELOC 0 55 56 /* Values passed to md_apply_fix don't include the symbol value. */ 57 #define MD_APPLY_SYM_VALUE(FIX) 0 58 59 #define tc_fix_adjustable(FIX) \ 60 (! ((FIX)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ 61 || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY)) 62