diff --git a/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S b/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S index 1a0eb971a6..dfcfc80d0c 100644 --- a/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S +++ b/MdePkg/Library/BaseSynchronizationLib/AArch64/Synchronization.S @@ -41,6 +41,7 @@ GCC_ASM_EXPORT(InternalSyncDecrement) // IN UINT16 ExchangeValue // ) ASM_PFX(InternalSyncCompareExchange16): + AARCH64_BTI(c) uxth w1, w1 uxth w2, w2 dmb sy @@ -84,6 +85,7 @@ InternalSyncCompareExchange16Fail: // IN UINT32 ExchangeValue // ) ASM_PFX(InternalSyncCompareExchange32): + AARCH64_BTI(c) dmb sy InternalSyncCompareExchange32Again: @@ -124,6 +126,7 @@ InternalSyncCompareExchange32Fail: // IN UINT64 ExchangeValue // ) ASM_PFX(InternalSyncCompareExchange64): + AARCH64_BTI(c) dmb sy InternalSyncCompareExchange64Again: @@ -159,6 +162,7 @@ InternalSyncCompareExchange64Fail: // IN volatile UINT32 *Value // ) ASM_PFX(InternalSyncIncrement): + AARCH64_BTI(c) dmb sy TryInternalSyncIncrement: ldxr w1, [x0] @@ -188,6 +192,7 @@ TryInternalSyncIncrement: // IN volatile UINT32 *Value // ) ASM_PFX(InternalSyncDecrement): + AARCH64_BTI(c) dmb sy TryInternalSyncDecrement: ldxr w1, [x0]