diff options
author | Ian Lance Taylor <ian@airs.com> | 1997-02-14 02:13:19 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1997-02-14 02:13:19 +0000 |
commit | 8696b2db7095e8387ef7ca145cd8541a6e9ee547 (patch) | |
tree | 92372b7be56ee759ec72473801c57c7482fbdf94 /bfd/evax-alpha.c | |
parent | 236969ac80acb286a7fff50a58e3c89d5b755c84 (diff) | |
download | gdb-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.c | 29 |
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; |