aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorCatherine Moore <clm@redhat.com>2000-03-09 22:07:28 +0000
committerCatherine Moore <clm@redhat.com>2000-03-09 22:07:28 +0000
commit5c86cbc78f1a6d47fe6da87f2b1fc4db736744e4 (patch)
tree39da8a485f49ee9bc8d1250299ad1f3fdf9ca29f /gas
parentf1a6b754ab6c23051e6365b89dd9f89dfbfdf642 (diff)
downloadgdb-5c86cbc78f1a6d47fe6da87f2b1fc4db736744e4.zip
gdb-5c86cbc78f1a6d47fe6da87f2b1fc4db736744e4.tar.gz
gdb-5c86cbc78f1a6d47fe6da87f2b1fc4db736744e4.tar.bz2
* config/tc-m32r.c (m32r_fix_adjustable): Look up the
relocation type based on the entry in the fixup structure.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-m32r.c16
2 files changed, 19 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index e9607ba..d9840a1 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2000-03-09 Catherine Moore <clm@cygnus.com>
+
+ * config/tc-m32r.c (m32r_fix_adjustable): Look up the
+ relocation type based on the entry in the fixup structure.
+
2000-03-08 H.J. Lu (hjl@gnu.org)
* Makefile.am (install-exec-tooldir): Depend on
diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c
index f73f034..7745338 100644
--- a/gas/config/tc-m32r.c
+++ b/gas/config/tc-m32r.c
@@ -1887,6 +1887,18 @@ m32r_fix_adjustable (fixP)
fixS *fixP;
{
+ bfd_reloc_code_real_type reloc_type;
+
+ if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED)
+ {
+ const CGEN_INSN *insn = NULL;
+ int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED;
+ const CGEN_OPERAND *operand = cgen_operand_lookup_by_num(gas_cgen_cpu_desc, opindex);
+ reloc_type = md_cgen_lookup_reloc (insn, operand, fixP);
+ }
+ else
+ reloc_type = fixP->fx_r_type;
+
if (fixP->fx_addsy == NULL)
return 1;
@@ -1897,8 +1909,8 @@ m32r_fix_adjustable (fixP)
return 0;
/* We need the symbol name for the VTABLE entries */
- if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
- || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
+ if (reloc_type == BFD_RELOC_VTABLE_INHERIT
+ || reloc_type == BFD_RELOC_VTABLE_ENTRY)
return 0;
return 1;