1*1424dfb3Schristos /* tc-dlx.h -- Assemble for the DLX 2*1424dfb3Schristos Copyright (C) 2002-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 /* Initially created by Kuang Hwa Lin, 3/20/2002. */ 22*1424dfb3Schristos 23*1424dfb3Schristos #define TC_DLX 24*1424dfb3Schristos 25*1424dfb3Schristos /* The target BFD architecture. */ 26*1424dfb3Schristos #define TARGET_ARCH bfd_arch_dlx 27*1424dfb3Schristos #define TARGET_FORMAT "elf32-dlx" 28*1424dfb3Schristos #define TARGET_BYTES_BIG_ENDIAN 1 29*1424dfb3Schristos 30*1424dfb3Schristos #define WORKING_DOT_WORD 31*1424dfb3Schristos 32*1424dfb3Schristos #define LEX_DOLLAR 1 33*1424dfb3Schristos 34*1424dfb3Schristos #include "bit_fix.h" 35*1424dfb3Schristos 36*1424dfb3Schristos #define TC_FIX_TYPE bit_fixS * 37*1424dfb3Schristos #define tc_fix_data fx_bit_fixP 38*1424dfb3Schristos #define TC_INIT_FIX_DATA(FIX) do (FIX)->fx_bit_fixP = NULL; while (0) 39*1424dfb3Schristos 40*1424dfb3Schristos extern void dlx_pop_insert (void); 41*1424dfb3Schristos extern int dlx_unrecognized_line (int); 42*1424dfb3Schristos extern bfd_boolean md_dlx_fix_adjustable (struct fix *); 43*1424dfb3Schristos 44*1424dfb3Schristos #define md_pop_insert() dlx_pop_insert () 45*1424dfb3Schristos 46*1424dfb3Schristos #define md_convert_frag(b,s,f) as_fatal ("convert_frag called\n") 47*1424dfb3Schristos #define md_estimate_size_before_relax(f,s) \ 48*1424dfb3Schristos (as_fatal ("estimate_size_before_relax called"),1) 49*1424dfb3Schristos 50*1424dfb3Schristos #define tc_unrecognized_line(c) dlx_unrecognized_line (c) 51*1424dfb3Schristos 52*1424dfb3Schristos /* No shared lib support, so we don't need to ensure externally 53*1424dfb3Schristos visible symbols can be overridden. */ 54*1424dfb3Schristos #define EXTERN_FORCE_RELOC 0 55*1424dfb3Schristos 56*1424dfb3Schristos #define tc_fix_adjustable(FIX) md_dlx_fix_adjustable (FIX) 57*1424dfb3Schristos 58*1424dfb3Schristos /* Values passed to md_apply_fix don't include the symbol value. */ 59*1424dfb3Schristos #define MD_APPLY_SYM_VALUE(FIX) 0 60*1424dfb3Schristos 61*1424dfb3Schristos /* Zero Based Segment?? sound very dangerous to me! */ 62*1424dfb3Schristos #define ZERO_BASED_SEGMENTS 63*1424dfb3Schristos 64*1424dfb3Schristos /* Permit temporary numeric labels. */ 65*1424dfb3Schristos #define LOCAL_LABELS_FB 1 66*1424dfb3Schristos 67*1424dfb3Schristos #undef LOCAL_LABELS_DOLLAR 68*1424dfb3Schristos #define LOCAL_LABELS_DOLLAR 0 69*1424dfb3Schristos 70*1424dfb3Schristos /* .-foo gets turned into PC relative relocs. */ 71*1424dfb3Schristos #define DIFF_EXPR_OK 72