mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-19 04:49:25 +08:00
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…
x
Reference in New Issue
Block a user