1*219b2ee8SDavid du Colombier TEXT memcmp(SB),$0 2*219b2ee8SDavid du Colombier 3*219b2ee8SDavid du Colombier MOVL n+8(FP), BX 4*219b2ee8SDavid du Colombier CMPL BX, $0 5*219b2ee8SDavid du Colombier JEQ none 6*219b2ee8SDavid du Colombier MOVL p1+0(FP), DI 7*219b2ee8SDavid du Colombier MOVL p2+4(FP), SI 8*219b2ee8SDavid du Colombier CLD 9*219b2ee8SDavid du Colombier/* 10*219b2ee8SDavid du Colombier * first by longs 11*219b2ee8SDavid du Colombier */ 12*219b2ee8SDavid du Colombier 13*219b2ee8SDavid du Colombier MOVL BX, CX 14*219b2ee8SDavid du Colombier SHRL $2, CX 15*219b2ee8SDavid du Colombier 16*219b2ee8SDavid du Colombier REP; CMPSL 17*219b2ee8SDavid du Colombier JNE found 18*219b2ee8SDavid du Colombier 19*219b2ee8SDavid du Colombier/* 20*219b2ee8SDavid du Colombier * then by bytes 21*219b2ee8SDavid du Colombier */ 22*219b2ee8SDavid du Colombier ANDL $3, BX 23*219b2ee8SDavid du Colombier MOVL BX, CX 24*219b2ee8SDavid du Colombier REP; CMPSB 25*219b2ee8SDavid du Colombier JNE found1 26*219b2ee8SDavid du Colombier 27*219b2ee8SDavid du Colombiernone: 28*219b2ee8SDavid du Colombier MOVL $0, AX 29*219b2ee8SDavid du Colombier RET 30*219b2ee8SDavid du Colombier 31*219b2ee8SDavid du Colombier/* 32*219b2ee8SDavid du Colombier * if long found, 33*219b2ee8SDavid du Colombier * back up and look by bytes 34*219b2ee8SDavid du Colombier */ 35*219b2ee8SDavid du Colombierfound: 36*219b2ee8SDavid du Colombier MOVL $4, CX 37*219b2ee8SDavid du Colombier SUBL CX, DI 38*219b2ee8SDavid du Colombier SUBL CX, SI 39*219b2ee8SDavid du Colombier REP; CMPSB 40*219b2ee8SDavid du Colombier 41*219b2ee8SDavid du Colombierfound1: 42*219b2ee8SDavid du Colombier JLS lt 43*219b2ee8SDavid du Colombier MOVL $-1, AX 44*219b2ee8SDavid du Colombier RET 45*219b2ee8SDavid du Colombierlt: 46*219b2ee8SDavid du Colombier MOVL $1, AX 47*219b2ee8SDavid du Colombier RET 48