From: Ard Biesheuvel Date: Sat, 25 Mar 2023 16:37:55 +0000 (+0100) Subject: MdePkg/BaseSynchronizationLib AARCH64: Make asm files BTI compatible X-Git-Tag: edk2-stable202305~226 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=35318c2eb9ad3747f70cdee0714893e282ca51b0;p=ovmf.git MdePkg/BaseSynchronizationLib AARCH64: Make asm files BTI compatible Add the BTI instructions and the associated note to make the AArch64 asm objects compatible with BTI enforcement. Signed-off-by: Ard Biesheuvel Reviewed-by: Leif Lindholm Reviewed-by: Oliver Smith-Denny --- 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]