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.
This commit is contained in:
Victor L. Do Nascimento 2022-12-21 11:27:01 +00:00 committed by Richard Earnshaw
parent 60a50c2846
commit bddfd64ec2
1 changed files with 12 additions and 5 deletions

View File

@ -26,6 +26,8 @@
* 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_memmove .global __aeabi_memmove
@ -33,8 +35,10 @@
ASM_ALIAS __aeabi_memmove4 __aeabi_memmove ASM_ALIAS __aeabi_memmove4 __aeabi_memmove
ASM_ALIAS __aeabi_memmove8 __aeabi_memmove ASM_ALIAS __aeabi_memmove8 __aeabi_memmove
__aeabi_memmove: __aeabi_memmove:
.fnstart
.cfi_startproc
prologue 4
cmp r0, r1 cmp r0, r1
push {r4}
bls 3f bls 3f
adds r3, r1, r2 adds r3, r1, r2
cmp r0, r3 cmp r0, r3
@ -48,9 +52,10 @@ __aeabi_memmove:
strb r4, [r1, #-1]! strb r4, [r1, #-1]!
bne 1b bne 1b
2: 2:
pop {r4} .cfi_remember_state
bx lr epilogue 4
3: 3:
.cfi_restore_state
cmp r2, #0 cmp r2, #0
beq 2b beq 2b
add r2, r2, r1 add r2, r2, r1
@ -60,6 +65,8 @@ __aeabi_memmove:
cmp r2, r1 cmp r2, r1
strb r4, [r3, #1]! strb r4, [r3, #1]!
bne 4b bne 4b
pop {r4} epilogue 4
bx lr .cfi_endproc
.cantunwind
.fnend
.size __aeabi_memmove, . - __aeabi_memmove .size __aeabi_memmove, . - __aeabi_memmove