diff options
Diffstat (limited to 'ports/sysdeps/arm/strlen.S')
-rw-r--r-- | ports/sysdeps/arm/strlen.S | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ports/sysdeps/arm/strlen.S b/ports/sysdeps/arm/strlen.S index fef62cff47..7d358a7249 100644 --- a/ports/sysdeps/arm/strlen.S +++ b/ports/sysdeps/arm/strlen.S @@ -30,7 +30,8 @@ ENTRY(strlen) bic r1, r0, $3 @ addr of word containing first byte - ldr r2, [r1], $4 @ get the first word + sfi_breg r1, \ + ldr r2, [\B], $4 @ get the first word ands r3, r0, $3 @ how many bytes are duff? rsb r0, r3, $0 @ get - that number into counter. beq Laligned @ skip into main check routine if no @@ -54,7 +55,8 @@ Laligned: @ here, we have a word in r2. Does it tstne r2, $0x00ff0000 @ tstne r2, $0xff000000 @ addne r0, r0, $4 @ if not, the string is 4 bytes longer - ldrne r2, [r1], $4 @ and we continue to the next word + sfi_breg r1, \ + ldrne r2, [\B], $4 @ and we continue to the next word bne Laligned @ Llastword: @ drop through to here once we find a #ifdef __ARMEB__ |