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:
parent
60a50c2846
commit
bddfd64ec2
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue