1 TEXT strchr(SB), $0 2 3MOVW R7, 0(FP) 4 MOVB c+7(FP), R10 5 MOVW s+0(FP), R9 6 7 SUBCC R0,R10, R0 8 BE l2 9 10/* 11 * char is not null 12 */ 13l1: 14 MOVB (R9), R7 15 ADD $1, R9 16 SUBCC R0,R7, R0 17 BE ret 18 SUBCC R7,R10, R0 19 BNE l1 20 JMP rm1 21 22/* 23 * char is null 24 * align to word 25 */ 26l2: 27 ANDCC $3,R9, R0 28 BE l3 29 MOVB (R9), R7 30 ADD $1, R9 31 SUBCC R0,R7, R0 32 BNE l2 33 JMP rm1 34 35/* 36 * develop byte masks 37 */ 38l3: 39 MOVW $0xff, R17 40 SLL $8,R17, R16 41 SLL $16,R17, R13 42 SLL $24,R17, R12 43 44l4: 45 MOVW (R9), R11 46 ADD $4, R9 47 ANDCC R12,R11, R0 48 BE b0 49 ANDCC R13,R11, R0 50 BE b1 51 ANDCC R16,R11, R0 52 BE b2 53 ANDCC R17,R11, R0 54 BNE l4 55 56rm1: 57 SUB $1,R9, R7 58 JMP ret 59 60b2: 61 SUB $2,R9, R7 62 JMP ret 63 64b1: 65 SUB $3,R9, R7 66 JMP ret 67 68b0: 69 SUB $4,R9, R7 70 JMP ret 71 72ret: 73 RETURN 74