aboutsummaryrefslogtreecommitdiff
path: root/bfd/evax-alpha.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1997-02-14 02:13:19 +0000
committerIan Lance Taylor <ian@airs.com>1997-02-14 02:13:19 +0000
commit8696b2db7095e8387ef7ca145cd8541a6e9ee547 (patch)
tree92372b7be56ee759ec72473801c57c7482fbdf94 /bfd/evax-alpha.c
parent236969ac80acb286a7fff50a58e3c89d5b755c84 (diff)
downloadgdb-8696b2db7095e8387ef7ca145cd8541a6e9ee547.zip
gdb-8696b2db7095e8387ef7ca145cd8541a6e9ee547.tar.gz
gdb-8696b2db7095e8387ef7ca145cd8541a6e9ee547.tar.bz2
Thu Feb 13 20:53:22 1997 Klaus Kaempf (kkaempf@progis.de)
* reloc.c (BFD_RELOC_ALPHA_CODEADDR): New relocation for openVMS/Alpha. * evax.h (ALPHA_R_CODEADDR): New relocation. * evax-alpha.c (ALPHA_R_CODEADDR): 64 bit procedure relocation for openVMS/Alpha. * evax-etir.c (ALPHA_R_CODEADDR): Output object code for this relocation. * bfd-in2.h, libbfd.h: Rebuild. Restrict symbol length to 64 bytes, case preserving: * evax-emh.c (_bfd_evax_write_emh): Remove case hacking. * evax-misc.c (_bfd_evax_case_hack_symbol): Remove. (_bfd_evax_length_hash_symbol): Added. * evax-etir.c (_bfd_evax_write_etir): Call _bfd_evax_length_hash_symbol before output of symbol. * evax-egsd.c (_bfd_evax_write_egsd): Likewise. * evax.h (flag_hash_long_names, flag_show_after_trunc): Remove. * evax-emh.c: Output filename to object file without path. * evax-egsd.c: New sections for local and global commons. * evax-alpha.c, evax-emh.c, evax-egsd.c, evax-etir.c, evax-misc.c, evax.h: Remove 8 bit characters from copyright notices. Replace AXP with Alpha.
Diffstat (limited to 'bfd/evax-alpha.c')
-rw-r--r--bfd/evax-alpha.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/bfd/evax-alpha.c b/bfd/evax-alpha.c
index a13ae6e..f48e84c 100644
--- a/bfd/evax-alpha.c
+++ b/bfd/evax-alpha.c
@@ -1,6 +1,6 @@
-/* evax-alpha.c -- BFD back-end for ALPHA EVAX (openVMS/AXP) files.
- Copyright 1996 Free Software Foundation, Inc.
- Written by Klaus Kämpf (kkaempf@progis.de)
+/* evax-alpha.c -- BFD back-end for ALPHA EVAX (openVMS/Alpha) files.
+ Copyright 1996, 1997 Free Software Foundation, Inc.
+ Written by Klaus K"ampf (kkaempf@progis.de)
of proGIS Softwareentwicklung, Aachen, Germany
This program is free software; you can redistribute it and/or modify
@@ -1506,6 +1506,21 @@ static reloc_howto_type alpha_howto_table[] =
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
+ /* A 64 bit reference to a procedure, written as 32 bit value. */
+ HOWTO (ALPHA_R_CODEADDR, /* type */
+ 0, /* rightshift */
+ 4, /* size (0 = byte, 1 = short, 2 = long) */
+ 64, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_signed,/* complain_on_overflow */
+ reloc_nil, /* special_function */
+ "CODEADDR", /* name */
+ false, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ false), /* pcrel_offset */
+
};
/* Return a pointer to a howto structure which, when invoked, will perform
@@ -1534,13 +1549,7 @@ evax_bfd_reloc_type_lookup (abfd, code)
case BFD_RELOC_32_PCREL: alpha_type = ALPHA_R_SREL32; break;
case BFD_RELOC_64_PCREL: alpha_type = ALPHA_R_SREL64; break;
case BFD_RELOC_ALPHA_LINKAGE: alpha_type = ALPHA_R_LINKAGE; break;
-#if 0
- case ???: alpha_type = ALPHA_R_OP_PUSH; break;
- case ???: alpha_type = ALPHA_R_OP_STORE; break;
- case ???: alpha_type = ALPHA_R_OP_PSUB; break;
- case ???: alpha_type = ALPHA_R_OP_PRSHIFT;break;
- case ???: alpha_type = ALPHA_R_GPVALUE; break;
-#endif
+ case BFD_RELOC_ALPHA_CODEADDR: alpha_type = ALPHA_R_CODEADDR; break;
default:
(*_bfd_error_handler) ("reloc (%d) is *UNKNOWN*", code);
return (const struct reloc_howto_struct *) NULL;