summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libexec/rtld-elf/alpha/reloc.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/libexec/rtld-elf/alpha/reloc.c b/libexec/rtld-elf/alpha/reloc.c
index 1ec66ca..74aaf9c 100644
--- a/libexec/rtld-elf/alpha/reloc.c
+++ b/libexec/rtld-elf/alpha/reloc.c
@@ -58,13 +58,13 @@ extern Elf_Dyn _GOT_END_;
* We don't use these when relocating jump slots and GOT entries,
* since they are guaranteed to be aligned.
*/
-#define load64(p) ({ \
- Elf_Addr __res; \
- __asm__("ldq_u %0,%1" : "=r"(__res) : "m"(*(p))); \
- __res; })
-#define store64(p, v) \
- __asm__("stq_u %1,%0" : "=m"(*(p)) : "r"(v))
+struct ualong {
+ Elf_Addr x __attribute__((packed));
+};
+
+#define load64(p) (((struct ualong *)(p))->x)
+#define store64(p,v) (((struct ualong *)(p))->x = (v))
/* Relocate a non-PLT object with addend. */
static int
OpenPOWER on IntegriCloud