From 30869211aee6fc556da439c6edfcaf378bb46dba Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Mon, 28 Feb 1994 21:13:23 +0000 Subject: [PATCH] (md_atof): Omit warning about FP values. (line_comment_chars): Add ! to list. (md_apply_fix): Do process 32- and 64-bit relocations. --- gas/config/tc-alpha.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c index 743e9bee140..90bb0bf4a91 100644 --- a/gas/config/tc-alpha.c +++ b/gas/config/tc-alpha.c @@ -58,6 +58,9 @@ #include "alpha-opcode.h" #include "subsegs.h" +/* @@ Will a simple 0x8000 work here? If not, why not? */ +#define GP_ADJUSTMENT (0x8000 - 0x10) + /* These are exported to relaxing code, even though we don't do any relaxing on this processor currently. */ const relax_typeS md_relax_table[1]; @@ -175,7 +178,7 @@ const char comment_chars[] = "#"; first line of the input file. This is because the compiler outputs #NO_APP at the beginning of its output. */ /* Also note that '/*' will always start a comment */ -const char line_comment_chars[] = "#"; +const char line_comment_chars[] = "#!"; /* Chars that can be used to separate mant from exp in floating point nums */ const char EXP_CHARS[] = "eE"; @@ -335,7 +338,6 @@ tc_gen_reloc (sec, fixp) fixS *fixp; { arelent *reloc; - bfd_reloc_code_real_type code; reloc = (arelent *) bfd_alloc_by_size_t (stdoutput, sizeof (arelent)); reloc->sym_ptr_ptr = &fixp->fx_addsy->bsym; @@ -361,13 +363,12 @@ tc_gen_reloc (sec, fixp) } assert (!fixp->fx_pcrel == !reloc->howto->pc_relative); - if (reloc->howto->pc_relative - && reloc->howto->pcrel_offset -#if 1 - && code != BFD_RELOC_ALPHA_GPDISP_HI16 - && code != BFD_RELOC_ALPHA_GPDISP_LO16 -#endif - ) + if (fixp->fx_r_type == BFD_RELOC_ALPHA_LITERAL) + { + /* fake out bfd_perform_relocation. sigh */ + reloc->addend = -alpha_gp_value; + } + else if (reloc->howto->pc_relative && reloc->howto->pcrel_offset) { reloc->addend = fixp->fx_offset - reloc->address; } @@ -577,9 +578,6 @@ md_assemble (str) } } -/* @@ Will a simple 0x8000 work here? If not, why not? */ -#define GP_ADJUSTMENT (0x8000 - 0x10) - static void select_gp_value () { @@ -706,9 +704,6 @@ load_symbol_address (reg, insn) insn->reloc[0].exp.X_add_number, lita_sec, 8); - /* @@ Get these numbers from GP setting. */ - retval -= GP_ADJUSTMENT; - /* Now emit a LITERAL relocation for the original section. */ insn->reloc[0].exp.X_op = O_symbol; insn->reloc[0].exp.X_add_symbol = lita_sym; @@ -1805,8 +1800,11 @@ md_apply_fix (fixP, valueP) return 3; case BFD_RELOC_32: + size = 4; + goto do_it; case BFD_RELOC_64: - return 42; + size = 8; + goto do_it; case BFD_RELOC_16: /* Don't want overflow checking. */ size = 2; -- 2.30.2