diff options
author | Ken Raeburn <raeburn@cygnus> | 1994-02-28 21:13:23 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@cygnus> | 1994-02-28 21:13:23 +0000 |
commit | 30869211aee6fc556da439c6edfcaf378bb46dba (patch) | |
tree | 2b1b005325ac1f271d0b88524c1b85e36ec06228 | |
parent | c535f6bca65d5d6d2ba0c29f145e2207748bd471 (diff) | |
download | gdb-30869211aee6fc556da439c6edfcaf378bb46dba.zip gdb-30869211aee6fc556da439c6edfcaf378bb46dba.tar.gz gdb-30869211aee6fc556da439c6edfcaf378bb46dba.tar.bz2 |
(md_atof): Omit warning about FP values.
(line_comment_chars): Add ! to list.
(md_apply_fix): Do process 32- and 64-bit relocations.
-rw-r--r-- | gas/config/tc-alpha.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c index 743e9be..90bb0bf 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; |