X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-mmix.h;h=c984f7ae080f8f38c32ed8806e99b3af7f849d82;hb=ba85f98c42877287f45644a6d75513239c9490a5;hp=61bc881d12686d1dd1515f948bdebd0b31eeea99;hpb=9497f5ac6bc10bdd65ea471787619bde1edca77d;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-mmix.h b/gas/config/tc-mmix.h index 61bc881d12..c984f7ae08 100644 --- a/gas/config/tc-mmix.h +++ b/gas/config/tc-mmix.h @@ -1,12 +1,12 @@ /* tc-mmix.h -- Header file for tc-mmix.c. - Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Written by Hans-Peter Nilsson (hp@bitrange.com). This file is part of GAS, the GNU Assembler. GAS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -32,12 +32,6 @@ extern const char mmix_comment_chars[]; extern const char mmix_symbol_chars[]; #define tc_symbol_chars mmix_symbol_chars -extern const char mmix_exp_chars[]; -#define EXP_CHARS mmix_exp_chars - -extern const char mmix_flt_chars[]; -#define FLT_CHARS mmix_flt_chars - /* "@" is a synonym for ".". */ #define LEX_AT (LEX_BEGIN_NAME) @@ -185,7 +179,7 @@ extern long md_pcrel_from_section (struct fix *, segT); extern fragS *mmix_opcode_frag; #define TC_FRAG_TYPE fragS * -#define TC_FRAG_INIT(frag) (frag)->tc_frag_data = mmix_opcode_frag +#define TC_FRAG_INIT(frag, max_bytes) (frag)->tc_frag_data = mmix_opcode_frag /* We need to associate each section symbol with a list of GREGs defined for that section/segment and sorted on offset, between the point where @@ -193,7 +187,18 @@ extern fragS *mmix_opcode_frag; fixups are done and relocs are output. Similarly for each unknown symbol. */ extern void mmix_frob_file (void); -#define tc_frob_file_before_fix mmix_frob_file +#define tc_frob_file_before_fix() \ + do \ + { \ + int i = 0; \ + \ + /* It's likely mmix_frob_file changed (removed) sections, so make \ + sure sections are correctly numbered as per renumber_sections, \ + (static to write.c where this macro is called). */ \ + mmix_frob_file (); \ + bfd_map_over_sections (stdoutput, renumber_sections, &i); \ + } \ + while (0) /* Used by mmix_frob_file. Hangs on section symbols and unknown symbols. */ struct mmix_symbol_gregs; @@ -221,3 +226,9 @@ extern void mmix_md_do_align (int, char *, int, int); sequences sprinkled in, we can get unaligned DWARF2 offsets, so let's explicitly say one byte. */ #define DWARF2_LINE_MIN_INSN_LENGTH 1 + +/* This target is buggy, and sets fix size too large. */ +#define TC_FX_SIZE_SLACK(FIX) 6 + +/* MMIX has global register symbols. */ +#define TC_GLOBAL_REGISTER_SYMBOL_OK