summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2010-02-01 21:36:01 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2010-02-01 21:36:01 +0000
commit388deb9f2efd68220bfae703d529020766494f62 (patch)
treede444a098b0d2bb3d9ce2401301656bc9ce2b78f
parenta86874faf65b7b1138386e75d94344dc4644d9ee (diff)
Properly restore ret1 instead of overwriting ret0 with the saved value.
Fixes lazy binding for functions that return results larger than 64 bits (such as structs). ok miod@
-rw-r--r--libexec/ld.so/hppa/ldasm.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/libexec/ld.so/hppa/ldasm.S b/libexec/ld.so/hppa/ldasm.S
index 69827916c1e..87eb024ac6d 100644
--- a/libexec/ld.so/hppa/ldasm.S
+++ b/libexec/ld.so/hppa/ldasm.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: ldasm.S,v 1.5 2010/01/03 22:18:04 kettenis Exp $ */
+/* $OpenBSD: ldasm.S,v 1.6 2010/02/01 21:36:00 kettenis Exp $ */
/*
* Copyright (c) 2004 Michael Shalayeff
@@ -160,7 +160,7 @@ ENTRY(_dl_bind_start,32)
ldw HPPA_FRAME_ARG(3)(r3), arg3
ldw 4(r3), t1
ldw 8(r3), ret0
- ldw 12(r3), ret0
+ ldw 12(r3), ret1
ldw HPPA_FRAME_CRP(r3), rp
ldo HPPA_FRAME_SIZE(r3), sp