The outline atomic functions have hidden visibility and can only be called
directly. Therefore we can remove the BTI at function entry. This improves
security by reducing the number of indirect entry points in a binary.
The BTI markings on the objects are still emitted.
libgcc/ChangeLog:
* config/aarch64/lse.S (BTI_C): Remove define.
* direct branch. The choice of LSE vs non-LSE is done via one byte load
* followed by a well-predicted direct branch. The functions are compiled
* separately to minimize code size.
+ *
+ * Since these functions have hidden visibility and are never called
+ * indirectly, they do not need to start with a BTI instruction.
*/
#include "auto-target.h"
#define tmp1 17
#define tmp2 15
-#define BTI_C hint 34
-
/* Start and end a function. */
.macro STARTFN name
.text
.type \name, %function
.cfi_startproc
\name:
- BTI_C
.endm
.macro ENDFN name