1*272efad7SDavid du Colombier TEXT memset(SB),$0 2*272efad7SDavid du Colombier 3*272efad7SDavid du Colombier CLD 4*272efad7SDavid du Colombier MOVQ RARG, DI 5*272efad7SDavid du Colombier MOVBLZX c+8(FP), AX 6*272efad7SDavid du Colombier MOVL n+16(FP), BX 7*272efad7SDavid du Colombier/* 8*272efad7SDavid du Colombier * if not enough bytes, just set bytes 9*272efad7SDavid du Colombier */ 10*272efad7SDavid du Colombier CMPL BX, $9 11*272efad7SDavid du Colombier JLS c3 12*272efad7SDavid du Colombier/* 13*272efad7SDavid du Colombier * if not aligned, just set bytes 14*272efad7SDavid du Colombier */ 15*272efad7SDavid du Colombier MOVQ RARG, CX 16*272efad7SDavid du Colombier ANDL $3,CX 17*272efad7SDavid du Colombier JNE c3 18*272efad7SDavid du Colombier/* 19*272efad7SDavid du Colombier * build word in AX 20*272efad7SDavid du Colombier */ 21*272efad7SDavid du Colombier MOVB AL, AH 22*272efad7SDavid du Colombier MOVL AX, CX 23*272efad7SDavid du Colombier SHLL $16, CX 24*272efad7SDavid du Colombier ORL CX, AX 25*272efad7SDavid du Colombier/* 26*272efad7SDavid du Colombier * set whole longs 27*272efad7SDavid du Colombier */ 28*272efad7SDavid du Colombierc1: 29*272efad7SDavid du Colombier MOVQ BX, CX 30*272efad7SDavid du Colombier SHRQ $2, CX 31*272efad7SDavid du Colombier ANDL $3, BX 32*272efad7SDavid du Colombier REP; STOSL 33*272efad7SDavid du Colombier/* 34*272efad7SDavid du Colombier * set the rest, by bytes 35*272efad7SDavid du Colombier */ 36*272efad7SDavid du Colombierc3: 37*272efad7SDavid du Colombier MOVL BX, CX 38*272efad7SDavid du Colombier REP; STOSB 39*272efad7SDavid du Colombierret: 40*272efad7SDavid du Colombier MOVQ RARG,AX 41*272efad7SDavid du Colombier RET 42