diff options
author | Jeff Law <law@redhat.com> | 1999-07-06 23:50:45 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1999-07-06 23:50:45 +0000 |
commit | 1c8d39bf440f671cff9c7f234d1a09a38b7f2229 (patch) | |
tree | 57a08677b16fd2bf86910206990274788fc1ee1f | |
parent | b4b26d74cb48ceba80c4c249d7ecf364ca22287a (diff) | |
download | gdb-1c8d39bf440f671cff9c7f234d1a09a38b7f2229.tar.gz |
* libhppa.h: Revert July 2, 1999 patch.
-rw-r--r-- | bfd/ChangeLog | 2 | ||||
-rw-r--r-- | bfd/libhppa.h | 15 |
2 files changed, 17 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a08291e3f3e..05c6de9cc0c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,7 @@ Tue Jul 6 10:23:39 1999 Jeffrey A Law (law@cygnus.com) + * libhppa.h: Revert July 2, 1999 patch. + * elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors need to generate DLTIND relocations, not DLTREL relocations. diff --git a/bfd/libhppa.h b/bfd/libhppa.h index 7fc52e46b79..05256a201db 100644 --- a/bfd/libhppa.h +++ b/bfd/libhppa.h @@ -177,6 +177,21 @@ enum hppa_reloc_expr_type_alt }; +/* Relocations for function calls must be accompanied by parameter + relocation bits. These bits describe exactly where the caller has + placed the function's arguments and where it expects to find a return + value. + + Both ELF and SOM encode this information within the addend field + of the call relocation. (Note this could break very badly if one + was to make a call like bl foo + 0x12345678). + + The high order 10 bits contain parameter relocation information, + the low order 22 bits contain the constant offset. */ + +#define HPPA_R_ARG_RELOC(a) (((a) >> 22) & 0x3FF) +#define HPPA_R_CONSTANT(a) ((((int)(a)) << 10) >> 10) +#define HPPA_R_ADDEND(r,c) (((r) << 22) + ((c) & 0x3FFFFF)) #define HPPA_WIDE (0) /* PSW W-bit, need to check! FIXME */ /* These macros get bit fields using HP's numbering (MSB = 0), |