aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2007-02-17 23:13:49 +0000
committerAlan Modra <amodra@gmail.com>2007-02-17 23:13:49 +0000
commitd31f0f6d41caaba6ef79e5ebf7f135f9fa3647ac (patch)
tree582b8cb50b3d7114cd9c985e28e537a384b78cf6 /gas/config
parent4b5d35eef6a021182a555b9e76b3d9e65e3839ef (diff)
downloadgdb-d31f0f6d41caaba6ef79e5ebf7f135f9fa3647ac.zip
gdb-d31f0f6d41caaba6ef79e5ebf7f135f9fa3647ac.tar.gz
gdb-d31f0f6d41caaba6ef79e5ebf7f135f9fa3647ac.tar.bz2
* write.c (TC_FX_SIZE_SLACK): Define.
(write_relocs): Reinstate check for fixup within frag. * config/tc-bfin.h (TC_FX_SIZE_SLACK): Define. * config/tc-h8300.h (TC_FX_SIZE_SLACK): Define. * config/tc-mmix.h (TC_FX_SIZE_SLACK): Define. * config/tc-sh.h (TC_FX_SIZE_SLACK): Define. * config/tc-xstormy16.h (TC_FX_SIZE_SLACK): Define.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-bfin.h3
-rw-r--r--gas/config/tc-h8300.h3
-rw-r--r--gas/config/tc-mmix.h3
-rw-r--r--gas/config/tc-sh.h5
-rw-r--r--gas/config/tc-xstormy16.h3
5 files changed, 17 insertions, 0 deletions
diff --git a/gas/config/tc-bfin.h b/gas/config/tc-bfin.h
index fb0c63c..e1f95a9 100644
--- a/gas/config/tc-bfin.h
+++ b/gas/config/tc-bfin.h
@@ -75,4 +75,7 @@ extern long md_pcrel_from_section PARAMS ((struct fix *, segT));
/* Values passed to md_apply_fix3 don't include symbol values. */
#define MD_APPLY_SYM_VALUE(FIX) 0
+/* This target is buggy, and sets fix size too large. */
+#define TC_FX_SIZE_SLACK(FIX) 2
+
/* end of tc-bfin.h */
diff --git a/gas/config/tc-h8300.h b/gas/config/tc-h8300.h
index bfc8f72..7191181 100644
--- a/gas/config/tc-h8300.h
+++ b/gas/config/tc-h8300.h
@@ -86,3 +86,6 @@ extern int Nmode;
extern int SXmode;
#define md_operand(x)
+
+/* This target is buggy, and sets fix size too large. */
+#define TC_FX_SIZE_SLACK(FIX) 1
diff --git a/gas/config/tc-mmix.h b/gas/config/tc-mmix.h
index 61bc881..b4ab0c7 100644
--- a/gas/config/tc-mmix.h
+++ b/gas/config/tc-mmix.h
@@ -221,3 +221,6 @@ extern void mmix_md_do_align (int, char *, int, int);
sequences sprinkled in, we can get unaligned DWARF2 offsets, so let's
explicitly say one byte. */
#define DWARF2_LINE_MIN_INSN_LENGTH 1
+
+/* This target is buggy, and sets fix size too large. */
+#define TC_FX_SIZE_SLACK(FIX) 6
diff --git a/gas/config/tc-sh.h b/gas/config/tc-sh.h
index 93fdd90..0ad914e 100644
--- a/gas/config/tc-sh.h
+++ b/gas/config/tc-sh.h
@@ -81,6 +81,11 @@ extern int sh_force_relocation (struct fix *);
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
extern long md_pcrel_from_section (struct fix *, segT);
+/* SH_COUNT relocs are allowed outside of frag.
+ The target is also buggy and sets fix size too large for other relocs. */
+#define TC_FX_SIZE_SLACK(FIX) \
+ ((FIX)->fx_r_type == BFD_RELOC_SH_COUNT ? -1 : 2)
+
#define IGNORE_NONSTANDARD_ESCAPES
#define LISTING_HEADER \
diff --git a/gas/config/tc-xstormy16.h b/gas/config/tc-xstormy16.h
index 5425874..727a496 100644
--- a/gas/config/tc-xstormy16.h
+++ b/gas/config/tc-xstormy16.h
@@ -63,3 +63,6 @@ extern void xstormy16_cons_fix_new (fragS *f, int, int, expressionS *);
/* Minimum instruction is two bytes. */
#define DWARF2_LINE_MIN_INSN_LENGTH 2
+
+/* This target is buggy, and sets fix size too large. */
+#define TC_FX_SIZE_SLACK(FIX) 2