summaryrefslogtreecommitdiff
path: root/MdePkg
diff options
context:
space:
mode:
authorHaojian Zhuang <haojian.zhuang@linaro.org>2015-10-27 11:56:57 +0000
committerleiflindholm <leiflindholm@Edk2>2015-10-27 11:56:57 +0000
commit7fe513896e16b560c5f1551e3f4bfffcb197b53b (patch)
tree2f55b334d181be1f067dd4e8d0997664986f7b5e /MdePkg
parent8a4582838b42e92d6d6429a7289b04e50ad084de (diff)
downloadedk2-7fe513896e16b560c5f1551e3f4bfffcb197b53b.zip
edk2-7fe513896e16b560c5f1551e3f4bfffcb197b53b.tar.gz
edk2-7fe513896e16b560c5f1551e3f4bfffcb197b53b.tar.bz2
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 <haojian.zhuang@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18685 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg')
-rw-r--r--MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S b/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S
index ecb87fc..9513b1a 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