X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-mmix.h;h=d9e8599c888ea1746d638496eca36f63bb7cf006;hb=de54374205650be71237ce51ef7981d30ddd78dc;hp=61bc881d12686d1dd1515f948bdebd0b31eeea99;hpb=01f0fe5e0450edf168c1f612feb93cf588e4e7ea;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-mmix.h b/gas/config/tc-mmix.h index 61bc881d12..d9e8599c88 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-2020 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) @@ -174,7 +168,6 @@ extern int mmix_force_relocation (struct fix *); /* Call md_pcrel_from_section(), not md_pcrel_from(). */ #define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC) -extern long md_pcrel_from_section (struct fix *, segT); #define md_section_align(seg, size) (size) @@ -185,7 +178,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 +186,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 +225,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