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:
parent
0ec5f38550
commit
a253992ad5
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue