diff options
author | Ian Lance Taylor <ian@airs.com> | 1993-07-15 20:23:43 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1993-07-15 20:23:43 +0000 |
commit | 2368ec638a408324c68d012073523d4115135877 (patch) | |
tree | 6f2bc8d916d8939b87fc1adaacae31a46967ce95 /gas | |
parent | 6585e9e3474f6cc1e79f01f6b9d4a9fd47db1a3a (diff) | |
download | gdb-2368ec638a408324c68d012073523d4115135877.zip gdb-2368ec638a408324c68d012073523d4115135877.tar.gz gdb-2368ec638a408324c68d012073523d4115135877.tar.bz2 |
* config/obj-coffbfd.c (fixup_segment): If TC_M88K, don't adjust
by md_pcrel_from if we are relocating against a symbol (we still
need md_pcrel_from for a PC relative relocation within the same
file).
* config/tc-m88k.c (md_pcrel_from): Corrected return value.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/obj-coffbfd.c | 4 | ||||
-rw-r--r-- | gas/config/tc-m88k.c | 11 |
3 files changed, 20 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 8b331fd..f4d86ea 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,11 @@ Thu Jul 15 11:51:03 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + * config/obj-coffbfd.c (fixup_segment): If TC_M88K, don't adjust + by md_pcrel_from if we are relocating against a symbol (we still + need md_pcrel_from for a PC relative relocation within the same + file). + * config/tc-m88k.c (md_pcrel_from): Corrected return value. + * Preliminary support for m88k-coff. * configure.in (m88k-*-coff*): New target. Use coffbfd and m88kcoff. diff --git a/gas/config/obj-coffbfd.c b/gas/config/obj-coffbfd.c index 0496739..a54ed98 100644 --- a/gas/config/obj-coffbfd.c +++ b/gas/config/obj-coffbfd.c @@ -2529,7 +2529,11 @@ DEFUN (fixup_segment, (segP, this_segment_type), if (pcrel) { +#ifndef TC_M88K + /* This adjustment is not correct on the m88k, for which the + linker does all the computation. */ add_number -= md_pcrel_from (fixP); +#endif if (add_symbolP == 0) { fixP->fx_addsy = &abs_symbol; diff --git a/gas/config/tc-m88k.c b/gas/config/tc-m88k.c index 2178be3..5c8d602 100644 --- a/gas/config/tc-m88k.c +++ b/gas/config/tc-m88k.c @@ -1442,7 +1442,16 @@ long md_pcrel_from (fixp) fixS *fixp; { - return fixp->fx_frag->fr_address + fixp->fx_where + 4; + switch (fixp->fx_r_type) + { + case RELOC_PC16: + return fixp->fx_frag->fr_address + fixp->fx_where - 2; + case RELOC_PC26: + return fixp->fx_frag->fr_address + fixp->fx_where; + default: + abort (); + } + /*NOTREACHED*/ } #endif /* M88KCOFF */ |