(md_atof): Omit warning about FP values.
authorKen Raeburn <raeburn@cygnus>
Mon, 28 Feb 1994 21:13:23 +0000 (21:13 +0000)
committerKen Raeburn <raeburn@cygnus>
Mon, 28 Feb 1994 21:13:23 +0000 (21:13 +0000)
(line_comment_chars): Add ! to list.
(md_apply_fix): Do process 32- and 64-bit relocations.

gas/config/tc-alpha.c

index 743e9bee1408535cfbd7d8be5cd5957161f47a37..90bb0bf4a91451f0d3ccd750055285c88df06c5e 100644 (file)
@@ -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;