1TEXT strcmp(SB), $-4 2 MOVW R0, R1 3 MOVW s2+4(FP), R2 4 5 MOVW $0xFF, R3 /* mask */ 6 7_align: /* align s1 on 4 */ 8 TST $3, R1 9 BEQ _aligned 10 11 MOVBU.P 1(R1), R4 /* implicit write back */ 12 MOVBU.P 1(R2), R8 /* implicit write back */ 13 SUB.S R8, R4, R0 14 BNE _return 15 CMP $0, R4 16 BEQ _return 17 B _align 18 19_aligned: /* is s2 now aligned? */ 20 TST $3, R2 21 BNE _unaligned 22 23_aloop: 24 MOVW.P 4(R1), R5 /* 4 at a time */ 25 MOVW.P 4(R2), R7 26 27 AND R5, R3, R4 28 AND R7, R3, R8 29 SUB.S R8, R4, R0 30 BNE _return 31 CMP $0, R4 32 BEQ _return 33 34 AND R5>>8, R3, R4 35 AND R7>>8, R3, R8 36 SUB.S R8, R4, R0 37 BNE _return 38 CMP $0, R4 39 BEQ _return 40 41 AND R5>>16, R3, R4 42 AND R7>>16, R3, R8 43 SUB.S R8, R4, R0 44 BNE _return 45 CMP $0, R4 46 BEQ _return 47 48 AND R5>>24, R3, R4 49 AND R7>>24, R3, R8 50 SUB.S R8, R4, R0 51 BNE _return 52 CMP $0, R4 53 BEQ _return 54 55 B _aloop 56 57_return: 58 RET 59 60_unaligned: 61 MOVBU.P 1(R1), R4 /* implicit write back */ 62 MOVBU.P 1(R2), R8 /* implicit write back */ 63 SUB.S R8, R4, R0 64 BNE _return 65 CMP $0, R4 66 BEQ _return 67 B _unaligned 68