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.
*/
#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