From bddfd64ec2e94973d6372f90fe9a8a7b0f882e69 Mon Sep 17 00:00:00 2001 From: "Victor L. Do Nascimento" Date: Wed, 21 Dec 2022 11:27:01 +0000 Subject: [PATCH] newlib: libc: aeabi_memmove 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. --- newlib/libc/machine/arm/aeabi_memmove-thumb2.S | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/newlib/libc/machine/arm/aeabi_memmove-thumb2.S b/newlib/libc/machine/arm/aeabi_memmove-thumb2.S index e9504437b..20ca993e5 100644 --- a/newlib/libc/machine/arm/aeabi_memmove-thumb2.S +++ b/newlib/libc/machine/arm/aeabi_memmove-thumb2.S @@ -26,6 +26,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "arm_asm.h" + .thumb .syntax unified .global __aeabi_memmove @@ -33,8 +35,10 @@ ASM_ALIAS __aeabi_memmove4 __aeabi_memmove ASM_ALIAS __aeabi_memmove8 __aeabi_memmove __aeabi_memmove: + .fnstart + .cfi_startproc + prologue 4 cmp r0, r1 - push {r4} bls 3f adds r3, r1, r2 cmp r0, r3 @@ -48,9 +52,10 @@ __aeabi_memmove: strb r4, [r1, #-1]! bne 1b 2: - pop {r4} - bx lr + .cfi_remember_state + epilogue 4 3: + .cfi_restore_state cmp r2, #0 beq 2b add r2, r2, r1 @@ -60,6 +65,8 @@ __aeabi_memmove: cmp r2, r1 strb r4, [r3, #1]! bne 4b - pop {r4} - bx lr + epilogue 4 + .cfi_endproc + .cantunwind + .fnend .size __aeabi_memmove, . - __aeabi_memmove