diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2010-02-01 21:36:01 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2010-02-01 21:36:01 +0000 |
commit | 388deb9f2efd68220bfae703d529020766494f62 (patch) | |
tree | de444a098b0d2bb3d9ce2401301656bc9ce2b78f | |
parent | a86874faf65b7b1138386e75d94344dc4644d9ee (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.S | 4 |
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 |