]> xenbits.xensource.com Git - ovmf.git/commitdiff
MdePkg/BaseMemoryLibOptDxe AARCH64: Make asm files BTI compatible
authorArd Biesheuvel <ardb@kernel.org>
Sat, 25 Mar 2023 16:37:30 +0000 (17:37 +0100)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 30 Mar 2023 11:05:22 +0000 (11:05 +0000)
Add the BTI instructions and the associated note to make the AArch64 asm
objects compatible with BTI enforcement.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CompareGuid.S
MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CompareMem.S
MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CopyMem.S
MdePkg/Library/BaseMemoryLibOptDxe/AArch64/ScanMem.S
MdePkg/Library/BaseMemoryLibOptDxe/AArch64/SetMem.S

index b7a566fdafacc8a6d2e9cf81ea190cc34a7d8506..7f058e94b3b7023a91f9585d52df0bfd5dc32913 100644 (file)
@@ -8,6 +8,7 @@
     .align  5\r
 ASM_GLOBAL ASM_PFX(InternalMemCompareGuid)\r
 ASM_PFX(InternalMemCompareGuid):\r
+    AARCH64_BTI(c)\r
     mov     x2, xzr\r
     ldp     x3, x4, [x0]\r
     cbz     x1, 0f\r
index ffe4b7a0b058cc85e2aa56286e345dcb23a725aa..707e06b0505a19cdfade798cda6e900420a47b49 100644 (file)
@@ -32,6 +32,7 @@
     .p2align 6\r
 ASM_GLOBAL ASM_PFX(InternalMemCompareMem)\r
 ASM_PFX(InternalMemCompareMem):\r
+    AARCH64_BTI(c)\r
     eor     tmp1, src1, src2\r
     tst     tmp1, #7\r
     b.ne    .Lmisaligned8\r
index 9fad6d1f267c1bcf7be590ba602a6ca55229a764..59a6593d96cae9076c3c461377e180984c3e4f70 100644 (file)
@@ -178,6 +178,7 @@ L(copy_long):
 \r
 ASM_GLOBAL ASM_PFX(InternalMemCopyMem)\r
 ASM_PFX(InternalMemCopyMem):\r
+    AARCH64_BTI(c)\r
     sub     tmp2, dstin, src\r
     cmp     count, 96\r
     ccmp    tmp2, count, 2, hi\r
index 8673b76eca857b8eb4a0ec128fa7b863ade19f7d..55aaf89f56b43fad37d1f38c148d21b6d85174de 100644 (file)
@@ -45,6 +45,7 @@
 \r
 ASM_GLOBAL ASM_PFX(InternalMemScanMem8)\r
 ASM_PFX(InternalMemScanMem8):\r
+    AARCH64_BTI(c)\r
     // Do not dereference srcin if no bytes to compare.\r
     cbz  cntin, .Lzero_length\r
     //\r
index f9748405592057f02c427ec182711f1c753acced..b5618bf09d8bae2fc37ffe1ab4048a1fe6b7015a 100644 (file)
 \r
 ASM_GLOBAL ASM_PFX(InternalMemSetMem16)\r
 ASM_PFX(InternalMemSetMem16):\r
+    AARCH64_BTI(c)\r
     dup     v0.8H, valw\r
     lsl     count, count, #1\r
     b       0f\r
 \r
 ASM_GLOBAL ASM_PFX(InternalMemSetMem32)\r
 ASM_PFX(InternalMemSetMem32):\r
+    AARCH64_BTI(c)\r
     dup     v0.4S, valw\r
     lsl     count, count, #2\r
     b       0f\r
 \r
 ASM_GLOBAL ASM_PFX(InternalMemSetMem64)\r
 ASM_PFX(InternalMemSetMem64):\r
+    AARCH64_BTI(c)\r
     dup     v0.2D, val\r
     lsl     count, count, #3\r
     b       0f\r
 \r
 ASM_GLOBAL ASM_PFX(InternalMemZeroMem)\r
 ASM_PFX(InternalMemZeroMem):\r
+    AARCH64_BTI(c)\r
     movi    v0.16B, #0\r
     b       0f\r
 \r
 ASM_GLOBAL ASM_PFX(InternalMemSetMem)\r
 ASM_PFX(InternalMemSetMem):\r
+    AARCH64_BTI(c)\r
     dup     v0.16B, valw\r
 0:  add     dstend, dstin, count\r
     mov     val, v0.D[0]\r