diff options
Diffstat (limited to 'ports/sysdeps/arm/memcpy.S')
-rw-r--r-- | ports/sysdeps/arm/memcpy.S | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/ports/sysdeps/arm/memcpy.S b/ports/sysdeps/arm/memcpy.S index c8f5535140..eb9699ddf6 100644 --- a/ports/sysdeps/arm/memcpy.S +++ b/ports/sysdeps/arm/memcpy.S @@ -53,6 +53,7 @@ #endif .text + .syntax unified /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */ @@ -84,7 +85,7 @@ ENTRY(memcpy) CALGN( ands ip, r1, #31 ) CALGN( rsb r3, ip, #32 ) - CALGN( sbcnes r4, r3, r2 ) @ C is always set here + CALGN( sbcsne r4, r3, r2 ) @ C is always set here CALGN( bcs 2f ) CALGN( adr r4, 6f ) CALGN( subs r2, r2, r3 ) @ C gets set @@ -139,12 +140,12 @@ ENTRY(memcpy) cfi_restore (r8) 8: movs r2, r2, lsl #31 - ldrneb r3, [r1], #1 - ldrcsb r4, [r1], #1 - ldrcsb ip, [r1] - strneb r3, [r0], #1 - strcsb r4, [r0], #1 - strcsb ip, [r0] + ldrbne r3, [r1], #1 + ldrbcs r4, [r1], #1 + ldrbcs ip, [r1] + strbne r3, [r0], #1 + strbcs r4, [r0], #1 + strbcs ip, [r0] #if defined (__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__) pop {r0, r4, lr} @@ -160,11 +161,11 @@ ENTRY(memcpy) 9: rsb ip, ip, #4 cmp ip, #2 - ldrgtb r3, [r1], #1 - ldrgeb r4, [r1], #1 + ldrbgt r3, [r1], #1 + ldrbge r4, [r1], #1 ldrb lr, [r1], #1 - strgtb r3, [r0], #1 - strgeb r4, [r0], #1 + strbgt r3, [r0], #1 + strbge r4, [r0], #1 subs r2, r2, ip strb lr, [r0], #1 blt 8b @@ -185,7 +186,7 @@ ENTRY(memcpy) CALGN( ands ip, r1, #31 ) CALGN( rsb ip, ip, #32 ) - CALGN( sbcnes r4, ip, r2 ) @ C is always set here + CALGN( sbcsne r4, ip, r2 ) @ C is always set here CALGN( subcc r2, r2, ip ) CALGN( bcc 15f ) |