diff options
author | Catherine Moore <clm@redhat.com> | 2000-03-09 22:07:28 +0000 |
---|---|---|
committer | Catherine Moore <clm@redhat.com> | 2000-03-09 22:07:28 +0000 |
commit | 5c86cbc78f1a6d47fe6da87f2b1fc4db736744e4 (patch) | |
tree | 39da8a485f49ee9bc8d1250299ad1f3fdf9ca29f /gas | |
parent | f1a6b754ab6c23051e6365b89dd9f89dfbfdf642 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-m32r.c | 16 |
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; |