summaryrefslogtreecommitdiff
path: root/libc/string/avr32/strlen.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/string/avr32/strlen.S')
-rw-r--r--libc/string/avr32/strlen.S90
1 files changed, 45 insertions, 45 deletions
diff --git a/libc/string/avr32/strlen.S b/libc/string/avr32/strlen.S
index d2808998d..5223e5365 100644
--- a/libc/string/avr32/strlen.S
+++ b/libc/string/avr32/strlen.S
@@ -10,53 +10,53 @@
#define str r12
- .text
- .global strlen
- .type strlen, @function
+ .text
+ .global strlen
+ .type strlen, @function
strlen:
- mov r11, r12
-
- mov r9, str
- andl r9, 3, COH
- brne .Lunaligned_str
-
-1: ld.w r8, str++
- tnbz r8
- brne 1b
-
- sub r12, r11
- bfextu r9, r8, 24, 8
- cp.w r9, 0
- subeq r12, 4
- reteq r12
- bfextu r9, r8, 16, 8
- cp.w r9, 0
- subeq r12, 3
- reteq r12
- bfextu r9, r8, 8, 8
- cp.w r9, 0
- subeq r12, 2
- reteq r12
- sub r12, 1
- retal r12
+ mov r11, r12
+
+ mov r9, str
+ andl r9, 3, COH
+ brne .Lunaligned_str
+
+1: ld.w r8, str++
+ tnbz r8
+ brne 1b
+
+ sub r12, r11
+ bfextu r9, r8, 24, 8
+ cp.w r9, 0
+ subeq r12, 4
+ reteq r12
+ bfextu r9, r8, 16, 8
+ cp.w r9, 0
+ subeq r12, 3
+ reteq r12
+ bfextu r9, r8, 8, 8
+ cp.w r9, 0
+ subeq r12, 2
+ reteq r12
+ sub r12, 1
+ retal r12
.Lunaligned_str:
- add pc, pc, r9 << 3
- sub r0, r0, 0 /* 4-byte nop */
- ld.ub r8, str++
- sub r8, r8, 0
- breq 1f
- ld.ub r8, str++
- sub r8, r8, 0
- breq 1f
- ld.ub r8, str++
- sub r8, r8, 0
- brne 1b
-
-1: sub r12, 1
- sub r12, r11
- retal r12
-
- .size strlen, . - strlen
+ add pc, pc, r9 << 3
+ sub r0, r0, 0 /* 4-byte nop */
+ ld.ub r8, str++
+ sub r8, r8, 0
+ breq 1f
+ ld.ub r8, str++
+ sub r8, r8, 0
+ breq 1f
+ ld.ub r8, str++
+ sub r8, r8, 0
+ brne 1b
+
+1: sub r12, 1
+ sub r12, r11
+ retal r12
+
+ .size strlen, . - strlen
libc_hidden_def(strlen)