aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1994-04-01 17:44:29 +0000
committerIan Lance Taylor <ian@airs.com>1994-04-01 17:44:29 +0000
commit69a010f69cde712c369a9bbf982e248f669d3645 (patch)
treed129e9001838d6328c46f1bbd50ac17ecc1e4233 /bfd
parent5051b6f29000d53a4d17a3248fa748e9138a57f7 (diff)
downloadgdb-69a010f69cde712c369a9bbf982e248f669d3645.zip
gdb-69a010f69cde712c369a9bbf982e248f669d3645.tar.gz
gdb-69a010f69cde712c369a9bbf982e248f669d3645.tar.bz2
* coff-a29k.c (a29k_reloc): Add reloc_entry->address to value of
absolute R_IREL reloc.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/coff-a29k.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/coff-a29k.c b/bfd/coff-a29k.c
index 9084a40..1016b21 100644
--- a/bfd/coff-a29k.c
+++ b/bfd/coff-a29k.c
@@ -126,9 +126,10 @@ a29k_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
signed_value = SIGN_EXTEND_HWORD(signed_value);
signed_value <<= 2;
signed_value += sym_value + reloc_entry->addend;
- if ((signed_value&~0x3ffff) == 0)
+ if (((signed_value + reloc_entry->address) & ~0x3ffff) == 0)
{ /* Absolute jmp/call */
insn |= (1<<24); /* Make it absolute */
+ signed_value += reloc_entry->address;
/* FIXME: Should we change r_type to R_IABS */
}
else