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