1*6ca8a7e3SDavid du ColombierTEXT strcmp(SB), $0 27dd7cddfSDavid du Colombier MOVW R0, R1 37dd7cddfSDavid du Colombier MOVW s2+4(FP), R2 47dd7cddfSDavid du Colombier 57dd7cddfSDavid du Colombier MOVW $0xFF, R3 /* mask */ 67dd7cddfSDavid du Colombier 77dd7cddfSDavid du Colombier_align: /* align s1 on 4 */ 87dd7cddfSDavid du Colombier TST $3, R1 97dd7cddfSDavid du Colombier BEQ _aligned 107dd7cddfSDavid du Colombier 117dd7cddfSDavid du Colombier MOVBU.P 1(R1), R4 /* implicit write back */ 127dd7cddfSDavid du Colombier MOVBU.P 1(R2), R8 /* implicit write back */ 137dd7cddfSDavid du Colombier SUB.S R8, R4, R0 147dd7cddfSDavid du Colombier BNE _return 157dd7cddfSDavid du Colombier CMP $0, R4 167dd7cddfSDavid du Colombier BEQ _return 177dd7cddfSDavid du Colombier B _align 187dd7cddfSDavid du Colombier 197dd7cddfSDavid du Colombier_aligned: /* is s2 now aligned? */ 207dd7cddfSDavid du Colombier TST $3, R2 217dd7cddfSDavid du Colombier BNE _unaligned 227dd7cddfSDavid du Colombier 237dd7cddfSDavid du Colombier_aloop: 247dd7cddfSDavid du Colombier MOVW.P 4(R1), R5 /* 4 at a time */ 2551480713SDavid du Colombier MOVW.P 4(R2), R7 267dd7cddfSDavid du Colombier 277dd7cddfSDavid du Colombier AND R5, R3, R4 2851480713SDavid du Colombier AND R7, R3, R8 297dd7cddfSDavid du Colombier SUB.S R8, R4, R0 307dd7cddfSDavid du Colombier BNE _return 317dd7cddfSDavid du Colombier CMP $0, R4 327dd7cddfSDavid du Colombier BEQ _return 337dd7cddfSDavid du Colombier 347dd7cddfSDavid du Colombier AND R5>>8, R3, R4 3551480713SDavid du Colombier AND R7>>8, R3, R8 367dd7cddfSDavid du Colombier SUB.S R8, R4, R0 377dd7cddfSDavid du Colombier BNE _return 387dd7cddfSDavid du Colombier CMP $0, R4 397dd7cddfSDavid du Colombier BEQ _return 407dd7cddfSDavid du Colombier 417dd7cddfSDavid du Colombier AND R5>>16, R3, R4 4251480713SDavid du Colombier AND R7>>16, R3, R8 437dd7cddfSDavid du Colombier SUB.S R8, R4, R0 447dd7cddfSDavid du Colombier BNE _return 457dd7cddfSDavid du Colombier CMP $0, R4 467dd7cddfSDavid du Colombier BEQ _return 477dd7cddfSDavid du Colombier 487dd7cddfSDavid du Colombier AND R5>>24, R3, R4 4951480713SDavid du Colombier AND R7>>24, R3, R8 507dd7cddfSDavid du Colombier SUB.S R8, R4, R0 517dd7cddfSDavid du Colombier BNE _return 527dd7cddfSDavid du Colombier CMP $0, R4 537dd7cddfSDavid du Colombier BEQ _return 547dd7cddfSDavid du Colombier 557dd7cddfSDavid du Colombier B _aloop 567dd7cddfSDavid du Colombier 577dd7cddfSDavid du Colombier_return: 587dd7cddfSDavid du Colombier RET 597dd7cddfSDavid du Colombier 607dd7cddfSDavid du Colombier_unaligned: 617dd7cddfSDavid du Colombier MOVBU.P 1(R1), R4 /* implicit write back */ 627dd7cddfSDavid du Colombier MOVBU.P 1(R2), R8 /* implicit write back */ 637dd7cddfSDavid du Colombier SUB.S R8, R4, R0 647dd7cddfSDavid du Colombier BNE _return 657dd7cddfSDavid du Colombier CMP $0, R4 667dd7cddfSDavid du Colombier BEQ _return 677dd7cddfSDavid du Colombier B _unaligned 68