1999-06-11 Martin Dorey <mdorey@madge.com>
authorIan Lance Taylor <ian@airs.com>
Fri, 11 Jun 1999 19:03:06 +0000 (19:03 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 11 Jun 1999 19:03:06 +0000 (19:03 +0000)
* write.c (fixup_segment): Don't add symbol value for i960 ELF.
* config/tc-i960.c (s_leafproc): Don't call tc_set_bal_of_cal if
OBJ_ELF.
(md_apply_fix): Simplify BFD_ASSEMBLER handling.

gas/ChangeLog
gas/config/tc-i960.c
gas/write.c

index 77e26bf..549f446 100644 (file)
@@ -1,3 +1,10 @@
+1999-06-11  Martin Dorey  <mdorey@madge.com>
+
+       * write.c (fixup_segment): Don't add symbol value for i960 ELF.
+       * config/tc-i960.c (s_leafproc): Don't call tc_set_bal_of_cal if
+       OBJ_ELF.
+       (md_apply_fix): Simplify BFD_ASSEMBLER handling.
+
 1999-06-11  Ian Lance Taylor  <ian@zembu.com>
 
        * config/tc-i386.c (md_apply_fix3): Add default case to switch.
index 60ae033..d8c15c0 100644 (file)
@@ -2638,7 +2638,9 @@ s_leafproc (n_ops, args)
        }
       TC_S_FORCE_TO_BALNAME (balP);
 
+#ifndef OBJ_ELF
       tc_set_bal_of_call (callP, balP);
+#endif
     }                          /* if only one arg, or the args are the same */
 }
 
@@ -2863,34 +2865,13 @@ md_apply_fix (fixP, val)
 
   if (!fixP->fx_bit_fixP)
     {
+#ifndef BFD_ASSEMBLER
       /* For callx, we always want to write out zero, and emit a
         symbolic relocation.  */
       if (fixP->fx_bsr)
        val = 0;
 
-#ifdef OBJ_ELF
-      /* For ELF, we always emit relocations for external or weak
-         symbols.  */
-      if (fixP->fx_addsy != NULL
-         && (S_IS_EXTERNAL (fixP->fx_addsy)
-             || S_IS_WEAK (fixP->fx_addsy)))
-       val = 0;
-#endif
-
       fixP->fx_addnumber = val;
-
-#ifdef BFD_ASSEMBLER
-      /* HACK: With REL relocations this causes the offset in the code
-         to be doubled.
-
-        Guess: val is the old offset in the code, addnumber gets
-        passed back to md_gen_reloc() where it gets assigned to
-        addend, which the backend then writes back to the code (as
-        we're using REL, not RELA relocations).  COFF must be working
-        without this hack, but I don't see how or why.
-
-        apeppere and martindo 22-10-1998.  */
-      fixP->fx_addnumber = 0;
 #endif
 
       md_number_to_imm (place, val, fixP->fx_size, fixP);
index a8b8046..cd74c70 100644 (file)
@@ -2671,12 +2671,14 @@ fixup_segment (fixP, this_segment_type)
 #if !(defined (TC_V850) && defined (OBJ_ELF))
 #if !(defined (TC_M68K) && defined (OBJ_ELF))
 #if !(defined (TC_ARM)  && defined (OBJ_ELF))
+#if !(defined (TC_I960) && defined (OBJ_ELF))
 #if !defined (TC_I386) || !(defined (OBJ_ELF) || defined (OBJ_COFF)) || defined (TE_PE)
                  add_number += S_GET_VALUE (add_symbolP);
 #endif
 #endif
 #endif
 #endif
+#endif
                }
            }
        }