123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- #include <sysdep.h>
- .text
- .align 2
- .weak _strcmp
- ENTRY(_strcmp)
- [--sp] = (R7:4)
- p1 = r0
- p2 = r1
- p0 = -1
-
- r0 = r0 | r1
- r0 <<= 30
- cc = az
- if !cc jump .Lunaligned
-
-
-
- LSETUP (.Lbeginloop, .Lendloop) lc0=p0
-
- r1 = [p1++]
- r2 = [p2++]
-
- r7 = 0xFF
- r7.h = 0xFF
-
- cc = r1 == r2
- .Lbeginloop:
- if !cc jump .Lnotequal4
-
-
- r3 = r1 & r7
-
- r6 = r3 +|+ r0 || r2 = [p2++] || nop
- cc = az
- r3 = r1 ^ r3
-
-
- r6 = r3 +|+ r0 || r1 = [p1++] || nop
- cc |= az
- if cc jump .Lzero4
- .Lendloop:
- cc = r1 == r2
-
- .Lnotequal4:
-
-
- p1 += 4
- p2 += 4
- .Lzero4:
-
-
- p1 += -8
- p2 += -8
-
-
-
- .Lunaligned:
-
-
- r0 = 0 (Z)
- r1 = B[p1++] (Z)
- r2 = B[p2++] (Z)
- LSETUP (.Lbeginloop1, .Lendloop1) lc0=p0
- .Lbeginloop1:
- cc = r1
-
- r3 = r2 - r1 (NS) || r1 = B[p1++] (Z) || nop
- cc &= az
- r3 = r0 - r2
- cc &= an
- if !cc jump .Lexitloop1
- .Lendloop1:
- r2 = B[p2++] (Z)
- .Lexitloop1:
-
- r1=B[p1+ -2] (Z)
- r0 = r1 - r2
- (r7:4) = [sp++]
- rts
- .size _strcmp,.-_strcmp
- libc_hidden_def (strcmp)
- #ifndef __UCLIBC_HAS_LOCALE__
- weak_alias (strcmp,strcoll)
- libc_hidden_def (strcoll)
- #endif
|