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