phaseXB = phaseX * pPix->drawable.bitsPerPixel / 8;
A(FillImageWriteRects)(ScrnInfoPtr pScrn, int rop, unsigned int planemask,			int nBox, BoxPtr pBox, int xorg, int yorg,			PixmapPtr pPix){    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);    int x, y, phaseY, phaseX, phaseXB, height, width, blit_w;    int pHeight = pPix->drawable.height;    int pWidth = pPix->drawable.width;    int depth = pPix->drawable.depth;    int bpp = pPix->drawable.bitsPerPixel;    unsigned char *pSrc;    int srcwidth = pPix->devKind;    while(nBox--) {	x = pBox->x1;	y = pBox->y1;	phaseY = (pBox->y1 - yorg) % pHeight;	if(phaseY < 0) phaseY += pHeight;	phaseX = (x - xorg) % pWidth;	pSrc = (unsigned char *)pPix->devPrivate.ptr +				    phaseX * pPix->drawable.bitsPerPixel / 8;	if(phaseX < 0) phaseX += pWidth;	height = pBox->y2 - pBox->y1;	width = pBox->x2 - x;		while(1) {	    int		ch = height, cp = phaseY, cy = y;	    blit_w = pWidth - phaseX;	    if(blit_w > width) blit_w = width;	    while (ch > 0) {		int	h = MIN(pHeight - cp, ch);		A(WritePixmap)(pScrn, x, cy, blit_w, h, pSrc + cp * srcwidth,				srcwidth, rop, planemask, FALSE, bpp, depth);		cy += h;		ch -= h;		cp = 0;	    }	    width -= blit_w;	    if(!width) break;	    x += blit_w;	    phaseX = (phaseX + blit_w) % pWidth;	    phaseXB = phaseX * pPix->drawable.bitsPerPixel / 8;	}	pBox++;    }    SET_SYNC_FLAG(infoRec);}