pxSqueege16(pxScreenPrivPtr sp, PixmapPtr pix, DrawablePtr pDst, pxPacketPtr pxp, int fx1, int fy1, int fx2, int fy2, int sx, int sy)
pxSqueege16(pxScreenPrivPtr sp, pxPacketPtr pxp, u_int8_t *bits, int stride, int fx1, int fy1, int fx2, int fy2, int sx, int sy, int fgFill)
pxSqueege16(pxScreenPrivPtr sp, PixmapPtr pix, DrawablePtr pDst,	    pxPacketPtr pxp, int fx1, int fy1, int fx2, int fy2,	    int sx, int sy){	int stride, xrot, rh, psy, lw, tw, stampw, stamphm, ya;	u_int16_t *p, *pbs, *pbsmax, *base;	u_int32_t *pb;	PX_TRACE("pxSqueege16");	stampw = sp->stampw;	stamphm = sp->stamphm;	sx += pix->drawable.x;	sy += pix->drawable.y;#ifdef PX_DEBUG	if (sx < 0 || sy < 0)		FatalError("pxSqueege16: bad co-ords (sx/sy)\n");	if (sx + (fx2 - fx1) > pix->drawable.width)		FatalError("pxSqueege16: bad co-ords (width)\n");	if (sy + (fy2 - fy1) > pix->drawable.height)		FatalError("pxSqueege16: bad co-ords (height)\n");#endif	stride = pix->devKind;	base = (u_int16_t *)((u_int8_t *)pix->devPrivate.ptr +	    ((sx >> 3) & ~1) + (sy * stride));	rh = fy2 - fy1;	lw = (rh << 2) - 1;	psy = (fy1 << 3) + lw;	ya = YMASKADDR(stamphm, fy1, 0);	for (xrot = sx & 15; fx1 < fx2; xrot = 0, fx1 += tw) {		pb = pxPacketAddPrim(sp, pxp);		pbs = (u_int16_t *)pb;		pbsmax = pbs + rh;		for (p = base++; pbs < pbsmax; pbs++) {			*pbs = *p;			p = (u_int16_t *)((u_int8_t *)p + stride);		}		tw = min(16 - xrot, fx2 - fx1);		pb[8] = ya | (XMASKADDR(stampw, fx1, xrot) << 16);		pb[9] = (fx1 << 19) | psy;		pb[10] = ((fx1 + tw) << 19) | psy;		pb[11] = lw;	}}