1*37da2899SCharles.Forsyth TEXT memmove(SB), $0 2*37da2899SCharles.Forsyth TEXT memcpy(SB), $0 3*37da2899SCharles.Forsyth 4*37da2899SCharles.Forsyth MOVL p1+0(FP), DI 5*37da2899SCharles.Forsyth MOVL p2+4(FP), SI 6*37da2899SCharles.Forsyth MOVL n+8(FP), BX 7*37da2899SCharles.Forsyth CMPL BX, $0 8*37da2899SCharles.Forsyth JGE ok 9*37da2899SCharles.Forsyth MOVL $0, SI 10*37da2899SCharles.Forsythok: 11*37da2899SCharles.Forsyth CLD 12*37da2899SCharles.Forsyth/* 13*37da2899SCharles.Forsyth * check and set for backwards 14*37da2899SCharles.Forsyth */ 15*37da2899SCharles.Forsyth CMPL SI, DI 16*37da2899SCharles.Forsyth JLS back 17*37da2899SCharles.Forsyth/* 18*37da2899SCharles.Forsyth * copy whole longs 19*37da2899SCharles.Forsyth */ 20*37da2899SCharles.Forsyth MOVL BX, CX 21*37da2899SCharles.Forsyth SHRL $2, CX 22*37da2899SCharles.Forsyth REP; MOVSL 23*37da2899SCharles.Forsyth/* 24*37da2899SCharles.Forsyth * copy the rest, by bytes 25*37da2899SCharles.Forsyth */ 26*37da2899SCharles.Forsyth ANDL $3, BX 27*37da2899SCharles.Forsyth MOVL BX, CX 28*37da2899SCharles.Forsyth REP; MOVSB 29*37da2899SCharles.Forsyth 30*37da2899SCharles.Forsyth MOVL p+0(FP),AX 31*37da2899SCharles.Forsyth RET 32*37da2899SCharles.Forsyth/* 33*37da2899SCharles.Forsyth * whole thing backwards has 34*37da2899SCharles.Forsyth * adjusted addresses 35*37da2899SCharles.Forsyth */ 36*37da2899SCharles.Forsythback: 37*37da2899SCharles.Forsyth ADDL BX, DI 38*37da2899SCharles.Forsyth ADDL BX, SI 39*37da2899SCharles.Forsyth SUBL $4, DI 40*37da2899SCharles.Forsyth SUBL $4, SI 41*37da2899SCharles.Forsyth STD 42*37da2899SCharles.Forsyth/* 43*37da2899SCharles.Forsyth * copy whole longs 44*37da2899SCharles.Forsyth */ 45*37da2899SCharles.Forsyth MOVL BX, CX 46*37da2899SCharles.Forsyth SHRL $2, CX 47*37da2899SCharles.Forsyth ANDL $3, BX 48*37da2899SCharles.Forsyth REP; MOVSL 49*37da2899SCharles.Forsyth/* 50*37da2899SCharles.Forsyth * copy the rest, by bytes 51*37da2899SCharles.Forsyth */ 52*37da2899SCharles.Forsyth ADDL $3, DI 53*37da2899SCharles.Forsyth ADDL $3, SI 54*37da2899SCharles.Forsyth MOVL BX, CX 55*37da2899SCharles.Forsyth REP; MOVSB 56*37da2899SCharles.Forsyth 57*37da2899SCharles.Forsyth MOVL p+0(FP),AX 58*37da2899SCharles.Forsyth RET 59