Optimize epilogue sequence for architectures with POP interworking.

ARMv5 and above supports arm/thumb interworking using POP, so we can
improve the exit sequence in this case.
This commit is contained in:
Christos Gentsos 2019-10-07 14:38:14 +01:00 committed by Ken Brown
parent 0ec5f38550
commit a253992ad5
2 changed files with 12 additions and 0 deletions

View File

@ -26,6 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "acle-compat.h"
.thumb
.syntax unified
.global __aeabi_memmove
@ -49,9 +51,13 @@ __aeabi_memmove:
subs r3, r3, #1
bcs 1b
2:
#if __ARM_ARCH >= 5
pop {r4, pc}
#else
pop {r4}
pop {r1}
bx r1
#endif
3:
movs r3, #0
cmp r2, #0

View File

@ -26,6 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "acle-compat.h"
.thumb
.syntax unified
.global __aeabi_memset
@ -110,9 +112,13 @@ __aeabi_memset:
cmp r4, r3
bne 8b
9:
#if __ARM_ARCH >= 5
pop {r4, r5, r6, pc}
#else
pop {r4, r5, r6}
pop {r1}
bx r1
#endif
10:
movs r3, r0
movs r4, r1