aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1999-07-06 23:50:45 +0000
committerJeff Law <law@redhat.com>1999-07-06 23:50:45 +0000
commit37afc161ab0fc07e7938428e88cbdb61922f483b (patch)
treefa9620ddb557c528caf0934e6b427a94313c7fb9 /bfd
parent54377754131774f7c0a14016932ba80a098c0941 (diff)
downloadfsf-binutils-gdb-37afc161ab0fc07e7938428e88cbdb61922f483b.zip
fsf-binutils-gdb-37afc161ab0fc07e7938428e88cbdb61922f483b.tar.gz
fsf-binutils-gdb-37afc161ab0fc07e7938428e88cbdb61922f483b.tar.bz2
* libhppa.h: Revert July 2, 1999 patch.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog2
-rw-r--r--bfd/libhppa.h15
2 files changed, 17 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a08291e..05c6de9 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 7fc52e4..05256a2 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),