aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-06-11 19:03:06 +0000
committerIan Lance Taylor <ian@airs.com>1999-06-11 19:03:06 +0000
commit76171f81c775f93a83498d00d8c10c8b0fef9983 (patch)
treeb7cd2f8db1a35047f55064a14dc6e251b1047b21 /gas
parent5865bb778de378f3bfd1a99fc7601bcc32ae198b (diff)
downloadgdb-76171f81c775f93a83498d00d8c10c8b0fef9983.zip
gdb-76171f81c775f93a83498d00d8c10c8b0fef9983.tar.gz
gdb-76171f81c775f93a83498d00d8c10c8b0fef9983.tar.bz2
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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-i960.c25
-rw-r--r--gas/write.c2
3 files changed, 12 insertions, 22 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 77e26bf..549f446 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/tc-i960.c b/gas/config/tc-i960.c
index 60ae033..d8c15c0 100644
--- a/gas/config/tc-i960.c
+++ b/gas/config/tc-i960.c
@@ -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);
diff --git a/gas/write.c b/gas/write.c
index a8b8046..cd74c70 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -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
}
}
}