newlib: libc: aeabi_memset M-profile PACBTI-enablement

Add function prologue/epilogue to conditionally add BTI landing pads
and/or PAC code generation & authentication instructions depending on
compilation flags.
This commit is contained in:
Victor L. Do Nascimento 2022-12-21 11:28:01 +00:00 committed by Richard Earnshaw
parent bddfd64ec2
commit adc36ede11
1 changed files with 11 additions and 3 deletions

View File

@ -26,14 +26,18 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include "arm_asm.h"
.thumb .thumb
.syntax unified .syntax unified
.global __aeabi_memset .global __aeabi_memset
.type __aeabi_memset, %function .type __aeabi_memset, %function
.fnstart
.cfi_startproc
ASM_ALIAS __aeabi_memset4 __aeabi_memset ASM_ALIAS __aeabi_memset4 __aeabi_memset
ASM_ALIAS __aeabi_memset8 __aeabi_memset ASM_ALIAS __aeabi_memset8 __aeabi_memset
__aeabi_memset: __aeabi_memset:
push {r4, r5, r6} prologue 4 6
lsls r4, r0, #30 lsls r4, r0, #30
beq 10f beq 10f
subs r4, r1, #1 subs r4, r1, #1
@ -98,10 +102,14 @@ __aeabi_memset:
cmp r3, r4 cmp r3, r4
bne 8b bne 8b
9: 9:
pop {r4, r5, r6} .cfi_remember_state
bx lr epilogue 4 6
10: 10:
.cfi_restore_state
mov r4, r1 mov r4, r1
mov r3, r0 mov r3, r0
b 3b b 3b
.cfi_endproc
.cantunwind
.fnend
.size __aeabi_memset, . - __aeabi_memset .size __aeabi_memset, . - __aeabi_memset