From 7fe513896e16b560c5f1551e3f4bfffcb197b53b Mon Sep 17 00:00:00 2001 From: Haojian Zhuang Date: Tue, 27 Oct 2015 11:56:57 +0000 Subject: MdePkg/BaseSynchronizationLib: fix AArch64 return values Fix the wrong return value of both InternalSyncIncrement() and InternalSyncDecrement(). The return value shouldn't be the address of input parameter. It should be the updated value of input parameter instead. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Haojian Zhuang Reviewed-by: Ard Biesheuvel Reviewed-by: Leif Lindholm git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18685 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S | 2 ++ 1 file changed, 2 insertions(+) (limited to 'MdePkg/Library/BaseSynchronizationLib') diff --git a/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S b/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S index ecb87fc127..9513b1a1bb 100644 --- a/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S +++ b/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S @@ -171,6 +171,7 @@ TryInternalSyncIncrement: add w1, w1, #1 stxr w2, w1, [x0] cbnz w2, TryInternalSyncIncrement + mov w0, w1 dmb sy ret @@ -199,5 +200,6 @@ TryInternalSyncDecrement: sub w1, w1, #1 stxr w2, w1, [x0] cbnz w2, TryInternalSyncDecrement + mov w0, w1 dmb sy ret -- cgit v1.2.3