aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-a29k.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/coff-a29k.c')
-rw-r--r--bfd/coff-a29k.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/bfd/coff-a29k.c b/bfd/coff-a29k.c
index 363be30..10fceaf 100644
--- a/bfd/coff-a29k.c
+++ b/bfd/coff-a29k.c
@@ -230,6 +230,19 @@ static reloc_howto_type howto_table[] =
#define BADMAG(x) A29KBADMAG(x)
+/* This macro translates an external r_type field into a pointer to an
+ entry in the above table */
+
+
+#define RTYPE2HOWTO(cache_ptr, dst) \
+ if (dst.r_type == R_IHCONST) { \
+ /* Add in the value which was stored in the symbol index */\
+ cache_ptr->addend += dst.r_symndx; \
+ /* Throw away the bogus symbol pointer */ \
+ cache_ptr->sym_ptr_ptr = 0; \
+ } \
+ cache_ptr->howto = howto_table + dst.r_type; \
+
#include "coffcode.h"
bfd_target a29kcoff_big_vec =