(md_atof): Omit warning about FP values.

(line_comment_chars): Add ! to list.
(md_apply_fix): Do process 32- and 64-bit relocations.
This commit is contained in:
Ken Raeburn
1994-02-28 21:13:23 +00:00
parent c535f6bca6
commit 30869211ae

View File

@ -58,6 +58,9 @@
#include "alpha-opcode.h" #include "alpha-opcode.h"
#include "subsegs.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 /* These are exported to relaxing code, even though we don't do any
relaxing on this processor currently. */ relaxing on this processor currently. */
const relax_typeS md_relax_table[1]; 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 first line of the input file. This is because the compiler outputs
#NO_APP at the beginning of its output. */ #NO_APP at the beginning of its output. */
/* Also note that '/*' will always start a comment */ /* 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 */ /* Chars that can be used to separate mant from exp in floating point nums */
const char EXP_CHARS[] = "eE"; const char EXP_CHARS[] = "eE";
@ -335,7 +338,6 @@ tc_gen_reloc (sec, fixp)
fixS *fixp; fixS *fixp;
{ {
arelent *reloc; arelent *reloc;
bfd_reloc_code_real_type code;
reloc = (arelent *) bfd_alloc_by_size_t (stdoutput, sizeof (arelent)); reloc = (arelent *) bfd_alloc_by_size_t (stdoutput, sizeof (arelent));
reloc->sym_ptr_ptr = &fixp->fx_addsy->bsym; 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); assert (!fixp->fx_pcrel == !reloc->howto->pc_relative);
if (reloc->howto->pc_relative if (fixp->fx_r_type == BFD_RELOC_ALPHA_LITERAL)
&& reloc->howto->pcrel_offset {
#if 1 /* fake out bfd_perform_relocation. sigh */
&& code != BFD_RELOC_ALPHA_GPDISP_HI16 reloc->addend = -alpha_gp_value;
&& code != BFD_RELOC_ALPHA_GPDISP_LO16 }
#endif else if (reloc->howto->pc_relative && reloc->howto->pcrel_offset)
)
{ {
reloc->addend = fixp->fx_offset - reloc->address; 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 static void
select_gp_value () select_gp_value ()
{ {
@ -706,9 +704,6 @@ load_symbol_address (reg, insn)
insn->reloc[0].exp.X_add_number, insn->reloc[0].exp.X_add_number,
lita_sec, 8); lita_sec, 8);
/* @@ Get these numbers from GP setting. */
retval -= GP_ADJUSTMENT;
/* Now emit a LITERAL relocation for the original section. */ /* Now emit a LITERAL relocation for the original section. */
insn->reloc[0].exp.X_op = O_symbol; insn->reloc[0].exp.X_op = O_symbol;
insn->reloc[0].exp.X_add_symbol = lita_sym; insn->reloc[0].exp.X_add_symbol = lita_sym;
@ -1805,8 +1800,11 @@ md_apply_fix (fixP, valueP)
return 3; return 3;
case BFD_RELOC_32: case BFD_RELOC_32:
size = 4;
goto do_it;
case BFD_RELOC_64: case BFD_RELOC_64:
return 42; size = 8;
goto do_it;
case BFD_RELOC_16: case BFD_RELOC_16:
/* Don't want overflow checking. */ /* Don't want overflow checking. */
size = 2; size = 2;