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