aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-m88k.c
diff options
context:
space:
mode:
authorSteve Chamberlain <sac@cygnus>1991-11-27 16:56:08 +0000
committerSteve Chamberlain <sac@cygnus>1991-11-27 16:56:08 +0000
commit3b4f1a5d05c9dc94e6708eecaf9ed8dc9832a48a (patch)
tree4de7774dea8c7c38bf75cc4fce2aa22ffa5a2118 /bfd/coff-m88k.c
parenta33336a38e3ef7c5bee3d79d7d258ebd7788b87a (diff)
downloadgdb-3b4f1a5d05c9dc94e6708eecaf9ed8dc9832a48a.zip
gdb-3b4f1a5d05c9dc94e6708eecaf9ed8dc9832a48a.tar.gz
gdb-3b4f1a5d05c9dc94e6708eecaf9ed8dc9832a48a.tar.bz2
* Makefile.in: added coff-h8300
* configure.in: now h8 is a coff target * cpu-h8300.c: fix various disassembly problems * libcoff.h: took out some code which has been #0ed for a long time. * targets.c: added h8 coff * coff-a29k.c, coff-i386.c, coff-i960.c, coff-m68k.c, coff-m88k.c added new macro RTYPE2HOWTO to take a load of #ifdefs out of coffcode.h * coffcode.h: Started to change the way machine dependencies are handled, from the nest of #ifdefs to macros defined in the including coff-<foo>.c
Diffstat (limited to 'bfd/coff-m88k.c')
-rw-r--r--bfd/coff-m88k.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/bfd/coff-m88k.c b/bfd/coff-m88k.c
index d4c10bf..896e74c 100644
--- a/bfd/coff-m88k.c
+++ b/bfd/coff-m88k.c
@@ -81,6 +81,23 @@ static reloc_howto_type howto_table[] =
};
+/* Code to swap in the reloc offset */
+#define SWAP_IN_RELOC_OFFSET bfd_h_get_16
+#define SWAP_OUT_RELOC_OFFSET bfd_h_put_16
+
+
+/* Code to turn an external r_type into a pointer to an entry in the
+ above howto table */
+#define RTYPE2HOWTO(cache_ptr, dst) \
+ if (dst.r_type >= R_PCR16L && dst.r_type <= R_VRT32) { \
+ cache_ptr->howto = howto_table + dst.r_type - R_PCR16L; \
+ cache_ptr->addend += dst.r_offset << 16; \
+ } \
+ else { \
+ BFD_ASSERT(0); \
+ }
+
+
#define BADMAG(x) MC88BADMAG(x)
#include "coffcode.h"
@@ -89,7 +106,7 @@ static reloc_howto_type howto_table[] =
bfd_target m88kbcs_vec =
{
- "m88kbcs", /* name */
+ "coff-m88kbcs", /* name */
bfd_target_coff_flavour,
true, /* data byte order is big */
true, /* header byte order is big */