git: adb7f221a25e - stable/13 - arm64: Add a BTI landing pad to .mcount

From: Andrew Turner <andrew_at_FreeBSD.org>
Date: Mon, 19 Feb 2024 16:44:59 UTC
The branch stable/13 has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=adb7f221a25e466371e6b098dc6dd72b8f28f2c1

commit adb7f221a25e466371e6b098dc6dd72b8f28f2c1
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2023-10-16 14:34:19 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2024-02-19 12:41:50 +0000

    arm64: Add a BTI landing pad to .mcount
    
    The .mcount function needs a BTI branch target. As we can't rely on
    asm.h being included use the hint version of a "bti c" instruction.
    This is a nop when BTI is not supported or not used.
    
    Reviewed by:    markj
    Sponsored by:   Arm Ltd
    Differential Revision:  https://reviews.freebsd.org/D42230
    
    (cherry picked from commit 0590ed0967e025e1d155da9e06509f3fe9686feb)
---
 sys/arm64/include/profile.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sys/arm64/include/profile.h b/sys/arm64/include/profile.h
index 972d4ba42607..db119973f820 100644
--- a/sys/arm64/include/profile.h
+++ b/sys/arm64/include/profile.h
@@ -93,6 +93,8 @@ static void _mcount
 "	.globl	.mcount				\n"	\
 "	.mcount:				\n"	\
 "	.cfi_startproc				\n"	\
+	/* Allow this to work with BTI, see BTI_C in asm.h */ \
+"	hint	#34				\n"	\
 	/* Load the caller return address as frompc */	\
 "	ldr	x0, [x29, #8]			\n"	\
 	/* Use our return address as selfpc */		\