diff options
Diffstat (limited to 'libc/string/avr32/strcmp.S')
-rw-r--r-- | libc/string/avr32/strcmp.S | 124 |
1 files changed, 62 insertions, 62 deletions
diff --git a/libc/string/avr32/strcmp.S b/libc/string/avr32/strcmp.S index e9f087577..f73bd43e7 100644 --- a/libc/string/avr32/strcmp.S +++ b/libc/string/avr32/strcmp.S @@ -12,77 +12,77 @@ #define s2 r11 #define len r10 - .text - .global strcmp - .type strcmp, @function - .align 1 + .text + .global strcmp + .type strcmp, @function + .align 1 strcmp: - mov r8, 3 - tst s1, r8 - brne .Lunaligned_s1 - tst s2, r8 - brne .Lunaligned_s2 + mov r8, 3 + tst s1, r8 + brne .Lunaligned_s1 + tst s2, r8 + brne .Lunaligned_s2 -1: ld.w r8, s1++ - ld.w r9, s2++ - cp.w r8, r9 - brne 2f - tnbz r8 - brne 1b - retal 0 +1: ld.w r8, s1++ + ld.w r9, s2++ + cp.w r8, r9 + brne 2f + tnbz r8 + brne 1b + retal 0 -2: bfextu r12, r8, 24, 8 - bfextu r11, r9, 24, 8 - sub r12, r11 - retne r12 - cp.w r11, 0 - reteq 0 - bfextu r12, r8, 16, 8 - bfextu r11, r9, 16, 8 - sub r12, r11 - retne r12 - cp.w r11, 0 - reteq 0 - bfextu r12, r8, 8, 8 - bfextu r11, r9, 8, 8 - sub r12, r11 - retne r12 - cp.w r11, 0 - reteq 0 - bfextu r12, r8, 0, 8 - bfextu r11, r9, 0, 8 - sub r12, r11 - retal r12 +2: bfextu r12, r8, 24, 8 + bfextu r11, r9, 24, 8 + sub r12, r11 + retne r12 + cp.w r11, 0 + reteq 0 + bfextu r12, r8, 16, 8 + bfextu r11, r9, 16, 8 + sub r12, r11 + retne r12 + cp.w r11, 0 + reteq 0 + bfextu r12, r8, 8, 8 + bfextu r11, r9, 8, 8 + sub r12, r11 + retne r12 + cp.w r11, 0 + reteq 0 + bfextu r12, r8, 0, 8 + bfextu r11, r9, 0, 8 + sub r12, r11 + retal r12 .Lunaligned_s1: -3: tst s1, r8 - breq 4f - ld.ub r10, s1++ - ld.ub r9, s2++ - sub r10, r9 - retne r10 - cp.w r9, 0 - brne 3b - retal r10 +3: tst s1, r8 + breq 4f + ld.ub r10, s1++ + ld.ub r9, s2++ + sub r10, r9 + retne r10 + cp.w r9, 0 + brne 3b + retal r10 -4: tst s2, r8 - breq 1b +4: tst s2, r8 + breq 1b .Lunaligned_s2: - /* - * s1 and s2 can't both be aligned, and unaligned word loads - * can trigger spurious exceptions if we cross a page boundary. - * Do it the slow way... - */ -1: ld.ub r8, s1++ - ld.ub r9, s2++ - sub r8, r9 - retne r8 - cp.w r9, 0 - brne 1b - retal 0 + /* + * s1 and s2 can't both be aligned, and unaligned word loads + * can trigger spurious exceptions if we cross a page boundary. + * Do it the slow way... + */ +1: ld.ub r8, s1++ + ld.ub r9, s2++ + sub r8, r9 + retne r8 + cp.w r9, 0 + brne 1b + retal 0 - .size strcmp, . - strcmp + .size strcmp, . - strcmp libc_hidden_def(strcmp) #ifndef __UCLIBC_HAS_LOCALE__ |