xserver: Branch 'master' - 3 commits

Adam Jackson ajax at kemper.freedesktop.org
Fri Apr 11 06:58:52 PDT 2008


 .gitignore                            |    1 
 Makefile.am                           |    9 
 cfb/Makefile.am                       |   21 
 cfb/Makefile.am.inc                   |  153 ---
 cfb/cfb.h                             | 1268 ---------------------------
 cfb/cfb16.h                           |   93 --
 cfb/cfb24.h                           |   97 --
 cfb/cfb32.h                           |   93 --
 cfb/cfb8bit.c                         |  469 ----------
 cfb/cfb8bit.h                         | 1570 ----------------------------------
 cfb/cfb8line.c                        | 1503 --------------------------------
 cfb/cfballpriv.c                      |   70 -
 cfb/cfbbitblt.c                       | 1455 -------------------------------
 cfb/cfbblt.c                          |  933 --------------------
 cfb/cfbbres.c                         |  340 -------
 cfb/cfbbresd.c                        |  404 --------
 cfb/cfbcmap.c                         |  119 --
 cfb/cfbcppl.c                         |  486 ----------
 cfb/cfbfillarc.c                      |  374 --------
 cfb/cfbfillrct.c                      |  305 ------
 cfb/cfbfillsp.c                       | 1004 ---------------------
 cfb/cfbgc.c                           |  799 -----------------
 cfb/cfbgetsp.c                        |  213 ----
 cfb/cfbglblt8.c                       |  477 ----------
 cfb/cfbhrzvert.c                      |  554 -----------
 cfb/cfbigblt8.c                       |  106 --
 cfb/cfbimage.c                        |  206 ----
 cfb/cfbline.c                         |  756 ----------------
 cfb/cfbmap.h                          |  210 ----
 cfb/cfbmskbits.c                      | 1400 ------------------------------
 cfb/cfbmskbits.h                      |  854 ------------------
 cfb/cfbpixmap.c                       |  375 --------
 cfb/cfbply1rct.c                      |  363 -------
 cfb/cfbpolypnt.c                      |  202 ----
 cfb/cfbpush8.c                        |  184 ---
 cfb/cfbrctstp8.c                      |  593 ------------
 cfb/cfbrrop.c                         |  227 ----
 cfb/cfbrrop.h                         |  343 -------
 cfb/cfbscrinit.c                      |  223 ----
 cfb/cfbsetsp.c                        |  316 ------
 cfb/cfbsolid.c                        | 1365 -----------------------------
 cfb/cfbteblt8.c                       |  589 ------------
 cfb/cfbtegblt.c                       |  218 ----
 cfb/cfbtile32.c                       |  517 -----------
 cfb/cfbtileodd.c                      | 1245 --------------------------
 cfb/cfbunmap.h                        |  161 ---
 cfb/cfbwindow.c                       |  160 ---
 cfb/cfbzerarc.c                       |  322 ------
 cfb/stip68kgnu.h                      |  121 --
 cfb/stipmips.s                        |  281 ------
 cfb/stipsparc.s                       |  290 ------
 cfb/stipsprc32.s                      |  291 ------
 cfb32/Makefile.am                     |    9 
 configure.ac                          |   12 
 hw/xfree86/Makefile.am                |    8 
 hw/xfree86/dixmods/Makefile.am        |   13 
 hw/xfree86/dixmods/cfb32module.c      |   57 -
 hw/xfree86/dixmods/cfbmodule.c        |   57 -
 hw/xfree86/dixmods/extmod/Makefile.am |    1 
 hw/xfree86/xf8_32bpp/Makefile.am      |   37 
 hw/xfree86/xf8_32bpp/cfb8_32.h        |  191 ----
 hw/xfree86/xf8_32bpp/cfb8_32module.c  |   39 
 hw/xfree86/xf8_32bpp/cfbcpyarea.c     |  549 -----------
 hw/xfree86/xf8_32bpp/cfbcpyplane.c    |   41 
 hw/xfree86/xf8_32bpp/cfbgc.c          |  646 -------------
 hw/xfree86/xf8_32bpp/cfbgcmisc.c      |  150 ---
 hw/xfree86/xf8_32bpp/cfbgcunder.c     |  620 -------------
 hw/xfree86/xf8_32bpp/cfbimage.c       |  174 ---
 hw/xfree86/xf8_32bpp/cfbpntwin.c      |   51 -
 hw/xfree86/xf8_32bpp/cfbscrinit.c     |  311 ------
 hw/xfree86/xf8_32bpp/cfbwindow.c      |  116 --
 hw/xfree86/xf8_32bpp/xf86overlay.c    | 1179 -------------------------
 72 files changed, 6 insertions(+), 28983 deletions(-)

New commits:
commit eabcfce0a68d504d11be9479f09e66f574dd2f21
Author: Adam Jackson <ajax at redhat.com>
Date:   Fri Apr 11 09:51:26 2008 -0400

    Stop building mfb/afb/xf1bpp by default.

diff --git a/configure.ac b/configure.ac
index 4e83a42..f0cfb1b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -574,8 +574,8 @@ AC_ARG_ENABLE(xgl,            AS_HELP_STRING([--enable-xgl], [Build Xgl server (
 AC_ARG_ENABLE(xglx,           AS_HELP_STRING([--enable-xglx], [Build Xglx xgl module (default: no)]), [XGLX=$enableval], [XGLX=no])
 AC_ARG_ENABLE(xegl,           AS_HELP_STRING([--enable-xegl], [Build Xegl xgl module (default: no)]), [XEGL=$enableval], [XEGL=no])
 dnl legacy fb support
-AC_ARG_ENABLE(mfb,            AS_HELP_STRING([--enable-mfb], [Build legacy mono framebuffer support (default: enabled)]), [MFB=$enableval], [MFB=$XORG])
-AC_ARG_ENABLE(afb,            AS_HELP_STRING([--enable-afb], [Build legacy advanced framebuffer support (default: enabled)]), [AFB=$enableval], [AFB=$XORG])
+AC_ARG_ENABLE(mfb,            AS_HELP_STRING([--enable-mfb], [Build legacy mono framebuffer support (default: disable)]), [MFB=$enableval], [MFB=no])
+AC_ARG_ENABLE(afb,            AS_HELP_STRING([--enable-afb], [Build legacy advanced framebuffer support (default: disable)]), [AFB=$enableval], [AFB=no])
 dnl kdrive and its subsystems
 AC_ARG_ENABLE(kdrive,         AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
 AC_ARG_ENABLE(xephyr,         AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
commit 0dab6fa3582b70ccd0f01459902415c28dbc81ff
Author: Adam Jackson <ajax at redhat.com>
Date:   Fri Apr 11 09:47:51 2008 -0400

    So long, and thanks for all the cfb.

diff --git a/Makefile.am b/Makefile.am
index 71ba2c4..d2e10ac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,11 +9,6 @@ if XTRAP
 XTRAP_DIR=XTrap
 endif
 
-if CFB
-CFB_DIR=cfb
-CFB32_DIR=cfb32
-endif
-
 if AFB
 AFB_DIR=afb
 endif
@@ -50,8 +45,6 @@ SUBDIRS = \
 	$(DBE_DIR) \
 	$(MFB_DIR) \
 	$(AFB_DIR) \
-	$(CFB_DIR) \
-	$(CFB32_DIR) \
 	$(RECORD_DIR) \
 	xfixes \
 	damageext \
@@ -96,8 +89,6 @@ DIST_SUBDIRS = \
 	dbe \
 	mfb \
 	afb \
-	cfb \
-	cfb32 \
 	record \
 	xfixes \
 	damageext \
diff --git a/cfb/Makefile.am b/cfb/Makefile.am
deleted file mode 100644
index 901fc95..0000000
--- a/cfb/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
-noinst_LTLIBRARIES = libcfb.la
-
-include Makefile.am.inc
-
-DISTCLEANFILES += cfbglrop8.c
-
-libcfb_la_SOURCES = cfb8bit.c cfbteblt8.c cfbglrop8.c cfbpush8.c cfbrctstp8.c \
-                    $(libcfb_gen_sources) $(libcfb_common_sources)
-
-libcfb_la_LIBADD = ../mfb/libmfb.la
-
-AM_CFLAGS = -DPSZ=8 $(DIX_CFLAGS) $(PLATFORMDEFS)
-
-INCLUDES = $(CFB_INCLUDES) -I$(top_srcdir)/hw/xfree86/os-support  -I$(top_srcdir)/hw/xfree86/common
-
-EXTRA_DIST = cfbline.c cfbfillarc.c cfbzerarc.c cfbblt.c cfbsolid.c \
-             cfbtileodd.c cfbtile32.c cfb8line.c cfbply1rct.c cfbglblt8.c \
-	     cfb16.h cfb24.h cfb32.h cfb8bit.h cfbrrop.h \
-	     stip68kgnu.h stipmips.s stipsparc.s stipsprc32.s
-
-sdk_HEADERS = cfb.h cfb32.h cfb16.h cfbmap.h cfbunmap.h cfbmskbits.h
diff --git a/cfb/Makefile.am.inc b/cfb/Makefile.am.inc
deleted file mode 100644
index a2ee143..0000000
--- a/cfb/Makefile.am.inc
+++ /dev/null
@@ -1,153 +0,0 @@
-libcfb_gen_sources = cfbseg.c cfbfillarcC.c cfbfillarcG.c cfbzerarcC.c cfbzerarcX.c cfbzerarcG.c \
-	cfbbltC.c cfbbltX.c cfbbltO.c cfbbltG.c cfbsolidC.c cfbsolidX.c cfbsolidG.c cfbtileoddC.c \
-	cfbtileoddG.c cfbtile32C.c cfbtile32G.c cfb8lineCO.c cfb8lineCP.c cfb8lineX.c cfb8lineG.c \
-	cfb8segCS.c cfb8segC.c cfb8segX.c cfb8setG.c cfbply1rctC.c cfbply1rctG.c
-
-DISTCLEANFILES = $(libcfb_gen_sources)
-
-CFB_INCLUDES = -I$(top_srcdir)/mfb -I$(top_srcdir)/cfb
-
-libcfb_common_sources =  $(top_srcdir)/cfb/cfbgc.c $(top_srcdir)/cfb/cfbrrop.c \
-	$(top_srcdir)/cfb/cfbwindow.c \
-	$(top_srcdir)/cfb/cfbmskbits.c $(top_srcdir)/cfb/cfbpixmap.c \
-	$(top_srcdir)/cfb/cfbbitblt.c $(top_srcdir)/cfb/cfbfillsp.c \
-	$(top_srcdir)/cfb/cfbsetsp.c $(top_srcdir)/cfb/cfbscrinit.c \
-	$(top_srcdir)/cfb/cfballpriv.c $(top_srcdir)/cfb/cfbgetsp.c \
-	$(top_srcdir)/cfb/cfbfillrct.c $(top_srcdir)/cfb/cfbigblt8.c \
-	$(top_srcdir)/cfb/cfbglblt8.c $(top_srcdir)/cfb/cfbtegblt.c \
-	$(top_srcdir)/cfb/cfbpolypnt.c \
-	$(top_srcdir)/cfb/cfbbres.c $(top_srcdir)/cfb/cfbline.c \
-	$(top_srcdir)/cfb/cfbhrzvert.c $(top_srcdir)/cfb/cfbbresd.c \
-	$(top_srcdir)/cfb/cfbimage.c $(top_srcdir)/cfb/cfbcppl.c \
-	$(top_srcdir)/cfb/cfbcmap.c
-
-cfbseg.c:
-	echo "#define POLYSEGMENT" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbline.c\"" >> $@
-
-cfbfillarcC.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbfillarc.c\"" >> $@
-
-cfbfillarcG.c:
-	echo "#define RROP GXset" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbfillarc.c\"" >> $@
-
-cfbzerarcC.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbzerarc.c\"" >> $@
-
-cfbzerarcX.c:
-	echo "#define RROP GXxor" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbzerarc.c\"" >> $@
-
-cfbzerarcG.c:
-	echo "#define RROP GXset" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbzerarc.c\"" >> $@
-
-cfbbltC.c:
-	echo "#define MROP Mcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbblt.c\"" >> $@
-
-cfbbltX.c:
-	echo "#define MROP Mxor" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbblt.c\"" >> $@
-
-cfbbltO.c:
-	echo "#define MROP Mor" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbblt.c\"" >> $@
-
-cfbbltG.c:
-	echo "#define MROP 0" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbblt.c\"" >> $@
-
-cfbsolidC.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbsolid.c\"" >> $@
-
-cfbsolidX.c:
-	echo "#define RROP GXxor" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbsolid.c\"" >> $@
-
-cfbsolidG.c:
-	echo "#define RROP GXset" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbsolid.c\"" >> $@
-
-cfbtileoddC.c:
-	echo "#define MROP Mcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbtileodd.c\"" >> $@
-
-cfbtileoddG.c:
-	echo "#define MROP 0" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbtileodd.c\"" >> $@
-
-cfbtile32C.c:
-	echo "#define MROP Mcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbtile32.c\"" >> $@
-
-cfbtile32G.c:
-	echo "#define MROP 0" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbtile32.c\"" >> $@
-
-cfb8lineCO.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfb8lineCP.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#define PREVIOUS" >> $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfb8lineX.c:
-	echo "#define RROP GXxor" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfb8lineG.c:
-	echo "#define RROP GXset" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfb8segCS.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#define POLYSEGMENT" >> $@
-	echo "#define WIDTH_SHIFT" >> $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfb8segC.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#define POLYSEGMENT" >> $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfb8segX.c:
-	echo "#define RROP GXxor" > $@
-	echo "#define POLYSEGMENT" >> $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfb8setG.c:
-	echo "#define RROP GXset" > $@
-	echo "#define POLYSEGMENT" >> $@
-	echo "#include \"$(top_srcdir)/cfb/cfb8line.c\"" >> $@
-
-cfbply1rctC.c:
-	echo "#define RROP GXcopy" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbply1rct.c\"" >> $@
-
-cfbply1rctG.c:
-	echo "#define RROP GXset" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbply1rct.c\"" >> $@
-
-cfbglrop8.c:
-	echo "#define GLYPHROP" > $@
-	echo "#include \"$(top_srcdir)/cfb/cfbglblt8.c\"" >> $@
-
-
-if XPRINT
-
-PLATFORMDEFS = -DXFREE86
-
-cfb8bit.o:   compiler.h
-
-compiler.h:
-	echo "#include \"$(top_srcdir)/hw/xfree86/common/compiler.h\"" >> $@
-
-endif
-
diff --git a/cfb/cfb.h b/cfb/cfb.h
deleted file mode 100644
index aece133..0000000
--- a/cfb/cfb.h
+++ /dev/null
@@ -1,1268 +0,0 @@
-/************************************************************
-Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
-
-                    All Rights Reserved
-
-Permission  to  use,  copy,  modify,  and  distribute   this
-software  and  its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright no-
-tice  appear  in all copies and that both that copyright no-
-tice and this permission notice appear in  supporting  docu-
-mentation,  and  that the names of Sun or The Open Group
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and The Open Group make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
-implied warranty.
-
-SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
-NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
-ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
-PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#if !defined(__CFB_H__) || defined(CFB_PROTOTYPES_ONLY)
-
-#include <X11/X.h>
-#include "globals.h"
-#include "pixmap.h"
-#include "region.h"
-#include "gc.h"
-#include "colormap.h"
-#include "miscstruct.h"
-#include "servermd.h"
-#include "privates.h"
-#include "windowstr.h"
-#include "mfb.h"
-#undef PixelType
-
-#include "cfbmap.h"
-
-#ifndef CfbBits
-#define CfbBits CARD32
-#endif
-
-#ifndef CFB_PROTOTYPES_ONLY
-#define __CFB_H__
-/*
-   private filed of pixmap
-   pixmap.devPrivate = (unsigned int *)pointer_to_bits
-   pixmap.devKind = width_of_pixmap_in_bytes
-*/
-
-extern DevPrivateKey cfbGCPrivateKey;
-
-/* private field of GC */
-typedef struct {
-    unsigned char       rop;            /* special case rop values */
-    /* next two values unused in cfb, included for compatibility with mfb */
-    unsigned char       ropOpStip;      /* rop for opaque stipple */
-    /* this value is ropFillArea in mfb, usurped for cfb */
-    unsigned char       oneRect;	/*  drawable has one clip rect */
-    CfbBits	xor, and;	/* reduced rop values */
-    } cfbPrivGC;
-
-typedef cfbPrivGC	*cfbPrivGCPtr;
-
-#define cfbGetGCPrivate(pGC)	((cfbPrivGCPtr)\
-    dixLookupPrivate(&(pGC)->devPrivates, cfbGCPrivateKey))
-
-#define cfbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
-
-/* way to carry RROP info around */
-typedef struct {
-    unsigned char	rop;
-    CfbBits	xor, and;
-} cfbRRopRec, *cfbRRopPtr;
-
-/* cfb8bit.c */
-
-extern int cfbSetStipple(
-    int /*alu*/,
-    CfbBits /*fg*/,
-    CfbBits /*planemask*/
-);
-
-extern int cfbSetOpaqueStipple(
-    int /*alu*/,
-    CfbBits /*fg*/,
-    CfbBits /*bg*/,
-    CfbBits /*planemask*/
-);
-
-extern int cfbComputeClipMasks32(
-    BoxPtr /*pBox*/,
-    int /*numRects*/,
-    int /*x*/,
-    int /*y*/,
-    int /*w*/,
-    int /*h*/,
-    CARD32 * /*clips*/
-);
-#endif /* !CFB_PROTOTYPES_ONLY */
-/* cfb8cppl.c */
-
-extern void cfbCopyImagePlane(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    int /*rop*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/
-);
-
-#ifndef CFB_PROTOTYPES_ONLY
-extern void cfbCopyPlane8to1(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    int /*rop*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/,
-    unsigned long /*bitPlane*/
-);
-
-extern void cfbCopyPlane16to1(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    int /*rop*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/,
-    unsigned long /*bitPlane*/
-);
-
-extern void cfbCopyPlane24to1(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    int /*rop*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/,
-    unsigned long /*bitPlane*/
-);
-
-extern void cfbCopyPlane32to1(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    int /*rop*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/,
-    unsigned long /*bitPlane*/
-);
-#endif
-
-/* cfb8lineCO.c */
-
-extern int cfb8LineSS1RectCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    DDXPointPtr /*pptInit*/,
-    DDXPointPtr /*pptInitOrig*/,
-    int * /*x1p*/,
-    int * /*y1p*/,
-    int * /*x2p*/,
-    int * /*y2p*/
-);
-
-extern void cfb8LineSS1Rect(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    DDXPointPtr /*pptInit*/
-);
-
-extern void cfb8ClippedLineCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*x1*/,
-    int /*y1*/,
-    int /*x2*/,
-    int /*y2*/,
-    BoxPtr /*boxp*/,
-    Bool /*shorten*/
-);
-/* cfb8lineCP.c */
-
-extern int cfb8LineSS1RectPreviousCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    DDXPointPtr /*pptInit*/,
-    DDXPointPtr /*pptInitOrig*/,
-    int * /*x1p*/,
-    int * /*y1p*/,
-    int * /*x2p*/,
-    int * /*y2p*/
-);
-/* cfb8lineG.c */
-
-extern int cfb8LineSS1RectGeneral(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    DDXPointPtr /*pptInit*/,
-    DDXPointPtr /*pptInitOrig*/,
-    int * /*x1p*/,
-    int * /*y1p*/,
-    int * /*x2p*/,
-    int * /*y2p*/
-);
-
-extern void cfb8ClippedLineGeneral(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*x1*/,
-    int /*y1*/,
-    int /*x2*/,
-    int /*y2*/,
-    BoxPtr /*boxp*/,
-    Bool /*shorten*/
-);
-/* cfb8lineX.c */
-
-extern int cfb8LineSS1RectXor(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    DDXPointPtr /*pptInit*/,
-    DDXPointPtr /*pptInitOrig*/,
-    int * /*x1p*/,
-    int * /*y1p*/,
-    int * /*x2p*/,
-    int * /*y2p*/
-);
-
-extern void cfb8ClippedLineXor(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*x1*/,
-    int /*y1*/,
-    int /*x2*/,
-    int /*y2*/,
-    BoxPtr /*boxp*/,
-    Bool /*shorten*/
-);
-/* cfb8segC.c */
-
-extern int cfb8SegmentSS1RectCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nseg*/,
-    xSegment * /*pSegInit*/
-);
-/* cfb8segCS.c */
-
-extern int cfb8SegmentSS1RectShiftCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nseg*/,
-    xSegment * /*pSegInit*/
-);
-
-extern void cfb8SegmentSS1Rect(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nseg*/,
-    xSegment * /*pSegInit*/
-);
-/* cfb8segG.c */
-
-extern int cfb8SegmentSS1RectGeneral(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nseg*/,
-    xSegment * /*pSegInit*/
-);
-/* cfbsegX.c */
-
-extern int cfb8SegmentSS1RectXor(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nseg*/,
-    xSegment * /*pSegInit*/
-);
-/* cfballpriv.c */
-
-extern Bool cfbAllocatePrivates(
-    ScreenPtr /*pScreen*/,
-    DevPrivateKey * /*gc_key*/
-);
-/* cfbbitblt.c */
-
-extern RegionPtr cfbBitBlt(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    GCPtr/*pGC*/,
-    int /*srcx*/,
-    int /*srcy*/,
-    int /*width*/,
-    int /*height*/,
-    int /*dstx*/,
-    int /*dsty*/,
-    void (* /*doBitBlt*/)(
-	DrawablePtr /*pSrc*/,
-	DrawablePtr /*pDst*/,
-	int /*alu*/,
-	RegionPtr /*prgnDst*/,
-	DDXPointPtr /*pptSrc*/,
-	unsigned long /*planemask*/
-	),
-    unsigned long /*bitPlane*/
-);
-
-#define cfbCopyPlaneExpand cfbBitBlt
-
-extern RegionPtr cfbCopyPlaneReduce(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    GCPtr /*pGC*/,
-    int /*srcx*/,
-    int /*srcy*/,
-    int /*width*/,
-    int /*height*/,
-    int /*dstx*/,
-    int /*dsty*/,
-    void (* /*doCopyPlane*/)(
-	DrawablePtr /*pSrc*/,
-	DrawablePtr /*pDst*/,
-	int /*alu*/,
-	RegionPtr /*prgnDst*/,
-	DDXPointPtr /*pptSrc*/,
-	unsigned long /*planemask*/,
-	unsigned long /*bitPlane*/ /* We must know which plane to reduce! */
-	),
-    unsigned long /*bitPlane*/
-);
-
-extern void cfbDoBitblt(
-    DrawablePtr /*pSrc*/,
-    DrawablePtr /*pDst*/,
-    int /*alu*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/
-);
-
-extern RegionPtr cfbCopyArea(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    GCPtr/*pGC*/,
-    int /*srcx*/,
-    int /*srcy*/,
-    int /*width*/,
-    int /*height*/,
-    int /*dstx*/,
-    int /*dsty*/
-);
-
-#ifndef CFB_PROTOTYPES_ONLY
-extern void cfbCopyPlane1to8(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    int /*rop*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/
-);
-#endif
-
-extern RegionPtr cfbCopyPlane(
-    DrawablePtr /*pSrcDrawable*/,
-    DrawablePtr /*pDstDrawable*/,
-    GCPtr /*pGC*/,
-    int /*srcx*/,
-    int /*srcy*/,
-    int /*width*/,
-    int /*height*/,
-    int /*dstx*/,
-    int /*dsty*/,
-    unsigned long /*bitPlane*/
-);
-/* cfbbltC.c */
-
-extern void cfbDoBitbltCopy(
-    DrawablePtr /*pSrc*/,
-    DrawablePtr /*pDst*/,
-    int /*alu*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/
-);
-/* cfbbltG.c */
-
-extern void cfbDoBitbltGeneral(
-    DrawablePtr /*pSrc*/,
-    DrawablePtr /*pDst*/,
-    int /*alu*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/
-);
-/* cfbbltO.c */
-
-extern void cfbDoBitbltOr(
-    DrawablePtr /*pSrc*/,
-    DrawablePtr /*pDst*/,
-    int /*alu*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/
-);
-/* cfbbltX.c */
-
-extern void cfbDoBitbltXor(
-    DrawablePtr /*pSrc*/,
-    DrawablePtr /*pDst*/,
-    int /*alu*/,
-    RegionPtr /*prgnDst*/,
-    DDXPointPtr /*pptSrc*/,
-    unsigned long /*planemask*/
-);
-/* cfbbres.c */
-
-extern void cfbBresS(
-    int /*rop*/,
-    CfbBits /*and*/,
-    CfbBits /*xor*/,
-    CfbBits * /*addrl*/,
-    int /*nlwidth*/,
-    int /*signdx*/,
-    int /*signdy*/,
-    int /*axis*/,
-    int /*x1*/,
-    int /*y1*/,
-    int /*e*/,
-    int /*e1*/,
-    int /*e2*/,
-    int /*len*/
-);
-/* cfbbresd.c */
-
-extern void cfbBresD(
-    cfbRRopPtr /*rrops*/,
-    int * /*pdashIndex*/,
-    unsigned char * /*pDash*/,
-    int /*numInDashList*/,
-    int * /*pdashOffset*/,
-    int /*isDoubleDash*/,
-    CfbBits * /*addrl*/,
-    int /*nlwidth*/,
-    int /*signdx*/,
-    int /*signdy*/,
-    int /*axis*/,
-    int /*x1*/,
-    int /*y1*/,
-    int /*e*/,
-    int /*e1*/,
-    int /*e2*/,
-    int /*len*/
-);
-
-/* cfbcmap.c */
-
-#ifndef CFB_PROTOTYPES_ONLY
-extern int cfbListInstalledColormaps(
-    ScreenPtr	/*pScreen*/,
-    Colormap	* /*pmaps*/
-);
-
-extern void cfbInstallColormap(
-    ColormapPtr	/*pmap*/
-);
-
-extern void cfbUninstallColormap(
-    ColormapPtr	/*pmap*/
-);
-
-extern void cfbResolveColor(
-    unsigned short * /*pred*/,
-    unsigned short * /*pgreen*/,
-    unsigned short * /*pblue*/,
-    VisualPtr /*pVisual*/
-);
-
-extern Bool cfbInitializeColormap(
-    ColormapPtr /*pmap*/
-);
-
-extern int cfbExpandDirectColors(
-    ColormapPtr /*pmap*/,
-    int /*ndef*/,
-    xColorItem * /*indefs*/,
-    xColorItem * /*outdefs*/
-);
-
-extern Bool cfbCreateDefColormap(
-    ScreenPtr /*pScreen*/
-);
-
-extern Bool cfbSetVisualTypes(
-    int /*depth*/,
-    int /*visuals*/,
-    int /*bitsPerRGB*/
-);
-
-extern void cfbClearVisualTypes(void);
-
-extern Bool cfbInitVisuals(
-    VisualPtr * /*visualp*/,
-    DepthPtr * /*depthp*/,
-    int * /*nvisualp*/,
-    int * /*ndepthp*/,
-    int * /*rootDepthp*/,
-    VisualID * /*defaultVisp*/,
-    unsigned long /*sizes*/,
-    int /*bitsPerRGB*/
-);
-#endif
-/* cfbfillarcC.c */
-
-extern void cfbPolyFillArcSolidCopy(
-    DrawablePtr /*pDraw*/,
-    GCPtr /*pGC*/,
-    int /*narcs*/,
-    xArc * /*parcs*/
-);
-/* cfbfillarcG.c */
-
-extern void cfbPolyFillArcSolidGeneral(
-    DrawablePtr /*pDraw*/,
-    GCPtr /*pGC*/,
-    int /*narcs*/,
-    xArc * /*parcs*/
-);
-/* cfbfillrct.c */
-
-extern void cfbFillBoxTileOdd(
-    DrawablePtr /*pDrawable*/,
-    int /*n*/,
-    BoxPtr /*rects*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/
-);
-
-extern void cfbFillRectTileOdd(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfbPolyFillRect(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nrectFill*/,
-    xRectangle * /*prectInit*/
-);
-/* cfbfillsp.c */
-
-extern void cfbUnnaturalTileFS(
-    DrawablePtr /*pDrawable*/,
-    GCPtr/*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-
-extern void cfbUnnaturalStippleFS(
-    DrawablePtr /*pDrawable*/,
-    GCPtr/*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-
-#ifndef CFB_PROTOTYPES_ONLY
-extern void cfb8Stipple32FS(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-
-extern void cfb8OpaqueStipple32FS(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-#endif
-/* cfbgc.c */
-
-extern GCOpsPtr cfbMatchCommon(
-    GCPtr /*pGC*/,
-    cfbPrivGCPtr /*devPriv*/
-);
-
-extern Bool cfbCreateGC(
-    GCPtr /*pGC*/
-);
-
-extern void cfbValidateGC(
-    GCPtr /*pGC*/,
-    unsigned long /*changes*/,
-    DrawablePtr /*pDrawable*/
-);
-
-/* cfbgetsp.c */
-
-extern void cfbGetSpans(
-    DrawablePtr /*pDrawable*/,
-    int /*wMax*/,
-    DDXPointPtr /*ppt*/,
-    int * /*pwidth*/,
-    int /*nspans*/,
-    char * /*pdstStart*/
-);
-/* cfbglblt8.c */
-
-extern void cfbPolyGlyphBlt8(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*x*/,
-    int /*y*/,
-    unsigned int /*nglyph*/,
-    CharInfoPtr * /*ppci*/,
-    pointer /*pglyphBase*/
-);
-/* cfbglrop8.c */
-
-extern void cfbPolyGlyphRop8(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*x*/,
-    int /*y*/,
-    unsigned int /*nglyph*/,
-    CharInfoPtr * /*ppci*/,
-    pointer /*pglyphBase*/
-);
-/* cfbhrzvert.c */
-
-extern void cfbHorzS(
-    int /*rop*/,
-    CfbBits /*and*/,
-    CfbBits /*xor*/,
-    CfbBits * /*addrl*/,
-    int /*nlwidth*/,
-    int /*x1*/,
-    int /*y1*/,
-    int /*len*/
-);
-
-extern void cfbVertS(
-    int /*rop*/,
-    CfbBits /*and*/,
-    CfbBits /*xor*/,
-    CfbBits * /*addrl*/,
-    int /*nlwidth*/,
-    int /*x1*/,
-    int /*y1*/,
-    int /*len*/
-);
-/* cfbigblt8.c */
-
-extern void cfbImageGlyphBlt8(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*x*/,
-    int /*y*/,
-    unsigned int /*nglyph*/,
-    CharInfoPtr * /*ppci*/,
-    pointer /*pglyphBase*/
-);
-/* cfbimage.c */
-
-extern void cfbPutImage(
-    DrawablePtr /*pDraw*/,
-    GCPtr /*pGC*/,
-    int /*depth*/,
-    int /*x*/,
-    int /*y*/,
-    int /*w*/,
-    int /*h*/,
-    int /*leftPad*/,
-    int /*format*/,
-    char * /*pImage*/
-);
-
-extern void cfbGetImage(
-    DrawablePtr /*pDrawable*/,
-    int /*sx*/,
-    int /*sy*/,
-    int /*w*/,
-    int /*h*/,
-    unsigned int /*format*/,
-    unsigned long /*planeMask*/,
-    char * /*pdstLine*/
-);
-/* cfbline.c */
-
-extern void cfbLineSS(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    DDXPointPtr /*pptInit*/
-);
-
-extern void cfbLineSD(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    DDXPointPtr /*pptInit*/
-);
-/* cfbmskbits.c */
-/* cfbpixmap.c */
-
-extern PixmapPtr cfbCreatePixmap(
-    ScreenPtr /*pScreen*/,
-    int /*width*/,
-    int /*height*/,
-    int /*depth*/,
-    unsigned /*usage_hint*/
-);
-
-extern Bool cfbDestroyPixmap(
-    PixmapPtr /*pPixmap*/
-);
-
-extern PixmapPtr cfbCopyPixmap(
-    PixmapPtr /*pSrc*/
-);
-
-extern void cfbPadPixmap(
-    PixmapPtr /*pPixmap*/
-);
-
-extern void cfbXRotatePixmap(
-    PixmapPtr /*pPix*/,
-    int /*rw*/
-);
-
-extern void cfbYRotatePixmap(
-    PixmapPtr /*pPix*/,
-    int /*rh*/
-);
-
-extern void cfbCopyRotatePixmap(
-    PixmapPtr /*psrcPix*/,
-    PixmapPtr * /*ppdstPix*/,
-    int /*xrot*/,
-    int /*yrot*/
-);
-/* cfbply1rctC.c */
-
-extern void cfbFillPoly1RectCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*shape*/,
-    int /*mode*/,
-    int /*count*/,
-    DDXPointPtr /*ptsIn*/
-);
-/* cfbply1rctG.c */
-
-extern void cfbFillPoly1RectGeneral(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*shape*/,
-    int /*mode*/,
-    int /*count*/,
-    DDXPointPtr /*ptsIn*/
-);
-/* cfbpolypnt.c */
-
-extern void cfbPolyPoint(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*mode*/,
-    int /*npt*/,
-    xPoint * /*pptInit*/
-);
-/* cfbpush8.c */
-
-#ifndef CFB_PROTOTYPES_ONLY
-extern void cfbPushPixels8(
-    GCPtr /*pGC*/,
-    PixmapPtr /*pBitmap*/,
-    DrawablePtr /*pDrawable*/,
-    int /*dx*/,
-    int /*dy*/,
-    int /*xOrg*/,
-    int /*yOrg*/
-);
-/* cfbrctstp8.c */
-
-extern void cfb8FillRectOpaqueStippled32(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfb8FillRectTransparentStippled32(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfb8FillRectStippledUnnatural(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-#endif
-/* cfbrrop.c */
-
-extern int cfbReduceRasterOp(
-    int /*rop*/,
-    CfbBits /*fg*/,
-    CfbBits /*pm*/,
-    CfbBits * /*andp*/,
-    CfbBits * /*xorp*/
-);
-/* cfbscrinit.c */
-
-extern Bool cfbCloseScreen(
-    int /*index*/,
-    ScreenPtr /*pScreen*/
-);
-
-extern Bool cfbSetupScreen(
-    ScreenPtr /*pScreen*/,
-    pointer /*pbits*/,
-    int /*xsize*/,
-    int /*ysize*/,
-    int /*dpix*/,
-    int /*dpiy*/,
-    int /*width*/
-);
-
-extern Bool cfbFinishScreenInit(
-    ScreenPtr /*pScreen*/,
-    pointer /*pbits*/,
-    int /*xsize*/,
-    int /*ysize*/,
-    int /*dpix*/,
-    int /*dpiy*/,
-    int /*width*/
-);
-
-extern Bool cfbScreenInit(
-    ScreenPtr /*pScreen*/,
-    pointer /*pbits*/,
-    int /*xsize*/,
-    int /*ysize*/,
-    int /*dpix*/,
-    int /*dpiy*/,
-    int /*width*/
-);
-
-extern PixmapPtr cfbGetScreenPixmap(
-    ScreenPtr /*pScreen*/
-);
-
-extern void cfbSetScreenPixmap(
-    PixmapPtr /*pPix*/
-);
-
-/* cfbseg.c */
-
-extern void cfbSegmentSS(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nseg*/,
-    xSegment * /*pSeg*/
-);
-
-extern void cfbSegmentSD(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nseg*/,
-    xSegment * /*pSeg*/
-);
-/* cfbsetsp.c */
-
-extern void cfbSetScanline(
-    int /*y*/,
-    int /*xOrigin*/,
-    int /*xStart*/,
-    int /*xEnd*/,
-    unsigned int * /*psrc*/,
-    int /*alu*/,
-    int * /*pdstBase*/,
-    int /*widthDst*/,
-    unsigned long /*planemask*/
-);
-
-extern void cfbSetSpans(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    char * /*psrc*/,
-    DDXPointPtr /*ppt*/,
-    int * /*pwidth*/,
-    int /*nspans*/,
-    int /*fSorted*/
-);
-/* cfbsolidC.c */
-
-extern void cfbFillRectSolidCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfbSolidSpansCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-/* cfbsolidG.c */
-
-extern void cfbFillRectSolidGeneral(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfbSolidSpansGeneral(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-/* cfbsolidX.c */
-
-extern void cfbFillRectSolidXor(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfbSolidSpansXor(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-/* cfbteblt8.c */
-
-#ifndef CFB_PROTOTYPES_ONLY
-extern void cfbTEGlyphBlt8(
-    DrawablePtr /*pDrawable*/,
-    GCPtr/*pGC*/,
-    int /*xInit*/,
-    int /*yInit*/,
-    unsigned int /*nglyph*/,
-    CharInfoPtr * /*ppci*/,
-    pointer /*pglyphBase*/
-);
-#endif
-/* cfbtegblt.c */
-
-extern void cfbTEGlyphBlt(
-    DrawablePtr /*pDrawable*/,
-    GCPtr/*pGC*/,
-    int /*x*/,
-    int /*y*/,
-    unsigned int /*nglyph*/,
-    CharInfoPtr * /*ppci*/,
-    pointer /*pglyphBase*/
-);
-/* cfbtile32C.c */
-
-extern void cfbFillRectTile32Copy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfbTile32FSCopy(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-/* cfbtile32G.c */
-
-extern void cfbFillRectTile32General(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/
-);
-
-extern void cfbTile32FSGeneral(
-    DrawablePtr /*pDrawable*/,
-    GCPtr /*pGC*/,
-    int /*nInit*/,
-    DDXPointPtr /*pptInit*/,
-    int * /*pwidthInit*/,
-    int /*fSorted*/
-);
-/* cfbtileoddC.c */
-
-extern void cfbFillBoxTileOddCopy(
-    DrawablePtr /*pDrawable*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-
-extern void cfbFillSpanTileOddCopy(
-    DrawablePtr /*pDrawable*/,
-    int /*n*/,
-    DDXPointPtr /*ppt*/,
-    int * /*pwidth*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-
-extern void cfbFillBoxTile32sCopy(
-    DrawablePtr /*pDrawable*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-
-extern void cfbFillSpanTile32sCopy(
-    DrawablePtr /*pDrawable*/,
-    int /*n*/,
-    DDXPointPtr /*ppt*/,
-    int * /*pwidth*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-/* cfbtileoddG.c */
-
-extern void cfbFillBoxTileOddGeneral(
-    DrawablePtr /*pDrawable*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-
-extern void cfbFillSpanTileOddGeneral(
-    DrawablePtr /*pDrawable*/,
-    int /*n*/,
-    DDXPointPtr /*ppt*/,
-    int * /*pwidth*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-
-extern void cfbFillBoxTile32sGeneral(
-    DrawablePtr /*pDrawable*/,
-    int /*nBox*/,
-    BoxPtr /*pBox*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-
-extern void cfbFillSpanTile32sGeneral(
-    DrawablePtr /*pDrawable*/,
-    int /*n*/,
-    DDXPointPtr /*ppt*/,
-    int * /*pwidth*/,
-    PixmapPtr /*tile*/,
-    int /*xrot*/,
-    int /*yrot*/,
-    int /*alu*/,
-    unsigned long /*planemask*/
-);
-/* cfbwindow.c */
-
-extern Bool cfbCreateWindow(
-    WindowPtr /*pWin*/
-);
-
-extern Bool cfbDestroyWindow(
-    WindowPtr /*pWin*/
-);
-
-extern Bool cfbMapWindow(
-    WindowPtr /*pWindow*/
-);
-
-extern Bool cfbPositionWindow(
-    WindowPtr /*pWin*/,
-    int /*x*/,
-    int /*y*/
-);
-
-extern Bool cfbUnmapWindow(
-    WindowPtr /*pWindow*/
-);
-
-extern void cfbCopyWindow(
-    WindowPtr /*pWin*/,
-    DDXPointRec /*ptOldOrg*/,
-    RegionPtr /*prgnSrc*/
-);
-
-extern Bool cfbChangeWindowAttributes(
-    WindowPtr /*pWin*/,
-    unsigned long /*mask*/
-);
-/* cfbzerarcC.c */
-
-extern void cfbZeroPolyArcSS8Copy(
-    DrawablePtr /*pDraw*/,
-    GCPtr /*pGC*/,
-    int /*narcs*/,
-    xArc * /*parcs*/
-);
-/* cfbzerarcG.c */
-
-extern void cfbZeroPolyArcSS8General(
-    DrawablePtr /*pDraw*/,
-    GCPtr /*pGC*/,
-    int /*narcs*/,
-    xArc * /*parcs*/
-);
-/* cfbzerarcX.c */
-
-extern void cfbZeroPolyArcSS8Xor(
-    DrawablePtr /*pDraw*/,
-    GCPtr /*pGC*/,
-    int /*narcs*/,
-    xArc * /*parcs*/
-);
-
-#if (!defined(SINGLEDEPTH) && PSZ != 8) || defined(FORCE_SEPARATE_PRIVATE)
-
-#define CFB_NEED_SCREEN_PRIVATE
-
-extern DevPrivateKey cfbScreenPrivateKey;
-#endif
-
-#ifndef CFB_PROTOTYPES_ONLY
-
-/* Common macros for extracting drawing information */
-
-#define cfbGetWindowPixmap(d) \
-    ((* ((DrawablePtr)(d))->pScreen->GetWindowPixmap)((WindowPtr)(d)))
-
-#define cfbGetTypedWidth(pDrawable,wtype) (\
-    (((pDrawable)->type != DRAWABLE_PIXMAP) ? \
-     (int) (cfbGetWindowPixmap(pDrawable)->devKind) : \
-     (int)(((PixmapPtr)pDrawable)->devKind)) / sizeof (wtype))
-
-#define cfbGetByteWidth(pDrawable) cfbGetTypedWidth(pDrawable, unsigned char)
-
-#define cfbGetPixelWidth(pDrawable) cfbGetTypedWidth(pDrawable, PixelType)
-
-#define cfbGetLongWidth(pDrawable) cfbGetTypedWidth(pDrawable, CfbBits)
-    
-#define cfbGetTypedWidthAndPointer(pDrawable, width, pointer, wtype, ptype) {\
-    PixmapPtr   _pPix; \
-    if ((pDrawable)->type != DRAWABLE_PIXMAP) \
-	_pPix = cfbGetWindowPixmap(pDrawable); \
-    else \
-	_pPix = (PixmapPtr) (pDrawable); \
-    (pointer) = (ptype *) _pPix->devPrivate.ptr; \
-    (width) = ((int) _pPix->devKind) / sizeof (wtype); \
-}
-
-#define cfbGetByteWidthAndPointer(pDrawable, width, pointer) \
-    cfbGetTypedWidthAndPointer(pDrawable, width, pointer, unsigned char, unsigned char)
-
-#define cfbGetLongWidthAndPointer(pDrawable, width, pointer) \
-    cfbGetTypedWidthAndPointer(pDrawable, width, pointer, CfbBits, CfbBits)
-
-#define cfbGetPixelWidthAndPointer(pDrawable, width, pointer) \
-    cfbGetTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
-
-#define cfbGetWindowTypedWidthAndPointer(pWin, width, pointer, wtype, ptype) {\
-    PixmapPtr	_pPix = cfbGetWindowPixmap((DrawablePtr) (pWin)); \
-    (pointer) = (ptype *) _pPix->devPrivate.ptr; \
-    (width) = ((int) _pPix->devKind) / sizeof (wtype); \
-}
-
-#define cfbGetWindowLongWidthAndPointer(pWin, width, pointer) \
-    cfbGetWindowTypedWidthAndPointer(pWin, width, pointer, CfbBits, CfbBits)
-
-#define cfbGetWindowByteWidthAndPointer(pWin, width, pointer) \
-    cfbGetWindowTypedWidthAndPointer(pWin, width, pointer, unsigned char, unsigned char)
-
-#define cfbGetWindowPixelWidthAndPointer(pDrawable, width, pointer) \
-    cfbGetWindowTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
-
-/*
- * XFree86 empties the root BorderClip when the VT is inactive,
- * here's a macro which uses that to disable GetImage and GetSpans
- */
-#define cfbWindowEnabled(pWin) \
-    REGION_NOTEMPTY((pWin)->drawable.pScreen, \
-		    &WindowTable[(pWin)->drawable.pScreen->myNum]->borderClip)
-
-#define cfbDrawableEnabled(pDrawable) \
-    ((pDrawable)->type == DRAWABLE_PIXMAP ? \
-     TRUE : cfbWindowEnabled((WindowPtr) pDrawable))
-
-#include "micoord.h"
-
-#endif /* !CFB_PROTOTYPES_ONLY */
-
-#endif
diff --git a/cfb/cfb16.h b/cfb/cfb16.h
deleted file mode 100644
index 6b5c302..0000000
--- a/cfb/cfb16.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 1994-1998 The XFree86 Project, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the XFree86 Project shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from the
- * XFree86 Project.
- */
-
-#ifndef _CFB16_H_
-#define _CFB16_H_
-
-/*
- * C's preprocessing language substitutes >text<, not values...
- */
-
-#ifdef OLDPSZ
-# undef OLDPSZ
-#endif
-
-#ifdef PSZ
-
-# if (PSZ == 8)
-#  define OLDPSZ 8
-# endif
-
-# if (PSZ == 16)
-#  define OLDPSZ 16 
-# endif
-
-# if (PSZ == 24)
-#  define OLDPSZ 24 
-# endif
-
-# if (PSZ == 32)
-#  define OLDPSZ 32 
-# endif
-
-# ifndef OLDPSZ
-   /* Maybe an #error here ? */
-# endif
-
-# undef PSZ
-
-#endif
-
-#define PSZ 16
-#define CFB_PROTOTYPES_ONLY
-#include "cfb.h"
-#undef CFB_PROTOTYPES_ONLY
-#include "cfbunmap.h"
-
-#undef PSZ
-#ifdef OLDPSZ
-
-# if (OLDPSZ == 8)
-#  define PSZ 8
-# endif
-
-# if (OLDPSZ == 16)
-#  define PSZ 16 
-# endif
-
-# if (OLDPSZ == 24)
-#  define PSZ 24 
-# endif
-
-# if (OLDPSZ == 32)
-#  define PSZ 32 
-# endif
-
-# undef OLDPSZ
-
-#endif
-
-#endif /* _CFB16_H_ */
diff --git a/cfb/cfb24.h b/cfb/cfb24.h
deleted file mode 100644
index ea5fc84..0000000
--- a/cfb/cfb24.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 1994-1998 The XFree86 Project, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the XFree86 Project shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from the
- * XFree86 Project.
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#ifndef _CFB24_H_
-#define _CFB24_H_
-
-/*
- * C's preprocessing language substitutes >text<, not values...
- */
-
-#ifdef OLDPSZ
-# undef OLDPSZ
-#endif
-
-#ifdef PSZ
-
-# if (PSZ == 8)
-#  define OLDPSZ 8
-# endif
-
-# if (PSZ == 16)
-#  define OLDPSZ 16 
-# endif
-
-# if (PSZ == 24)
-#  define OLDPSZ 24 
-# endif
-
-# if (PSZ == 32)
-#  define OLDPSZ 32 
-# endif
-
-# ifndef OLDPSZ
-   /* Maybe an #error here ? */
-# endif
-
-# undef PSZ
-
-#endif
-
-#define PSZ 24
-#define CFB_PROTOTYPES_ONLY
-#include "cfb.h"
-#undef CFB_PROTOTYPES_ONLY
-#include "cfbunmap.h"
-
-#undef PSZ
-#ifdef OLDPSZ
-
-# if (OLDPSZ == 8)
-#  define PSZ 8
-# endif
-
-# if (OLDPSZ == 16)
-#  define PSZ 16 
-# endif
-
-# if (OLDPSZ == 24)
-#  define PSZ 24 
-# endif
-
-# if (OLDPSZ == 32)
-#  define PSZ 32 
-# endif
-
-# undef OLDPSZ
-
-#endif
-
-#endif /* _CFB24_H_ */
diff --git a/cfb/cfb32.h b/cfb/cfb32.h
deleted file mode 100644
index 18a5dc1..0000000
--- a/cfb/cfb32.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 1994-1998 The XFree86 Project, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the XFree86 Project shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from the
- * XFree86 Project.
- */
-
-#ifndef _CFB32_H_
-#define _CFB32_H_
-
-/*
- * C's preprocessing language substitutes >text<, not values...
- */
-
-#ifdef OLDPSZ
-# undef OLDPSZ
-#endif
-
-#ifdef PSZ
-
-# if (PSZ == 8)
-#  define OLDPSZ 8
-# endif
-
-# if (PSZ == 16)
-#  define OLDPSZ 16 
-# endif
-
-# if (PSZ == 24)
-#  define OLDPSZ 24 
-# endif
-
-# if (PSZ == 32)
-#  define OLDPSZ 32 
-# endif
-
-# ifndef OLDPSZ
-   /* Maybe an #error here ? */
-# endif
-
-# undef PSZ
-
-#endif
-
-#define PSZ 32
-#define CFB_PROTOTYPES_ONLY
-#include "cfb.h"
-#undef CFB_PROTOTYPES_ONLY
-#include "cfbunmap.h"
-
-#undef PSZ
-#ifdef OLDPSZ
-
-# if (OLDPSZ == 8)
-#  define PSZ 8
-# endif
-
-# if (OLDPSZ == 16)
-#  define PSZ 16 
-# endif
-
-# if (OLDPSZ == 24)
-#  define PSZ 24 
-# endif
-
-# if (OLDPSZ == 32)
-#  define PSZ 32 
-# endif
-
-# undef OLDPSZ
-
-#endif
-
-#endif /* _CFB32_H_ */
diff --git a/cfb/cfb8bit.c b/cfb/cfb8bit.c
deleted file mode 100644
index 54a08c5..0000000
--- a/cfb/cfb8bit.c
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
-
-Copyright 1989, 1994, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-/*
- * cfb8bit.c
- *
- * 8 bit color frame buffer utility routines
- */
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#if PSZ == 8
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"cfb.h"
-#include	"cfbmskbits.h"
-#include	"cfb8bit.h"
-
-PixelGroup cfb8StippleMasks[NUM_MASKS] = {
-#if NUM_MASKS == 16
-    0x00000000, 0x000000ff, 0x0000ff00, 0x0000ffff,
-    0x00ff0000, 0x00ff00ff, 0x00ffff00, 0x00ffffff,
-    0xff000000, 0xff0000ff, 0xff00ff00, 0xff00ffff,
-    0xffff0000, 0xffff00ff, 0xffffff00, 0xffffffff
-#else /* NUM_MASKS == 256 */
-    0x0000000000000000,	0x00000000000000ff,
-    0x000000000000ff00,	0x000000000000ffff,
-    0x0000000000ff0000,	0x0000000000ff00ff,
-    0x0000000000ffff00,	0x0000000000ffffff,
-    0x00000000ff000000,	0x00000000ff0000ff,
-    0x00000000ff00ff00,	0x00000000ff00ffff,
-    0x00000000ffff0000,	0x00000000ffff00ff,
-    0x00000000ffffff00,	0x00000000ffffffff,
-    0x000000ff00000000,	0x000000ff000000ff,
-    0x000000ff0000ff00,	0x000000ff0000ffff,
-    0x000000ff00ff0000,	0x000000ff00ff00ff,
-    0x000000ff00ffff00,	0x000000ff00ffffff,
-    0x000000ffff000000,	0x000000ffff0000ff,
-    0x000000ffff00ff00,	0x000000ffff00ffff,
-    0x000000ffffff0000,	0x000000ffffff00ff,
-    0x000000ffffffff00,	0x000000ffffffffff,
-    0x0000ff0000000000,	0x0000ff00000000ff,
-    0x0000ff000000ff00,	0x0000ff000000ffff,
-    0x0000ff0000ff0000,	0x0000ff0000ff00ff,
-    0x0000ff0000ffff00,	0x0000ff0000ffffff,
-    0x0000ff00ff000000,	0x0000ff00ff0000ff,
-    0x0000ff00ff00ff00,	0x0000ff00ff00ffff,
-    0x0000ff00ffff0000,	0x0000ff00ffff00ff,
-    0x0000ff00ffffff00,	0x0000ff00ffffffff,
-    0x0000ffff00000000,	0x0000ffff000000ff,
-    0x0000ffff0000ff00,	0x0000ffff0000ffff,
-    0x0000ffff00ff0000,	0x0000ffff00ff00ff,
-    0x0000ffff00ffff00,	0x0000ffff00ffffff,
-    0x0000ffffff000000,	0x0000ffffff0000ff,
-    0x0000ffffff00ff00,	0x0000ffffff00ffff,
-    0x0000ffffffff0000,	0x0000ffffffff00ff,
-    0x0000ffffffffff00,	0x0000ffffffffffff,
-    0x00ff000000000000,	0x00ff0000000000ff,
-    0x00ff00000000ff00,	0x00ff00000000ffff,
-    0x00ff000000ff0000,	0x00ff000000ff00ff,
-    0x00ff000000ffff00,	0x00ff000000ffffff,
-    0x00ff0000ff000000,	0x00ff0000ff0000ff,
-    0x00ff0000ff00ff00,	0x00ff0000ff00ffff,
-    0x00ff0000ffff0000,	0x00ff0000ffff00ff,
-    0x00ff0000ffffff00,	0x00ff0000ffffffff,
-    0x00ff00ff00000000,	0x00ff00ff000000ff,
-    0x00ff00ff0000ff00,	0x00ff00ff0000ffff,
-    0x00ff00ff00ff0000,	0x00ff00ff00ff00ff,
-    0x00ff00ff00ffff00,	0x00ff00ff00ffffff,
-    0x00ff00ffff000000,	0x00ff00ffff0000ff,
-    0x00ff00ffff00ff00,	0x00ff00ffff00ffff,
-    0x00ff00ffffff0000,	0x00ff00ffffff00ff,
-    0x00ff00ffffffff00,	0x00ff00ffffffffff,
-    0x00ffff0000000000,	0x00ffff00000000ff,
-    0x00ffff000000ff00,	0x00ffff000000ffff,
-    0x00ffff0000ff0000,	0x00ffff0000ff00ff,
-    0x00ffff0000ffff00,	0x00ffff0000ffffff,
-    0x00ffff00ff000000,	0x00ffff00ff0000ff,
-    0x00ffff00ff00ff00,	0x00ffff00ff00ffff,
-    0x00ffff00ffff0000,	0x00ffff00ffff00ff,
-    0x00ffff00ffffff00,	0x00ffff00ffffffff,
-    0x00ffffff00000000,	0x00ffffff000000ff,
-    0x00ffffff0000ff00,	0x00ffffff0000ffff,
-    0x00ffffff00ff0000,	0x00ffffff00ff00ff,
-    0x00ffffff00ffff00,	0x00ffffff00ffffff,
-    0x00ffffffff000000,	0x00ffffffff0000ff,
-    0x00ffffffff00ff00,	0x00ffffffff00ffff,
-    0x00ffffffffff0000,	0x00ffffffffff00ff,
-    0x00ffffffffffff00,	0x00ffffffffffffff,
-    0xff00000000000000,	0xff000000000000ff,
-    0xff0000000000ff00,	0xff0000000000ffff,
-    0xff00000000ff0000,	0xff00000000ff00ff,
-    0xff00000000ffff00,	0xff00000000ffffff,
-    0xff000000ff000000,	0xff000000ff0000ff,
-    0xff000000ff00ff00,	0xff000000ff00ffff,
-    0xff000000ffff0000,	0xff000000ffff00ff,
-    0xff000000ffffff00,	0xff000000ffffffff,
-    0xff0000ff00000000,	0xff0000ff000000ff,
-    0xff0000ff0000ff00,	0xff0000ff0000ffff,
-    0xff0000ff00ff0000,	0xff0000ff00ff00ff,
-    0xff0000ff00ffff00,	0xff0000ff00ffffff,
-    0xff0000ffff000000,	0xff0000ffff0000ff,
-    0xff0000ffff00ff00,	0xff0000ffff00ffff,
-    0xff0000ffffff0000,	0xff0000ffffff00ff,
-    0xff0000ffffffff00,	0xff0000ffffffffff,
-    0xff00ff0000000000,	0xff00ff00000000ff,
-    0xff00ff000000ff00,	0xff00ff000000ffff,
-    0xff00ff0000ff0000,	0xff00ff0000ff00ff,
-    0xff00ff0000ffff00,	0xff00ff0000ffffff,
-    0xff00ff00ff000000,	0xff00ff00ff0000ff,
-    0xff00ff00ff00ff00,	0xff00ff00ff00ffff,
-    0xff00ff00ffff0000,	0xff00ff00ffff00ff,
-    0xff00ff00ffffff00,	0xff00ff00ffffffff,
-    0xff00ffff00000000,	0xff00ffff000000ff,
-    0xff00ffff0000ff00,	0xff00ffff0000ffff,
-    0xff00ffff00ff0000,	0xff00ffff00ff00ff,
-    0xff00ffff00ffff00,	0xff00ffff00ffffff,
-    0xff00ffffff000000,	0xff00ffffff0000ff,
-    0xff00ffffff00ff00,	0xff00ffffff00ffff,
-    0xff00ffffffff0000,	0xff00ffffffff00ff,
-    0xff00ffffffffff00,	0xff00ffffffffffff,
-    0xffff000000000000,	0xffff0000000000ff,
-    0xffff00000000ff00,	0xffff00000000ffff,
-    0xffff000000ff0000,	0xffff000000ff00ff,
-    0xffff000000ffff00,	0xffff000000ffffff,
-    0xffff0000ff000000,	0xffff0000ff0000ff,
-    0xffff0000ff00ff00,	0xffff0000ff00ffff,
-    0xffff0000ffff0000,	0xffff0000ffff00ff,
-    0xffff0000ffffff00,	0xffff0000ffffffff,
-    0xffff00ff00000000,	0xffff00ff000000ff,
-    0xffff00ff0000ff00,	0xffff00ff0000ffff,
-    0xffff00ff00ff0000,	0xffff00ff00ff00ff,
-    0xffff00ff00ffff00,	0xffff00ff00ffffff,
-    0xffff00ffff000000,	0xffff00ffff0000ff,
-    0xffff00ffff00ff00,	0xffff00ffff00ffff,
-    0xffff00ffffff0000,	0xffff00ffffff00ff,
-    0xffff00ffffffff00,	0xffff00ffffffffff,
-    0xffffff0000000000,	0xffffff00000000ff,
-    0xffffff000000ff00,	0xffffff000000ffff,
-    0xffffff0000ff0000,	0xffffff0000ff00ff,
-    0xffffff0000ffff00,	0xffffff0000ffffff,
-    0xffffff00ff000000,	0xffffff00ff0000ff,
-    0xffffff00ff00ff00,	0xffffff00ff00ffff,
-    0xffffff00ffff0000,	0xffffff00ffff00ff,
-    0xffffff00ffffff00,	0xffffff00ffffffff,
-    0xffffffff00000000,	0xffffffff000000ff,
-    0xffffffff0000ff00,	0xffffffff0000ffff,
-    0xffffffff00ff0000,	0xffffffff00ff00ff,
-    0xffffffff00ffff00,	0xffffffff00ffffff,
-    0xffffffffff000000,	0xffffffffff0000ff,
-    0xffffffffff00ff00,	0xffffffffff00ffff,
-    0xffffffffffff0000,	0xffffffffffff00ff,
-    0xffffffffffffff00,	0xffffffffffffffff
-#endif
-};
-
-int	cfb8StippleMode, cfb8StippleAlu, cfb8StippleRRop;
-PixelGroup cfb8StippleFg, cfb8StippleBg, cfb8StipplePm;
-PixelGroup cfb8StippleAnd[NUM_MASKS], cfb8StippleXor[NUM_MASKS];
-
-int
-cfb8SetStipple (alu, fg, planemask)
-int		alu;
-CfbBits	fg, planemask;
-{
-    CfbBits   and, xor, rrop;
-    int	s;
-    CfbBits   c;
-
-    cfb8StippleMode = FillStippled;
-    cfb8StippleAlu = alu;
-    cfb8StippleFg = fg & PMSK;
-    cfb8StipplePm = planemask & PMSK;
-    rrop = cfbReduceRasterOp (alu, fg, planemask, &and, &xor);
-    cfb8StippleRRop = rrop;
-    /*
-     * create the appropriate pixel-fill bits for current
-     * foreground
-     */
-    for (s = 0; s < NUM_MASKS; s++)
-    {
-	c = cfb8StippleMasks[s];
-	cfb8StippleAnd[s] = and | ~c;
-	cfb8StippleXor[s] = xor & c;
-    }
-    return TRUE;
-}
-
-
-int
-cfb8SetOpaqueStipple (alu, fg, bg, planemask)
-int		alu;
-CfbBits	fg, bg, planemask;
-{
-    CfbBits   andfg, xorfg, andbg, xorbg, rropfg, rropbg;
-    int	s;
-    CfbBits   c;
-
-    cfb8StippleMode = FillOpaqueStippled;
-    cfb8StippleAlu = alu;
-    cfb8StippleFg = fg & PMSK;
-    cfb8StippleBg = bg & PMSK;
-    cfb8StipplePm = planemask & PMSK;
-    rropfg = cfbReduceRasterOp (alu, cfb8StippleFg, cfb8StipplePm, &andfg, &xorfg);
-    rropbg = cfbReduceRasterOp (alu, cfb8StippleBg, cfb8StipplePm, &andbg, &xorbg);
-    if (rropfg == rropbg)
-	cfb8StippleRRop = rropfg;
-    else
-	cfb8StippleRRop = GXset;
-    /*
-     * create the appropriate pixel-fill bits for current
-     * foreground
-     */
-    for (s = 0; s < NUM_MASKS; s++)
-    {
-	c = cfb8StippleMasks[s];
-	cfb8StippleAnd[s] = (andfg | ~c) & (andbg | c);
-	cfb8StippleXor[s] = (xorfg & c) | (xorbg & ~c);
-    }
-    return TRUE;
-}
-
-/*
- * a grungy little routine.  This computes clip masks
- * for partial character blts.  Returns rgnOUT if the
- * entire character is clipped; returns rgnIN if the entire
- * character is unclipped; returns rgnPART if a portion of
- * the character is visible.  Computes clip masks for each
- * longword of the character -- and those with the
- * contents of the glyph to compute the visible bits.
- */
-
-#if PGSZ == 32
-#if (BITMAP_BIT_ORDER == MSBFirst)
-PixelGroup cfb8BitLenMasks[PGSZ] = {
-    0xffffffff, 0x7fffffff, 0x3fffffff, 0x1fffffff,
-    0x0fffffff, 0x07ffffff, 0x03ffffff, 0x01ffffff,
-    0x00ffffff, 0x007fffff, 0x003fffff, 0x001fffff,
-    0x000fffff, 0x0007ffff, 0x0003ffff, 0x0001ffff,
-    0x0000ffff, 0x00007fff, 0x00003fff, 0x00001fff,
-    0x00000fff, 0x000007ff, 0x000003ff, 0x000001ff,
-    0x000000ff, 0x0000007f, 0x0000003f, 0x0000001f,
-    0x0000000f, 0x00000007, 0x00000003, 0x00000001,
-};
-#else
-PixelGroup cfb8BitLenMasks[PGSZ] = {
-    0xffffffff, 0xfffffffe, 0xfffffffc, 0xfffffff8,
-    0xfffffff0, 0xffffffe0, 0xffffffc0, 0xffffff80,
-    0xffffff00, 0xfffffe00, 0xfffffc00, 0xfffff800,
-    0xfffff000, 0xffffe000, 0xffffc000, 0xffff8000,
-    0xffff0000, 0xfffe0000, 0xfffc0000, 0xfff80000,
-    0xfff00000, 0xffe00000, 0xffc00000, 0xff800000,
-    0xff000000, 0xfe000000, 0xfc000000, 0xf8000000,
-    0xf0000000, 0xe0000000, 0xc0000000, 0x80000000,
-};
-#endif /* BITMAP_BIT_ORDER */
-#else /* PGSZ == 64 */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-PixelGroup cfb8BitLenMasks[PGSZ] = {
-    0xffffffffffffffff,    0x7fffffffffffffff,
-    0x3fffffffffffffff,    0x1fffffffffffffff,
-    0x0fffffffffffffff,    0x07ffffffffffffff,
-    0x03ffffffffffffff,    0x01ffffffffffffff,
-    0x00ffffffffffffff,    0x007fffffffffffff,
-    0x003fffffffffffff,    0x001fffffffffffff,
-    0x000fffffffffffff,    0x0007ffffffffffff,
-    0x0003ffffffffffff,    0x0001ffffffffffff,
-    0x0000ffffffffffff,    0x00007fffffffffff,
-    0x00003fffffffffff,    0x00001fffffffffff,
-    0x00000fffffffffff,    0x000007ffffffffff,
-    0x000003ffffffffff,    0x000001ffffffffff,
-    0x000000ffffffffff,    0x0000007fffffffff,
-    0x0000003fffffffff,    0x0000001fffffffff,
-    0x0000000fffffffff,    0x00000007ffffffff,
-    0x00000003ffffffff,    0x00000001ffffffff,
-    0x00000000ffffffff,    0x000000007fffffff,
-    0x000000003fffffff,    0x000000001fffffff,
-    0x000000000fffffff,    0x0000000007ffffff,
-    0x0000000003ffffff,    0x0000000001ffffff,
-    0x0000000000ffffff,    0x00000000007fffff,
-    0x00000000003fffff,    0x00000000001fffff,
-    0x00000000000fffff,    0x000000000007ffff,
-    0x000000000003ffff,    0x000000000001ffff,
-    0x000000000000ffff,    0x0000000000007fff,
-    0x0000000000003fff,    0x0000000000001fff,
-    0x0000000000000fff,    0x00000000000007ff,
-    0x00000000000003ff,    0x00000000000001ff,
-    0x00000000000000ff,    0x000000000000007f,
-    0x000000000000003f,    0x000000000000001f,
-    0x000000000000000f,    0x0000000000000007,
-    0x0000000000000003,    0x0000000000000001
-};
-#else
-PixelGroup cfb8BitLenMasks[PGSZ] = {
-    0xffffffffffffffff,    0xfffffffffffffffe,
-    0xfffffffffffffffc,    0xfffffffffffffff8,
-    0xfffffffffffffff0,    0xffffffffffffffe0,
-    0xffffffffffffffc0,    0xffffffffffffff80,
-    0xffffffffffffff00,    0xfffffffffffffe00,
-    0xfffffffffffffc00,    0xfffffffffffff800,
-    0xfffffffffffff000,    0xffffffffffffe000,
-    0xffffffffffffc000,    0xffffffffffff8000,
-    0xffffffffffff0000,    0xfffffffffffe0000,
-    0xfffffffffffc0000,    0xfffffffffff80000,
-    0xfffffffffff00000,    0xffffffffffe00000,
-    0xffffffffffc00000,    0xffffffffff800000,
-    0xffffffffff000000,    0xfffffffffe000000,
-    0xfffffffffc000000,    0xfffffffff8000000,
-    0xfffffffff0000000,    0xffffffffe0000000,
-    0xffffffffc0000000,    0xffffffff80000000,
-    0xffffffff00000000,    0xfffffffe00000000,
-    0xfffffffc00000000,    0xfffffff800000000,
-    0xfffffff000000000,    0xffffffe000000000,
-    0xffffffc000000000,    0xffffff8000000000,
-    0xffffff0000000000,    0xfffffe0000000000,
-    0xfffffc0000000000,    0xfffff80000000000,
-    0xfffff00000000000,    0xffffe00000000000,
-    0xffffc00000000000,    0xffff800000000000,
-    0xffff000000000000,    0xfffe000000000000,
-    0xfffc000000000000,    0xfff8000000000000,
-    0xfff0000000000000,    0xffe0000000000000,
-    0xffc0000000000000,    0xff80000000000000,
-    0xff00000000000000,    0xfe00000000000000,
-    0xfc00000000000000,    0xf800000000000000,
-    0xf000000000000000,    0xe000000000000000,
-    0xc000000000000000,    0x8000000000000000
-};
-#endif /* BITMAP_BIT_ORDER */
-#endif /* PGSZ */
-
-
-
-int
-cfb8ComputeClipMasks32 (pBox, numRects, x, y, w, h, clips)
-    BoxPtr	pBox;
-    int		numRects;
-    int		x, y, w, h;
-    CARD32      *clips;
-{
-    int	    yBand, yBandBot;
-    int	    ch;
-    CfbBits	    clip;
-    int	    partIN = FALSE, partOUT = FALSE;
-    int	    result;
-
-    if (numRects == 0)
-	return rgnOUT;
-    while (numRects && pBox->y2 <= y)
-    {
-	--numRects;
-	++pBox;
-    }
-    if (!numRects || pBox->y1 >= y + h)
-	return rgnOUT;
-    yBand = pBox->y1;
-    while (numRects && pBox->y1 == yBand && pBox->x2 <= x)
-    {
-	--numRects;
-	++pBox;
-    }
-    if (!numRects || pBox->y1 >= y + h)
-	return rgnOUT;
-    if (numRects &&
-	x >= pBox->x1 &&
-	x + w <= pBox->x2 &&
-	y >= pBox->y1 &&
-	y + h <= pBox->y2)
-    {
-	return rgnIN;
-    }
-    ch = 0;
-    while (numRects && pBox->y1 < y + h)
-    {
-	yBand = pBox->y1;
-	yBandBot = pBox->y2;
- 	while (ch < h && y + ch < yBand)
- 	{
- 	    partOUT = TRUE;
- 	    clips[ch++] = 0;
- 	}
- 	if (ch >= h)
- 	    break;
-    	while (numRects && pBox->y1 == yBand && pBox->x2 <= x)
-    	{
-	    --numRects;
-	    ++pBox;
-    	}
-    	if (!numRects)
-	    break;
-	clip = 0;
-    	while (numRects && pBox->y1 == yBand && pBox->x1 < x + w)
-    	{
-	    if (x < pBox->x1)
-		if (pBox->x2 < x + w)
-		    clip |= cfb8BitLenMasks[pBox->x1 - x] & ~cfb8BitLenMasks[pBox->x2 - x];
-		else
-		    clip |= cfb8BitLenMasks[pBox->x1 - x];
- 	    else
-		if (pBox->x2 < x + w)
-		    clip |= ~cfb8BitLenMasks[pBox->x2 - x];
-		else
-		    clip = ~0;
-	    --numRects;
-	    ++pBox;
-    	}
-	if (clip != 0)
-		partIN = TRUE;
-	if (clip != ~0)
-		partOUT = TRUE;
-	while (ch < h && y + ch < yBandBot)
-	    clips[ch++] = clip;
-	while (numRects && pBox->y1 == yBand)
-	{
-	    --numRects;
-	    ++pBox;
-	}
-    }
-    while (ch < h)
-    {
-	partOUT = TRUE;
-	clips[ch++] = 0;
-    }
-    result = rgnOUT;
-    if (partIN)
-    {
-	if (partOUT)
-	    result = rgnPART;
-	else
-	    result = rgnIN;
-    }
-    return result;
-}
-
-#endif /* PSZ == 8 */
diff --git a/cfb/cfb8bit.h b/cfb/cfb8bit.h
deleted file mode 100644
index 5a17adf..0000000
--- a/cfb/cfb8bit.h
+++ /dev/null
@@ -1,1570 +0,0 @@
-/*
- * cfb8bit.h
- *
- * Defines which are only useful to 8 bit color frame buffers
- *
- * That doesn't seem to be true any more.  Some of the macros in here 
- * are used for depths other than 8.  Perhaps the file should be
- * renamed.  dpw
- */
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-*/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include "servermd.h"
-
-#if (BITMAP_BIT_ORDER == MSBFirst)
-#define GetBitGroup(x)		(((PixelGroup) (x)) >> (PGSZ - PGSZB))
-#define NextBitGroup(x)		((x) <<= PGSZB)
-#define NextSomeBits(x,n)	((x) <<= (n))
-#else
-#define GetBitGroup(x)		((x) & PGSZBMSK)
-#define NextBitGroup(x)		((x) >>= PGSZB)
-#define NextSomeBits(x,n)	((x) >>= (n))
-#endif
-
-#define RotBitsLeft(x,k)    ((x) = BitLeft (x,k) | \
-				   BitRight (x, PGSZ-(k)))
-
-#if defined(__GNUC__) && defined(mc68020)
-#undef RotBitsLeft
-#define RotBitsLeft(x,k)	asm("rol%.l %2,%0" \
-				: "=d" (x) \
- 				: "0" (x), "dI" (k))
-#endif
-
-#if PSZ == 8
-
-#define GetPixelGroup(x)		(cfb8StippleXor[GetBitGroup(x)])
-#define RRopPixels(dst,x)	(DoRRop(dst,cfb8StippleAnd[x], cfb8StippleXor[x]))
-#define RRopPixelGroup(dst,x)	(RRopPixels(dst,GetBitGroup(x)))
-#define MaskRRopPixels(dst,x,mask)  (DoMaskRRop(dst,cfb8StippleAnd[x], cfb8StippleXor[x], mask))
-
-#define NUM_MASKS	(1<<PPW) /* XXX goes in cfbmskbits.h? */
-extern int		cfb8StippleMode, cfb8StippleAlu;
-extern PixelGroup	cfb8StippleFg, cfb8StippleBg, cfb8StipplePm;
-extern PixelGroup	cfb8StippleMasks[NUM_MASKS];
-extern PixelGroup	cfb8StippleAnd[NUM_MASKS], cfb8StippleXor[NUM_MASKS];
-extern int		cfb8StippleRRop;
-
-#define cfb8PixelMasks	cfb8StippleMasks
-#define cfb8Pixels	cfb8StippleXor
-
-#define cfb8CheckPixels(fg, bg) \
-    (FillOpaqueStippled == cfb8StippleMode && \
-     GXcopy == cfb8StippleAlu && \
-     ((fg) & PMSK) == cfb8StippleFg && \
-     ((bg) & PMSK) == cfb8StippleBg && \
-     PMSK == cfb8StipplePm)
-
-#define cfb8CheckOpaqueStipple(alu,fg,bg,pm) \
-    ((FillOpaqueStippled == cfb8StippleMode && \
-      (alu) == cfb8StippleAlu && \
-      ((fg) & PMSK) == cfb8StippleFg && \
-      ((bg) & PMSK) == cfb8StippleBg && \
-      ((pm) & PMSK) == cfb8StipplePm) ? 0 : cfb8SetOpaqueStipple(alu,fg,bg,pm))
-
-#define cfb8CheckStipple(alu,fg,pm) \
-    ((FillStippled == cfb8StippleMode && \
-      (alu) == cfb8StippleAlu && \
-      ((fg) & PMSK) == cfb8StippleFg && \
-      ((pm) & PMSK) == cfb8StipplePm) ? 0 : cfb8SetStipple(alu,fg,pm))
-
-#define cfb8SetPixels(fg,bg) cfb8SetOpaqueStipple(GXcopy,fg,bg,PMSK)
-
-/*
- * These macros are shared between the unnatural spans code
- * and the unnatural rectangle code.  No reasonable person
- * would attempt to use them anyplace else.
- */
-
-#define NextUnnaturalStippleWord \
-	if (bitsLeft >= MFB_PPW) \
-	{ \
-	    inputBits = *srcTemp++; \
-	    bitsLeft -= MFB_PPW; \
-	    partBitsLeft = MFB_PPW; \
-	} \
-	else \
-	{ \
-	    inputBits = 0; \
-	    if (bitsLeft) \
-		inputBits = *srcTemp & ~cfb8BitLenMasks[bitsLeft]; \
-	    srcTemp = srcStart; \
-	    partBitsLeft = bitsLeft; \
-	    bitsLeft = bitsWhole; \
-	}
-
-#define NextUnnaturalStippleBits \
-    if (partBitsLeft >= PPW) { \
-	bits = GetBitGroup (inputBits); \
-	NextBitGroup (inputBits); \
-	partBitsLeft -= PPW; \
-    } else { \
-	bits = GetBitGroup (inputBits); \
-	nextPartBits = PPW - partBitsLeft; \
-	NextUnnaturalStippleWord \
-	if (partBitsLeft < nextPartBits) { \
-	    if (partBitsLeft) {\
-	    	bits |= BitRight (GetBitGroup (inputBits), \
-				  PPW - nextPartBits) & PPWMSK;\
-	    	nextPartBits -= partBitsLeft; \
-	    } \
-	    NextUnnaturalStippleWord \
-	} \
-	bits |= BitRight (GetBitGroup (inputBits), \
-			  PPW - nextPartBits) & PPWMSK; \
-	NextSomeBits (inputBits, nextPartBits); \
-	partBitsLeft -= nextPartBits; \
-    }
-
-#define NextUnnaturalStippleBitsFast \
-    if (partBitsLeft >= PPW) { \
-	bits = GetBitGroup(inputBits); \
-	NextBitGroup(inputBits); \
-	partBitsLeft -= PPW; \
-    } else { \
-	bits = GetBitGroup (inputBits); \
-	nextPartBits = PPW - partBitsLeft; \
-	inputBits = *srcTemp++; \
-	bits |= BitRight (GetBitGroup (inputBits), \
-		          partBitsLeft) & PPWMSK; \
-	NextSomeBits (inputBits, nextPartBits); \
-	partBitsLeft =  MFB_PPW - nextPartBits; \
-    }
-
-/*
- * WriteBitGroup takes the destination address, a pixel
- * value (which must be 8 bits duplicated 4 time with PFILL)
- * and the PPW bits to write, which must be in the low order
- * bits of the register (probably from GetBitGroup) and writes
- * the appropriate locations in memory with the pixel value.  This
- * is a copy-mode only operation.
- */
-
-#define RRopBitGroup(dst,bits)					\
-    {								\
-    *(dst) = RRopPixels(*(dst),bits);				\
-    }
-
-#define MaskRRopBitGroup(dst,bits,mask)				\
-    {								\
-    *(dst) = MaskRRopPixels(*(dst),bits,mask);			\
-    }
-#endif /* PSZ == 8 */
-
-#if !defined(AVOID_MEMORY_READ) && PSZ == 8
-
-#define WriteBitGroup(dst,pixel,bits)				\
-    {								\
-    register PixelGroup _maskTmp = cfb8PixelMasks[(bits)];   \
-    *(dst) = (*(dst) & ~_maskTmp) | ((pixel) & _maskTmp);	\
-    }
-
-#define SwitchBitGroup(dst,pixel,bits)				\
-    {								\
-    register PixelGroup _maskTmp = cfb8PixelMasks[(bits)];   \
-    register PixelGroup _pixTmp = ((pixel) & _maskTmp);	\
-    _maskTmp = ~_maskTmp;					\
-    SwitchBitsLoop (*(dst) = (*(dst) & _maskTmp) | _pixTmp;)	\
-    }
-    
-#else /* AVOID_MEMORY_READ */
-
-#if PGSZ == 32
-#if (BITMAP_BIT_ORDER == MSBFirst)
-#define SinglePixel0	3
-#define SinglePixel1	2
-#define SinglePixel2	1
-#define SinglePixel3	0
-#define SinglePixel4	7
-#define SinglePixel5	6
-#define SinglePixel6	5
-#define SinglePixel7	4
-#define SinglePixel8	0xB
-#define SinglePixel9	0xA
-#define DoublePixel0	1
-#define DoublePixel1	0
-#define DoublePixel2	3
-#define DoublePixel3	2
-#define DoublePixel4	5
-#define DoublePixel5	4
-#else
-#define SinglePixel0	0
-#define SinglePixel1	1
-#define SinglePixel2	2
-#define SinglePixel3	3
-#define SinglePixel4	4
-#define SinglePixel5	5
-#define SinglePixel6	6
-#define SinglePixel7	7
-#define SinglePixel8	8
-#define SinglePixel9	9
-#define DoublePixel0	0
-#define DoublePixel1	1
-#define DoublePixel2	2
-#define DoublePixel3	3
-#define DoublePixel4	4
-#define DoublePixel5	5
-#endif
-#define QuadPixel0	0
-#define QuadPixel1	1
-#define QuadPixel2	2
-#else /* PGSZ == 64 */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-#define SinglePixel0	7
-#define SinglePixel1	6
-#define SinglePixel2	5
-#define SinglePixel3	4
-#define SinglePixel4	3
-#define SinglePixel5	2
-#define SinglePixel6	1
-#define SinglePixel7	0
-#define DoublePixel0	3
-#define DoublePixel1	2
-#define DoublePixel2	1
-#define DoublePixel3	0
-#define QuadPixel0	1
-#define QuadPixel1	0
-#else
-#define SinglePixel0	0
-#define SinglePixel1	1
-#define SinglePixel2	2
-#define SinglePixel3	3
-#define SinglePixel4	4
-#define SinglePixel5	5
-#define SinglePixel6	6
-#define SinglePixel7	7
-#define DoublePixel0	0
-#define DoublePixel1	1
-#define DoublePixel2	2
-#define DoublePixel3	3
-#define QuadPixel0	0
-#define QuadPixel1	1
-#endif
-#define OctaPixel0	0
-#endif /* PGSZ == 64 */
-
-#if PSZ == 8
-
-#if PGSZ == 32
-#define WriteBitGroup(dst,pixel,bits) \
-	switch (bits) {			\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD16 *) (dst))[DoublePixel0] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD16 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD16 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD16 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD16 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[0] = (pixel);	\
-	    break;			\
-	}
-#else /* PGSZ == 64 */
-#define WriteBitGroup(dst,pixel,bits) 				\
-    if ( bits == 0xff )						\
-	((PixelGroup *) (dst))[OctaPixel0] = (pixel);		\
-    else {							\
-	switch (bits & 0x0f) {					\
-	    case 0:						\
-	        break;						\
-	    case 1:						\
-	        ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	        break;						\
-	    case 2:						\
-	        ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	        break;						\
-	    case 3:						\
-	        ((CARD16 *) (dst))[DoublePixel0] = (pixel);	\
-	        break;						\
-	    case 4:						\
-	        ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	        break;						\
-	    case 5:						\
-	        ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	        break;						\
-	    case 6:						\
-	        ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	        break;						\
-	    case 7:						\
-	        ((CARD16 *) (dst))[DoublePixel0] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel2] = (pixel);	\
-	        break;						\
-	    case 8:						\
-	        ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	        break;						\
-	    case 9:						\
-	        ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	        break;						\
-	    case 10:						\
-	        ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	        break;						\
-	    case 11:						\
-	        ((CARD16 *) (dst))[DoublePixel0] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel3] = (pixel);	\
-	        break;						\
-	    case 12:						\
-	        ((CARD16 *) (dst))[DoublePixel1] = (pixel);	\
-	        break;						\
-	    case 13:						\
-	        ((CARD8 *) (dst))[SinglePixel0] = (pixel);	\
-	        ((CARD16 *) (dst))[DoublePixel1] = (pixel);	\
-	        break;						\
-	    case 14:						\
-	        ((CARD8 *) (dst))[SinglePixel1] = (pixel);	\
-	        ((CARD16 *) (dst))[DoublePixel1] = (pixel);	\
-	        break;						\
-	    case 15:						\
-	        ((CARD32 *) (dst))[QuadPixel0] = (pixel);	\
-	        break;						\
-	}							\
-	switch ((bits & 0xf0) >> 4) {				\
-	    case 0:						\
-	        break;						\
-	    case 1:						\
-	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\
-	        break;						\
-	    case 2:						\
-	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\
-	        break;						\
-	    case 3:						\
-	        ((CARD16 *) (dst))[DoublePixel2] = (pixel);	\
-	        break;						\
-	    case 4:						\
-	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\
-	        break;						\
-	    case 5:						\
-	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\
-	        break;						\
-	    case 6:						\
-	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\
-	        break;						\
-	    case 7:						\
-	        ((CARD16 *) (dst))[DoublePixel2] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel6] = (pixel);	\
-	        break;						\
-	    case 8:						\
-	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\
-	        break;						\
-	    case 9:						\
-	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\
-	        break;						\
-	    case 10:						\
-	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\
-	        break;						\
-	    case 11:						\
-	        ((CARD16 *) (dst))[DoublePixel2] = (pixel);	\
-	        ((CARD8 *) (dst))[SinglePixel7] = (pixel);	\
-	        break;						\
-	    case 12:						\
-	        ((CARD16 *) (dst))[DoublePixel3] = (pixel);	\
-	        break;						\
-	    case 13:						\
-	        ((CARD8 *) (dst))[SinglePixel4] = (pixel);	\
-	        ((CARD16 *) (dst))[DoublePixel3] = (pixel);	\
-	        break;						\
-	    case 14:						\
-	        ((CARD8 *) (dst))[SinglePixel5] = (pixel);	\
-	        ((CARD16 *) (dst))[DoublePixel3] = (pixel);	\
-	        break;						\
-	    case 15:						\
-	        ((CARD32 *) (dst))[QuadPixel1] = (pixel);	\
-	        break;						\
-	}							\
-    }
-#endif /* PGSZ == 64 */
-
-#if PGSZ == 32
-#define SwitchBitGroup(dst,pixel,bits) { \
-	switch (bits) { \
-	case 0: \
-       	    break; \
-	case 1: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);) \
-	    break; \
-	case 2: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);) \
-	    break; \
-	case 3: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel);) \
-	    break; \
-	case 4: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 5: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \
-		     ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 6: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \
-		     ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 7: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \
-		     ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 8: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 9: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \
-		     ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 10: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \
-		     ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 11: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \
-		     ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 12: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel1] = (pixel);) \
-	    break; \
-	case 13: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \
-		     ((CARD16 *) (dst))[DoublePixel1] = (pixel);) \
-	    break; \
-	case 14: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \
-		     ((CARD16 *) (dst))[DoublePixel1] = (pixel);) \
-	    break; \
-	case 15: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[0] = (pixel);) \
-	    break; \
-	} \
-}
-#else /* PGSZ == 64 */
-#define SwitchBitGroup(dst,pixel,bits) { 				   \
-    if ( bits == 0xff )							   \
-	SwitchBitsLoop (((PixelGroup *) (dst))[OctaPixel0] = (pixel);)	   \
-    else {								   \
-	switch (bits & 0x0f) {	 					   \
-	    case 0: 							   \
-       	        break; 							   \
-	    case 1: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);) \
-	        break; 							   \
-	    case 2: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);) \
-	        break; 							   \
-	    case 3: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel);)\
-	        break; 							   \
-	    case 4: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	        break; 							   \
-	    case 5: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	        break; 							   \
-	    case 6: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	        break; 							   \
-	    case 7: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \
-		         	((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	        break; 							   \
-	    case 8: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	        break; 							   \
-	    case 9: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	        break; 							   \
-	    case 10: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	        break; 							   \
-	    case 11: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \
-		         	((CARD8 *) (dst))[SinglePixel3] = (pixel);) \
-	        break; 							   \
-	    case 12: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel1] = (pixel);)\
-	        break; 							   \
-	    case 13: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);  \
-		         	((CARD16 *) (dst))[DoublePixel1] = (pixel);)\
-	        break; 							   \
-	    case 14: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);  \
-		         	((CARD16 *) (dst))[DoublePixel1] = (pixel);)\
-	        break; 							   \
-	    case 15: 							   \
-	        SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel);)    \
-	        break; 							   \
-	}								   \
-	switch ((bits & 0xf0) >> 4) {					   \
-	    case 0: 							   \
-       	        break; 							   \
-	    case 1: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);) \
-	        break; 							   \
-	    case 2: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);) \
-	        break; 							   \
-	    case 3: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel);)\
-	        break; 							   \
-	    case 4: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel6] = (pixel);) \
-	        break; 							   \
-	    case 5: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel6] = (pixel);) \
-	        break; 							   \
-	    case 6: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel6] = (pixel);) \
-	        break; 							   \
-	    case 7: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel); \
-		         	((CARD8 *) (dst))[SinglePixel6] = (pixel);) \
-	        break; 							   \
-	    case 8: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel7] = (pixel);) \
-	        break; 							   \
-	    case 9: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel7] = (pixel);) \
-	        break; 							   \
-	    case 10: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);  \
-		         	((CARD8 *) (dst))[SinglePixel7] = (pixel);) \
-	        break; 							   \
-	    case 11: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel); \
-		         	((CARD8 *) (dst))[SinglePixel7] = (pixel);) \
-	        break; 							   \
-	    case 12: 							   \
-	        SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel3] = (pixel);)\
-	        break; 							   \
-	    case 13: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);  \
-		         	((CARD16 *) (dst))[DoublePixel3] = (pixel);)\
-	        break; 							   \
-	    case 14: 							   \
-	        SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);  \
-		         	((CARD16 *) (dst))[DoublePixel3] = (pixel);)\
-	        break; 							   \
-	    case 15: 							   \
-	        SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel1] = (pixel);) \
-	        break; 							   \
-	} 								   \
-    }									   \
-}
-#endif /* PGSZ == 64 */
-#endif /* PSZ == 8 */
-
-#if PSZ == 16
-
-#if PGSZ == 32
-#define WriteBitGroup(dst,pixel,bits) \
-	switch (bits) {			\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	}
-#else /* PGSZ == 64 */
-#define WriteBitGroup(dst,pixel,bits) \
-    if ( bits == 0xff )	{						\
-	((PixelGroup *) (dst))[QuadPixel0] = (pixel);			\
-	((PixelGroup *) (dst))[QuadPixel1] = (pixel);			\
-    }									\
-    else {								\
-	switch (bits & 0x0f) {	 					\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD16 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD16 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[DoublePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel1] = (pixel);	\
-	    break;			\
-	}				\
-	switch ((bits & 0xf0) >> 4) {			\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD16 *) (dst))[SinglePixel4] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD16 *) (dst))[SinglePixel5] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[DoublePixel2] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD16 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD16 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD16 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[DoublePixel2] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD16 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD16 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD16 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[DoublePixel2] = (pixel);	\
-	    ((CARD16 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[DoublePixel3] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD16 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel3] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD16 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel3] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[DoublePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[DoublePixel3] = (pixel);	\
-	    break;			\
-	}				\
-    }
-#endif /* PGSZ */
-
-#if PGSZ == 32
-#define SwitchBitGroup(dst,pixel,bits) { \
-	switch (bits) { \
-	case 0: \
-       	    break; \
-	case 1: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel);) \
-	    break; \
-	case 2: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel);) \
-	    break; \
-	case 3: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel);) \
-	    break; \
-	case 4: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 5: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \
-		     ((CARD16 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 6: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel); \
-		     ((CARD16 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 7: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel); \
-		     ((CARD16 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 8: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 9: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \
-		     ((CARD16 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 10: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel); \
-		     ((CARD16 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 11: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel); \
-		     ((CARD16 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 12: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel1] = (pixel);) \
-	    break; \
-	case 13: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \
-		     ((CARD32 *) (dst))[DoublePixel1] = (pixel);) \
-	    break; \
-	case 14: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel1] = (pixel); \
-		     ((CARD32 *) (dst))[DoublePixel1] = (pixel);) \
-	    break; \
-	case 15: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[DoublePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[DoublePixel1] = (pixel);) \
-	    break; \
-	} \
-}
-#else /* PGSZ == 64 */
-#define SwitchBitGroup(dst,pixel,bits) { \
-	cfb cannot hack 64-bit SwitchBitGroup psz=PSZ
-#endif /* PGSZ */
-
-#endif /* PSZ == 16 */
-
-#if PSZ == 24
-/* 32 000011112222*/
-/* 24 000111222333*/
-/* 16 001122334455*/
-/*  8 0123456789AB*/
-#if PGSZ == 32
-#define WriteBitGroup(dst,pixel,bits) \
-	{ \
-	register CARD32 reg_pixel = (pixel); \
-	switch (bits) {			\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD16 *) (dst))[DoublePixel0] = reg_pixel;	\
-	    ((CARD8 *) (dst))[SinglePixel2] = ((reg_pixel>>16)&0xFF);	\
-	    break;			\
-	case 2:				\
-	    ((CARD8 *) (dst))[SinglePixel3] = reg_pixel&0xFF;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = (reg_pixel>>8)&0xFFFF;	\
-	    break;			\
-	case 3:				\
-	    ((CARD8 *) (dst))[SinglePixel3] = reg_pixel & 0xFF;	\
-	    ((CARD16 *) (dst))[DoublePixel0] = reg_pixel;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = (reg_pixel>>8)&0xFFFF;	\
-	    ((CARD8 *) (dst))[SinglePixel2] = (reg_pixel>>16&0xFF);	\
-	    break;			\
-	case 4:				\
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    ((CARD8 *) (dst))[SinglePixel8] = (reg_pixel>>16)&0xFF; \
-	    break;			\
-	case 5:				\
-	    ((CARD16 *) (dst))[DoublePixel0] = \
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    reg_pixel >>= 16;	\
-	    ((CARD8 *) (dst))[SinglePixel2] = \
-	    ((CARD8 *) (dst))[SinglePixel8] = reg_pixel&0xFF; \
-	    break;			\
-	case 6:				\
-	    ((CARD8 *) (dst))[SinglePixel3] = reg_pixel;	\
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel8] = reg_pixel&0xFF; \
-	    break;			\
-	case 7:				\
-	    ((CARD16 *) (dst))[DoublePixel0] = \
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    ((CARD8 *) (dst))[SinglePixel3] = reg_pixel&0xFF;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel2] = \
-	    ((CARD8 *) (dst))[SinglePixel8] = reg_pixel&0xFF; \
-	    break;			\
-	case 8:				\
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel&0xFF;	\
-	    ((CARD16 *) (dst))[DoublePixel5] = (reg_pixel>>8);	\
-	    break;			\
-	case 9:				\
-	    ((CARD16 *) (dst))[DoublePixel0] = reg_pixel;	\
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel&0xFF;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel5] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel2] = reg_pixel&0xFF;	\
-	    break;			\
-	case 10:			\
-	    ((CARD8 *) (dst))[SinglePixel3] = \
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel&0xFF;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = \
-	    ((CARD16 *) (dst))[DoublePixel5] = reg_pixel;	\
-	    break;			\
-	case 11:			\
-	    ((CARD8 *) (dst))[SinglePixel3] = \
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel;	\
-	    ((CARD16 *) (dst))[DoublePixel0] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = \
-	    ((CARD16 *) (dst))[DoublePixel5] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel2] = reg_pixel;	\
-	    break;			\
-	case 12:			\
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel5] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel8] = reg_pixel; \
-	    break;			\
-	case 13:			\
-	    ((CARD16 *) (dst))[DoublePixel0] = \
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel5] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel2] = \
-	    ((CARD8 *) (dst))[SinglePixel8] = reg_pixel; \
-	    break;			\
-	case 14:			\
-	    ((CARD8 *) (dst))[SinglePixel3] = \
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel;	\
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = \
-	    ((CARD16 *) (dst))[DoublePixel5] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel8] = reg_pixel; \
-	    break;			\
-	case 15:			\
-	    ((CARD16 *) (dst))[DoublePixel0] = \
-	    ((CARD16 *) (dst))[DoublePixel3] = reg_pixel;	\
-	    ((CARD8 *) (dst))[SinglePixel3] = \
-	    ((CARD8 *) (dst))[SinglePixel9] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD16 *) (dst))[DoublePixel2] = \
-	    ((CARD16 *) (dst))[DoublePixel5] = reg_pixel;	\
-	    reg_pixel >>= 8;	\
-	    ((CARD8 *) (dst))[SinglePixel8] = \
-	    ((CARD8 *) (dst))[SinglePixel2] = reg_pixel;	\
-	    break;			\
-	} \
-      }
-#else /* PGSZ == 64 */
-#define WriteBitGroup(dst,pixel,bits) \
-    if ( bits == 0xff )	 {				   \
-	((PixelGroup *) (dst))[DoublePixel0] = (pixel);	   \
-	((PixelGroup *) (dst))[DoublePixel1] = (pixel);	   \
-	((PixelGroup *) (dst))[DoublePixel2] = (pixel);	   \
-	((PixelGroup *) (dst))[DoublePixel3] = (pixel);	   \
-    }							   \
-    else {						   \
-	switch (bits & 0x0f) {	 			   \
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	}				\
-	switch ((bits & 0xf0) >> 4) {	\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	}				\
-    }
-#endif /* PGSZ */
-
-#if PGSZ == 32
-#define SwitchBitGroup(dst,pixel,bits) { \
-	switch (bits) { \
-	case 0: \
-       	    break; \
-	case 1: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 2: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel2] = (pixel);) \
-	    break; \
-	case 3: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel2] = (pixel);) \
-	    break; \
-	case 4: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel3] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \
-	    break; \
-	case 5: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel2] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel3] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \
-	    break; \
-	case 6: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel2] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \
-	    break; \
-	case 7: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel1] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel8] = (pixel);) \
-	    break; \
-	case 8: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel9] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \
-	    break; \
-	case 9: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel2] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel9] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \
-	    break; \
-	case 10: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel2] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel9] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \
-	    break; \
-	case 11: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel3] = (pixel);) \
-			    ((CARD8 *) (dst))[SinglePixel9] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel5] = (pixel);) \
-	    break; \
-	case 12: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel3] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \
-	    break; \
-	case 13: \
-	    SwitchBitsLoop (((CARD16 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD8 *) (dst))[SinglePixel2] = (pixel); \
-			    ((CARD16 *) (dst))[DoublePixel3] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \
-	    break; \
-	case 14: \
-	    SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel1] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \
-	    break; \
-	case 15: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel1] = (pixel); \
-			    ((CARD32 *) (dst))[QuadPixel2] = (pixel);) \
-	    break; \
-	} \
-}
-#else /* PGSZ == 64 */
-#define SwitchBitGroup(dst,pixel,bits) { \
-	cfb cannot hack 64-bit SwitchBitGroup psz=PSZ
-#endif /* PGSZ */
-
-#endif /* PSZ == 24 */
-
-#if PSZ == 32
-
-#if PGSZ == 32
-#define WriteBitGroup(dst,pixel,bits) \
-	switch (bits) {			\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	}
-#else /* PGSZ == 64 */
-#define WriteBitGroup(dst,pixel,bits) \
-    if ( bits == 0xff )	 {				   \
-	((PixelGroup *) (dst))[DoublePixel0] = (pixel);	   \
-	((PixelGroup *) (dst))[DoublePixel1] = (pixel);	   \
-	((PixelGroup *) (dst))[DoublePixel2] = (pixel);	   \
-	((PixelGroup *) (dst))[DoublePixel3] = (pixel);	   \
-    }							   \
-    else {						   \
-	switch (bits & 0x0f) {	 			   \
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[SinglePixel0] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel1] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel2] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel3] = (pixel);	\
-	    break;			\
-	}				\
-	switch ((bits & 0xf0) >> 4) {	\
-	case 0:				\
-	    break;			\
-	case 1:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    break;			\
-	case 2:				\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    break;			\
-	case 3:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    break;			\
-	case 4:				\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 5:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 6:				\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 7:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    break;			\
-	case 8:				\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 9:				\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 10:			\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 11:			\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 12:			\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 13:			\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 14:			\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	case 15:			\
-	    ((CARD32 *) (dst))[SinglePixel4] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel5] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel6] = (pixel);	\
-	    ((CARD32 *) (dst))[SinglePixel7] = (pixel);	\
-	    break;			\
-	}				\
-    }
-#endif /* PGSZ */
-
-#if PGSZ == 32
-#define SwitchBitGroup(dst,pixel,bits) { \
-	switch (bits) { \
-	case 0: \
-       	    break; \
-	case 1: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel);) \
-	    break; \
-	case 2: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel);) \
-	    break; \
-	case 3: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel1] = (pixel);) \
-	    break; \
-	case 4: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 5: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 6: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 7: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel1] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel2] = (pixel);) \
-	    break; \
-	case 8: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 9: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 10: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 11: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel1] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 12: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel2] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 13: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel2] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 14: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel1] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel2] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	case 15: \
-	    SwitchBitsLoop (((CARD32 *) (dst))[SinglePixel0] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel1] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel2] = (pixel); \
-			    ((CARD32 *) (dst))[SinglePixel3] = (pixel);) \
-	    break; \
-	} \
-}
-#else /* PGSZ == 64 */
-#define SwitchBitGroup(dst,pixel,bits) { \
-	cfb cannot hack 64-bit SwitchBitGroup psz=PSZ
-#endif /* PGSZ */
-
-#endif /* PSZ == 32 */
-#endif /* AVOID_MEMORY_READ */
-
-extern PixelGroup cfb8BitLenMasks[PGSZ];
-
-extern int cfb8SetStipple (
-    int	/*alu*/,
-    CfbBits /*fg*/,
-    CfbBits /*planemask*/
-);
-
-extern int cfb8SetOpaqueStipple (
-    int /*alu*/,
-    CfbBits /*fg*/,
-    CfbBits /*bg*/,
-    CfbBits /*planemask*/
-);
-
-extern int cfb8ComputeClipMasks32 (
-    BoxPtr	/*pBox*/,
-    int		/*numRects*/,
-    int		/*x*/,
-    int		/*y*/,
-    int		/*w*/,
-    int		/*h*/,
-    CARD32 * /*clips*/
-);
diff --git a/cfb/cfb8line.c b/cfb/cfb8line.c
deleted file mode 100644
index 8c00d9f..0000000
--- a/cfb/cfb8line.c
+++ /dev/null
@@ -1,1503 +0,0 @@
-/*
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- *
- * Jeff Anton'x fixes: cfb8line.c   97/02/07
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <stdlib.h>
-#include <X11/X.h>
-
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "regionstr.h"
-#include "scrnintstr.h"
-#include "mistruct.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "cfbrrop.h"
-#include "miline.h"
-
-#ifdef PIXEL_ADDR
-
-#if defined(__GNUC__) && defined(mc68020)
-#define STUPID volatile
-#define REARRANGE
-#else
-#define STUPID
-#endif
-
-#ifdef __GNUC__
-/* lame compiler doesn't even look at 'register' attributes */
-#define I_H do{
-#define I_T }while(0);
-#define IMPORTANT_START I_H I_H I_H I_H I_H I_H I_H I_H I_H I_H
-#define IMPORTANT_END	I_T I_T I_T I_T I_T I_T I_T I_T I_T I_T
-#else
-#define IMPORTANT_START
-#define IMPORTANT_END
-#endif
-
-#define isClipped(c,ul,lr)  ((((c) - (ul)) | ((lr) - (c))) & ClipMask)
-
-#ifdef POLYSEGMENT
-
-# if (defined(sun) || defined(__bsdi__)) && \
-     (defined(sparc) || defined(__sparc__))
-#  define WIDTH_FAST  1152
-# endif
-
-# ifdef ultrix
-#  define WIDTH_FAST  1024
-# endif
-
-# ifdef Mips
-#  define WIDTH_FAST 4096
-# endif
-# ifdef WIDTH_FAST
-#  if WIDTH_FAST == 1024
-#   define FAST_MUL(y)	((y) << 10)
-#  endif
-
-#  if WIDTH_FAST == 1152
-#   define FAST_MUL(y)	(((y) << 10) + ((y) << 7))
-#  endif
-
-#  if WIDTH_FAST == 1280
-#   define FAST_MUL(y)	(((y) << 10) + ((y) << 8))
-#  endif
-
-#  if WIDTH_FAST == 2048
-#   define FAST_MUL(y)	((y) << 11)
-#  endif
-
-#  if WIDTH_FAST == 4096
-#   define FAST_MUL(y)	((y) << 12)
-#  endif
-# endif
-
-# if defined(WIDTH_SHIFT)
-#  ifdef FAST_MUL
-#   define FUNC_NAME(e)	    RROP_NAME(RROP_NAME_CAT(e,Shift))
-#   if RROP == GXcopy
-#    define INCLUDE_OTHERS
-#    define SERIOUS_UNROLLING
-#   endif
-#   define INCLUDE_DRAW
-#   define NWIDTH(nwidth)   WIDTH_FAST
-#   define WIDTH_MUL(y,w)   FAST_MUL(y)
-#  endif
-# else
-#  define FUNC_NAME(e)	    RROP_NAME(e)
-#  define WIDTH_MUL(y,w)    ((y) * (w))
-#  define NWIDTH(nwidth)    (nwidth)
-#  define INCLUDE_DRAW
-#  if !defined (FAST_MUL) && RROP == GXcopy
-#   define INCLUDE_OTHERS
-#   define SERIOUS_UNROLLING
-#  endif
-# endif
-#else
-
-# define INCLUDE_DRAW
-# define WIDTH_MUL(y,w)	((y) * (w))
-# define NWIDTH(nwidth)	nwidth
-# ifdef PREVIOUS
-#  define FUNC_NAME(e)	RROP_NAME(RROP_NAME_CAT(e,Previous))
-# else
-#  define FUNC_NAME(e)	RROP_NAME(e)
-#  if RROP == GXcopy
-#   define INCLUDE_OTHERS
-#   ifdef PLENTIFUL_REGISTERS
-#    define SAVE_X2Y2
-#   endif
-#   define ORIGIN
-#   define SERIOUS_UNROLLING
-#  else
-#   define EITHER_MODE
-#  endif
-# endif
-#endif
-
-#if PSZ == 24
-#define PXL2ADR(x)  ((x)*3 >> 2)
-
-#if RROP == GXcopy
-#define body_rop \
-	    addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	    switch((unsigned long)addrb & 3){ \
-	    case 0: \
-	      *addrp = (*addrp & 0xFF000000)|(piQxelXor[0] & 0xFFFFFF); \
-	      break; \
-	    case 1: \
-	      *addrp = (*addrp & 0xFF)|(piQxelXor[2] & 0xFFFFFF00); \
-	      break; \
-	    case 3: \
-	      *addrp = (*addrp & 0xFFFFFF)|(piQxelXor[0] & 0xFF000000); \
-	      *(addrp+1)=(*(addrp+1) & 0xFFFF0000)|(piQxelXor[1] & 0xFFFF); \
-	      break; \
-	    case 2: \
-	      *addrp = (*addrp & 0xFFFF)|(piQxelXor[1] & 0xFFFF0000); \
-	      *(addrp+1)=(*(addrp+1) & 0xFFFFFF00)|(piQxelXor[2] & 0xFF); \
-	      break; \
-	    }
-#endif
-#if RROP == GXxor
-#define body_rop \
-	    addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	    switch((unsigned long)addrb & 3){ \
-	    case 0: \
-	      *addrp ^= piQxelXor[0] & 0xFFFFFF; \
-	      break; \
-	    case 1: \
-	      *addrp ^= piQxelXor[2] & 0xFFFFFF00; \
-	      break; \
-	    case 3: \
-	      *addrp ^= piQxelXor[0] & 0xFF000000; \
-	      *(addrp+1) ^= piQxelXor[1] & 0xFFFF; \
-	      break; \
-	    case 2: \
-	      *addrp ^= piQxelXor[1] & 0xFFFF0000; \
-	      *(addrp+1) ^= piQxelXor[2] & 0xFF; \
-	      break; \
-	    }
-#endif
-#if RROP == GXand
-#define body_rop \
-	    addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	    switch((unsigned long)addrb & 3){ \
-	    case 0: \
-	      *addrp &= piQxelAnd[0] | 0xFF000000; \
-	      break; \
-	    case 1: \
-	      *addrp &= piQxelAnd[2] | 0xFF; \
-	      break; \
-	    case 3: \
-	      *addrp &= 0xFFFFFF | piQxelAnd[0]; \
-	      *(addrp+1) &= 0xFFFF0000 | piQxelAnd[1]; \
-	      break; \
-	    case 2: \
-	      *addrp &= 0xFFFF | piQxelAnd[1]; \
-	      *(addrp+1) &= 0xFFFFFF00 | piQxelAnd[2]; \
-	      break; \
-	    }
-#endif
-#if RROP == GXor
-#define body_rop \
-	    addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	    switch((unsigned long)addrb & 3){ \
-	    case 0: \
-	      *addrp |= piQxelOr[0] & 0xFFFFFF; \
-	      break; \
-	    case 1: \
-	      *addrp |= piQxelOr[2] & 0xFFFFFF00; \
-	      break; \
-	    case 3: \
-	      *addrp |= piQxelOr[0] & 0xFF000000; \
-	      *(addrp+1) |= piQxelOr[1] & 0xFFFF; \
-	      break; \
-	    case 2: \
-	      *addrp |= piQxelOr[1] & 0xFFFF0000; \
-	      *(addrp+1) |= piQxelOr[2] & 0xFF; \
-	      break; \
-	    }
-#endif
-#if RROP == GXset
-#define body_rop \
-	    addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	    switch((unsigned long)addrb & 3){ \
-	    case 0: \
-	      *addrp = (*addrp & (piQxelAnd[0]|0xFF000000)) \
-			^ (piQxelXor[0] & 0xFFFFFF); \
-	      break; \
-	    case 1: \
-	      *addrp = (*addrp & (piQxelAnd[2]|0xFF)) \
-			^ (piQxelXor[2] & 0xFFFFFF00); \
-	      break; \
-	    case 3: \
-	      *addrp = (*addrp & (piQxelAnd[0]|0xFFFFFF)) \
-			^ (piQxelXor[0] & 0xFF000000); \
-	      *(addrp+1) = (*(addrp+1) & (piQxelAnd[1]|0xFFFF0000)) \
-			^ (piQxelXor[1] & 0xFFFF); \
-	      break; \
-	    case 2: \
-	      *addrp = (*addrp & (piQxelAnd[1]|0xFFFF)) \
-			^ (piQxelXor[1] & 0xFFFF0000); \
-	      *(addrp+1) = (*(addrp+1) & (piQxelAnd[2]|0xFFFFFF00)) \
-			^ (piQxelXor[2] & 0xFF); \
-	      break; \
-	    }
-#endif
-#endif /* PSZ == 24 */
-
-#define BUGFIX_clip
-
-#ifdef INCLUDE_DRAW
-
-int
-#ifdef POLYSEGMENT
-FUNC_NAME(cfb8SegmentSS1Rect) (pDrawable, pGC, nseg, pSegInit)
-    DrawablePtr	pDrawable;
-    GCPtr	pGC;
-    int		nseg;
-    xSegment	*pSegInit;
-#else
-FUNC_NAME(cfb8LineSS1Rect) (pDrawable, pGC, mode, npt, pptInit, pptInitOrig,
-			    x1p,y1p,x2p,y2p)
-    DrawablePtr pDrawable;
-    GCPtr	pGC;
-    int	mode;		/* Origin or Previous */
-    int	npt;		/* number of points */
-    DDXPointPtr pptInit, pptInitOrig;
-    int	*x1p, *y1p, *x2p, *y2p;
-#endif /* POLYSEGMENT */
-{
-    register long   e;
-    register int    y1_or_e1;
-    register PixelType   *addrp;
-    register int    stepmajor;
-    register int    stepminor;
-#ifndef REARRANGE
-    register long   e3;
-#endif
-#ifdef mc68000
-    register short  x1_or_len;
-#else
-    register int    x1_or_len;
-#endif
-    RROP_DECLARE
-
-#ifdef SAVE_X2Y2
-# define c2 y2
-#else
-    register int    c2;
-#endif
-#if !defined(ORIGIN) && !defined(POLYSEGMENT)
-    register int _x1 = 0, _y1 = 0, _x2 = 0, _y2 = 0;
-    int extents_x1, extents_y1, extents_x2, extents_y2;
-#endif /* !ORIGIN */
-#ifndef PREVIOUS
-    register int upperleft, lowerright;
-    CARD32	 ClipMask = 0x80008000;
-#endif /* !PREVIOUS */
-#ifdef POLYSEGMENT
-    register int    capStyle;
-#endif /* POLYSEGMENT */
-#ifdef SAVE_X2Y2
-    register int    x2, y2;
-# define X1  x1_or_len
-# define Y1  y1_or_e1
-# define X2  x2
-# define Y2  y2
-#else
-# ifdef POLYSEGMENT
-#  define X1  x1_or_len
-#  define Y1  y1_or_e1
-# else
-#  define X1  intToX(y1_or_e1)
-#  define Y1  intToY(y1_or_e1)
-# endif /* POLYSEGMENT */
-# define X2  intToX(c2)
-# define Y2  intToY(c2)
-#endif /* SAVE_X2Y2 */
-    PixelType   *addr;
-    int		    nwidth;
-    cfbPrivGCPtr    devPriv;
-    BoxPtr	    extents;
-    int		    *ppt;
-#if PSZ == 24
-    int xBase;     /* x of addr */
-    int xOffset;   /* x of addrp */
-    PixelType   *addrLineEnd;
-    char *addrb;
-    int stepmajor3, stepminor3, majordx, minordx;
-#endif
-#ifndef POLYSEGMENT
-#ifndef ORIGIN
-#ifdef BUGFIX_clip
-    int ex_x1, ex_y1, ex_x2, ex_y2;
-#endif
-#endif
-#endif
-    int		    octant;
-    unsigned int    bias = miGetZeroLineBias(pDrawable->pScreen);
-
-    devPriv = cfbGetGCPrivate(pGC);
-    cfbGetPixelWidthAndPointer (pDrawable, nwidth, addr);
-#ifndef REARRANGE
-    RROP_FETCH_GCPRIV(devPriv);
-#endif
-    extents = &pGC->pCompositeClip->extents;
-#ifndef PREVIOUS
-    c2 = *((int *) &pDrawable->x);
-    c2 -= (c2 & 0x8000) << 1;
-    upperleft = *((int *) &extents->x1) - c2;
-    lowerright = *((int *) &extents->x2) - c2 - 0x00010001;
-#endif /* !PREVIOUS */
-#ifndef POLYSEGMENT
-#ifndef ORIGIN
-#ifdef BUGFIX_clip
-    ex_x1 = extents->x1 - pDrawable->x;
-    ex_y1 = extents->y1 - pDrawable->y;
-    ex_x2 = extents->x2 - pDrawable->x;
-    ex_y2 = extents->y2 - pDrawable->y;
-#endif
-#endif
-#endif
-#if PSZ == 24
-    xBase = pDrawable->x;
-    addr += WIDTH_MUL(pDrawable->y,nwidth);
-#else
-    addr = addr + WIDTH_MUL(pDrawable->y,nwidth) + pDrawable->x;
-#endif
-#ifdef POLYSEGMENT
-    capStyle = pGC->capStyle - CapNotLast;
-    ppt = (int *) pSegInit;
-    while (nseg--)
-#else /* POLYSEGMENT */
-#ifdef EITHER_MODE
-    mode -= CoordModePrevious;
-    if (!mode)
-#endif /* EITHER_MODE */	
-#ifndef ORIGIN
-    {	/* CoordModePrevious */
-	ppt = (int *)pptInit + 1;
-	_x1 = *x1p;
-	_y1 = *y1p;
-	extents_x1 = extents->x1 - pDrawable->x;
-	extents_x2 = extents->x2 - pDrawable->x;
-	extents_y1 = extents->y1 - pDrawable->y;
-	extents_y2 = extents->y2 - pDrawable->y;
-	if (_x1 < extents_x1 || _x1 >= extents_x2 ||
-	    _y1 < extents_y1 || _y1 >= extents_y2)
-	{
-	    c2 = *ppt++;
-	    intToCoord(c2, _x2, _y2);
-	    *x2p = _x1 + _x2;
-	    *y2p = _y1 + _y2;
-	    return 1;
-	}
-#if PSZ == 24
-	addrLineEnd = addr + WIDTH_MUL(_y1, nwidth);
-	xOffset = xBase + _x1;
-	addrb = (char *)addrLineEnd + xOffset * 3;
-	addrp = (PixelType *)((unsigned long)addrb & ~0x03);
-#else
-	addrp = addr + WIDTH_MUL(_y1, nwidth) + _x1;
-#endif
-	_x2 = _x1;
-	_y2 = _y1;	
-    }
-#endif /* !ORIGIN */
-#ifdef EITHER_MODE
-    else
-#endif /* EITHER_MODE */
-#ifndef PREVIOUS
-    {
-	ppt = (int *) pptInit;
-	c2 = *ppt++;
-	if (isClipped (c2, upperleft, lowerright))
-	{
-	    return 1;
-	}
-#ifdef SAVE_X2Y2
-	intToCoord(c2,x2,y2);
-#endif
-#if PSZ == 24
-	addrLineEnd = addr + WIDTH_MUL(Y2, nwidth);
-	xOffset = xBase + X2;
-	addrb = (char *)addrLineEnd + xOffset * 3;
-	addrp = (PixelType *)((unsigned long)addrb & ~0x03);
-#else
-	addrp = addr + WIDTH_MUL(Y2, nwidth) + X2;
-#endif
-    }
-#endif /* !PREVIOUS */    
-    while (--npt)
-#endif /* POLYSEGMENT */
-    {
-#ifdef POLYSEGMENT
-	y1_or_e1 = ppt[0];
-	c2 = ppt[1];
-	ppt += 2;
-	if (isClipped(y1_or_e1,upperleft,lowerright)|isClipped(c2,upperleft,lowerright))
-	    break;
-	intToCoord(y1_or_e1,x1_or_len,y1_or_e1);
-	/* compute now to avoid needing x1, y1 later */
-#if PSZ == 24
-	addrLineEnd = addr + WIDTH_MUL(y1_or_e1, nwidth);
-	xOffset = xBase + x1_or_len;
-	addrb = (char *)addrLineEnd + xOffset * 3;
-	addrp = (PixelType *)((unsigned long)addrb & ~0x03);
-#else
-	addrp = addr + WIDTH_MUL(y1_or_e1, nwidth) + x1_or_len;
-#endif
-#else /* !POLYSEGMENT */
-#ifdef EITHER_MODE
-	if (!mode)
-#endif /* EITHER_MODE */	
-#ifndef ORIGIN
-	{	
-	    /* CoordModePrevious */
-	    _x1 = _x2;
-	    _y1 = _y2;
-	    c2 = *ppt++;
-	    intToCoord(c2, _x2, _y2);
-	    _x2 = _x1 + _x2;
-	    _y2 = _y1 + _y2;
-
-#ifdef BUGFIX_clip
-	    if (_x2 < ex_x1 || _x2 >= ex_x2 ||
-		_y2 < ex_y1 || _y2 >= ex_y2)
-#else
-	    if (_x2 < extents_x1 || _x2 >= extents_x2 ||
-		_y2 < extents_y1 || _y2 >= extents_y2)
-#endif
-	    {
-		break;
-	    }
-	    CalcLineDeltas(_x1, _y1, _x2, _y2, x1_or_len, y1_or_e1,
-			   stepmajor, stepminor, 1, NWIDTH(nwidth), octant);
-	}
-#endif /* !ORIGIN */
-#ifdef EITHER_MODE
-	else
-#endif /* EITHER_MODE */
-#ifndef PREVIOUS
-        {
-#ifndef SAVE_X2Y2
-	    y1_or_e1 = c2;
-#else
-	    y1_or_e1 = y2;
-	    x1_or_len = x2;
-#endif /* SAVE_X2Y2 */
-	    c2 = *ppt++;
-
-	    if (isClipped (c2, upperleft, lowerright))
-		break;
-#ifdef SAVE_X2Y2
-	    intToCoord(c2,x2,y2);
-#endif
-	    CalcLineDeltas(X1, Y1, X2, Y2, x1_or_len, y1_or_e1,
-			   stepmajor, stepminor, 1, NWIDTH(nwidth), octant);
-	}
-#endif /* !PREVIOUS */
-#endif /* POLYSEGMENT */
-
-#ifdef POLYSEGMENT
-	CalcLineDeltas(X1, Y1, X2, Y2, x1_or_len, y1_or_e1,
-		       stepmajor, stepminor, 1, NWIDTH(nwidth), octant);
-	/*
-	 * although the horizontal code works for polyline, it
-	 * slows down 10 pixel lines by 15%.  Thus, this
-	 * code is optimized for horizontal segments and
-	 * random orientation lines, which seems like a reasonable
-	 * assumption
-	 */
-	if (y1_or_e1 != 0)
-	{
-#endif /* POLYSEGMENT */
-	if (x1_or_len < y1_or_e1)
-	{
-#ifdef REARRANGE
-	    register int	e3;
-#endif
-
-	    e3 = x1_or_len;
-	    x1_or_len = y1_or_e1;
-	    y1_or_e1 = e3;
-
-	    e3 = stepminor;
-	    stepminor = stepmajor;
-	    stepmajor = e3;
-	    SetYMajorOctant(octant);
-	}
-
-	e = -x1_or_len;
-#ifdef POLYSEGMENT
-	if (!capStyle)
-	    x1_or_len--;
-#endif
-
-	{
-#ifdef REARRANGE
-	register int e3;
-	RROP_DECLARE
-	RROP_FETCH_GCPRIV(devPriv);
-#endif
-
-	y1_or_e1 = y1_or_e1 << 1;
-	e3 = e << 1;
-
-	FIXUP_ERROR(e, octant, bias);
-
-#if PSZ == 24
- 	if (stepmajor == 1  ||  stepmajor == -1){
- 	    stepmajor3 = stepmajor * 3;
- 	    stepminor3 = stepminor * sizeof (CfbBits);
- 	    majordx = stepmajor; minordx = 0;
-         } else {
- 	    stepmajor3 = stepmajor * sizeof (CfbBits);
- 	    stepminor3 = stepminor * 3;
- 	    majordx = 0; minordx = stepminor;
-         }
-#endif
- 
-#if PSZ == 24
-#define body {\
- 	    body_rop \
- 	    addrb += stepmajor3; \
-             xOffset += majordx; \
- 	    e += y1_or_e1; \
- 	    if (e >= 0){ \
- 	        addrb += stepminor3; \
-                 xOffset += minordx; \
- 		e += e3; \
- 	    } \
- 	}
-#else /* PSZ == 24 */
-
-#define body {\
-	    RROP_SOLID(addrp); \
-	    addrp += stepmajor; \
-	    e += y1_or_e1; \
-	    if (e >= 0) \
-	    { \
-		addrp += stepminor; \
-		e += e3; \
-	     } \
-	}
-#endif /* PSZ == 24 */
-
-#ifdef LARGE_INSTRUCTION_CACHE
-
-# ifdef SERIOUS_UNROLLING
-#  define UNROLL	16
-# else
-#  define UNROLL	4
-# endif
-#define CASE(n)	case -n: body
-
-	while ((x1_or_len -= UNROLL) >= 0)
-	{
-	    body body body body
-# if UNROLL >= 8
-	    body body body body
-# endif
-# if UNROLL >= 12
-	    body body body body
-# endif
-# if UNROLL >= 16
-	    body body body body
-# endif
-	}
-	switch (x1_or_len)
-	{
-	CASE(1) CASE(2) CASE(3)
-# if UNROLL >= 8
-	CASE(4) CASE(5) CASE(6) CASE(7)
-# endif
-# if UNROLL >= 12
-	CASE(8) CASE(9) CASE(10) CASE(11)
-# endif
-# if UNROLL >= 16
-	CASE(12) CASE(13) CASE(14) CASE(15)
-# endif
-	}
-#else /* !LARGE_INSTRUCTION_CACHE */
-
-	IMPORTANT_START
-	IMPORTANT_START
-
-	if (x1_or_len & 1)
-	    body
-	x1_or_len >>= 1;
-	while (x1_or_len--) {
-	    body body
-	}
-
-	IMPORTANT_END
-	IMPORTANT_END
-#endif /* LARGE_INSTRUCTION_CACHE */
-
-#ifdef POLYSEGMENT
-#if PSZ == 24
-	body_rop
-#else
-	RROP_SOLID(addrp);
-#endif
-#endif
-#if PSZ == 24
-	addrp = (PixelType *)((unsigned long)addrb & ~0x03);
-#endif
-	}
-#undef body
-#ifdef POLYSEGMENT
-	}
-	else /* Polysegment horizontal line optimization */
-	{
-# ifdef REARRANGE
-	    register int    e3;
-	    RROP_DECLARE
-	    RROP_FETCH_GCPRIV(devPriv);
-# endif /* REARRANGE */
-	    if (stepmajor < 0)
-	    {
-#if PSZ == 24
-		xOffset -= x1_or_len;
-		addrp = addrLineEnd + PXL2ADR(xOffset);
-#else
-		addrp -= x1_or_len;
-#endif
-		if (capStyle)
-		    x1_or_len++;
-		else
-#if PSZ == 24
-		  xOffset++;
-		addrp = addrLineEnd + PXL2ADR(xOffset);
-#else
-		    addrp++;
-#endif
-	    }
-	    else
-	    {
-#if PSZ == 24
-		addrp = addrLineEnd + PXL2ADR(xOffset);
-#endif
-		if (capStyle)
-		    x1_or_len++;
-	    }
-# if PSZ == 24
-	    y1_or_e1 = xOffset & 3;
-# else
-#  if PGSZ == 64 /* PIM value from <cfbmskbits.h> is not it! (for 16/32 PSZ)*/
-	    y1_or_e1 = ((long) addrp) & 0x7;
-	    addrp = (PixelType *) (((unsigned char *) addrp) - y1_or_e1);
-#  else
-	    y1_or_e1 = ((long) addrp) & PIM;
-	    addrp = (PixelType *) (((unsigned char *) addrp) - y1_or_e1);
-#  endif
-#if PGSZ == 32
-#  if PWSH != 2
-	    y1_or_e1 >>= (2 - PWSH);
-#  endif
-#else /* PGSZ == 64 */
-#  if PWSH != 3
-	    y1_or_e1 >>= (3 - PWSH);
-#  endif
-#endif /* PGSZ */
-# endif /* PSZ == 24 */
-#if PSZ == 24
-	    {
-#if RROP == GXcopy
-	      register int nlmiddle;
-	      int leftIndex = xOffset & 3;
-	      int rightIndex = (xOffset + x1_or_len) & 3;
-#else
-	      register int pidx;
-#endif
-
-#if RROP == GXcopy
-	      nlmiddle = x1_or_len;
-	      if(leftIndex){
-		nlmiddle -= (4 - leftIndex);
-	      }
-	      if(rightIndex){
-		nlmiddle -= rightIndex;
-	      }
-	      
-	      nlmiddle >>= 2;
-	      switch(leftIndex+x1_or_len){
-	      case 4:
-		switch(leftIndex){
-		case 0:
-		  *addrp++ = piQxelXor[0];
-		  *addrp++ = piQxelXor[1];
-		  *addrp   = piQxelXor[2];
-		  break;
-		case 1:
-		  *addrp = ((*addrp) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		  addrp++;
-		  *addrp = piQxelXor[1];
-		  addrp++;
-		  *addrp = piQxelXor[2];
-		  break;
-		case 2:
-		  *addrp = ((*addrp) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		  addrp++;
-		  *addrp = piQxelXor[2];
-		  break;
-		case 3:
-		  *addrp = ((*addrp) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-		  break;
-		}
-		break;
-	      case 3:
-		switch(leftIndex){
-		case 0:
-		  *addrp++ = piQxelXor[0];
-		  *addrp++ = piQxelXor[1];
-		  *addrp = ((*addrp) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		  break;
-		case 1:
-		  *addrp = ((*addrp) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		  addrp++;
-		  *addrp = piQxelXor[1];
-		  addrp++;
-		  *addrp = ((*addrp) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		  break;
-		case 2:
-		  *addrp = ((*addrp) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		  addrp++;
-		  *addrp = ((*addrp) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		  break;
-		}
-		break;
-	      case 2:
-		switch(leftIndex){
-/*
-		case 2:
-		  *addrp = ((*addrp) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		  addrp++;
-		  *addrp = ((*addrp) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		  break;
-*/
-		case 1:
-		  *addrp = ((*addrp) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		  addrp++;
-		  *addrp = ((*addrp) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		  break;
-		case 0:
-		  *addrp++ =  piQxelXor[0];
-		  *addrp = ((*addrp) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		  break;
-		}
-		break;
-	      case 1: /*only if leftIndex = 0 and w = 1*/
-		if(x1_or_len){
-		*addrp =  ((*addrp) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);
-		}
-/*
-		else{
-		*addrp =  ((*addrp) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		addrp++;
-		*addrp =  ((*addrp) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		}
-*/
-		break;
-	      case 0: /*never*/
-		break;
-	      default:
-		{
-/*
-		  maskbits(y1_or_e1, x1_or_len, e, e3, x1_or_len)
-*/
-		  switch(leftIndex){
-		  case 0:
-		    break;
-		  case 1:
-		    *addrp = ((*addrp) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		    addrp++;
-		    *addrp = piQxelXor[1];
-		    addrp++;
-		    *addrp = piQxelXor[2];
-		    addrp++;
-		    break;
-		  case 2:
-		    *addrp = ((*addrp) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		    addrp++;
-		    *addrp = piQxelXor[2];
-		    addrp++;
-		    break;
-		  case 3:
-		    *addrp = ((*addrp) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-		    addrp++;
-		    break;
-		  }
-		  while(nlmiddle--){
-		    *addrp++ = piQxelXor[0];
-		    *addrp++ = piQxelXor[1];
-		    *addrp++ = piQxelXor[2];
-		  }
-		  switch(rightIndex++){
-		  case 0:
-		    break;
-		  case 1:
-		    *addrp = ((*addrp) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);
-		    break;
-		  case 2:
-		    *addrp++ = piQxelXor[0];
-		    *addrp = ((*addrp) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		    break;
-		  case 3:
-		    *addrp++ = piQxelXor[0];
-		    *addrp++ = piQxelXor[1];
-		    *addrp = ((*addrp) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    break;
-		  }
-/*
-		  if (e3){
-		    e3 &= 0xFFFFFF;
-		    switch(rightIndex&3){
-		    case 0:
-		      *addrp = ((*addrp) & (0xFF000000 | ~e3))
-			| (piQxelXor[0] & 0xFFFFFF & e3);
-		      break;
-		    case 1:
-		      *addrp = ((*addrp) & (0xFFFFFF | ~(e3<<24)))
-				  + (piQxelXor[0] & 0xFF000000 & (e3<<24));
-		      addrp++;
-		      *addrp = ((*addrp) & (0xFFFF0000|~(e3 >> 8)))
-				  | (piQxelXor[1] & 0xFFFF & (e3 >> 8));
-		      break;
-		    case 2:
-		      *addrp = ((*addrp) & (0xFFFF|~(e3 << 16)))
-				  | (piQxelXor[1] & 0xFFFF0000 & (e3 << 16));
-		      addrp++;
-		      *addrp = ((*addrp) & (0xFFFFFF00|~(e3>>16)))
-				  | (piQxelXor[2] & 0xFF & (e3 >> 16));
-		      break;
-		    case 3:
-		      *addrp = ((*addrp) & (0xFF|~(e3<<8)))
-				  | (piQxelXor[2] & 0xFFFFFF00 & (e3<<8));
-		      addrp++;
-		      break;
-		    }
-		  }
-*/
-		}
-	      }
-#else /* GXcopy */
-	      addrp = (PixelType *)((char *)addrLineEnd + ((xOffset * 3) & ~0x03));
-	      if (x1_or_len <= 1){
-		if (x1_or_len)
-		  RROP_SOLID24(addrp, xOffset);
-	      } else {
-		maskbits(xOffset, x1_or_len, e, e3, x1_or_len);
-		pidx = xOffset & 3;
-		if (e){
-		  RROP_SOLID_MASK(addrp, e, pidx-1);
-		  addrp++;
-		  if (pidx == 3)
-		    pidx = 0;
-		}
-		while (--x1_or_len >= 0){
-		  RROP_SOLID(addrp, pidx);
-		  addrp++;
-		  if (++pidx == 3)
-		    pidx = 0;
-		}
-		if (e3)
-		  RROP_SOLID_MASK(addrp, e3, pidx);
-	      }
-#endif /* GXcopy */
-	    }
-#else /* PSZ == 24 */
-	    if (y1_or_e1 + x1_or_len <= PPW)
-	    {
-		if (x1_or_len)
-		{
-		    maskpartialbits(y1_or_e1, x1_or_len, e)
-		    RROP_SOLID_MASK((CfbBits *) addrp, e);
-		}
-	    }
-	    else
-	    {
-	    	maskbits(y1_or_e1, x1_or_len, e, e3, x1_or_len)
-	    	if (e)
-	    	{
-		    RROP_SOLID_MASK((CfbBits *) addrp, e);
-		    addrp += PPW;
-	    	}
-		RROP_SPAN(addrp, x1_or_len)
-	    	if (e3)
-		    RROP_SOLID_MASK((CfbBits *) addrp, e3);
-	    }
-#endif /* PSZ == 24 */
-	}
-#endif /* POLYSEGMENT */
-    }
-#ifdef POLYSEGMENT
-    if (nseg >= 0)
-	return (xSegment *) ppt - pSegInit;
-#else
-    if (npt)
-    {
-#ifdef EITHER_MODE
-	if (!mode)
-#endif /* EITHER_MODE */
-#ifndef ORIGIN
-	{
-	    *x1p = _x1;
-	    *y1p = _y1;		
-	    *x2p = _x2;
-	    *y2p = _y2;
-	}
-#endif /* !ORIGIN */	    
-	return ((DDXPointPtr) ppt - pptInit) - 1;
-    }
-
-# ifndef ORIGIN
-#  define C2  c2
-# else
-#  define C2  ppt[-1]
-# endif
-#ifdef EITHER_MODE
-    if (pGC->capStyle != CapNotLast &&
-	((mode ? (C2 != *((int *) pptInitOrig))
-	       : ((_x2 != pptInitOrig->x) ||
-		  (_y2 != pptInitOrig->y)))
-	 || (ppt == ((int *)pptInitOrig) + 2)))
-#endif /* EITHER_MODE */
-#ifdef PREVIOUS
-    if (pGC->capStyle != CapNotLast &&
-	((_x2 != pptInitOrig->x) ||
-	 (_y2 != pptInitOrig->y) ||
-	 (ppt == ((int *)pptInitOrig) + 2)))
-#endif /* PREVIOUS */
-#ifdef ORIGIN
-    if (pGC->capStyle != CapNotLast &&
-	((C2 != *((int *) pptInitOrig)) ||
-	 (ppt == ((int *)pptInitOrig) + 2)))
-#endif /* !PREVIOUS */
-    {
-# ifdef REARRANGE
-	RROP_DECLARE
-
-	RROP_FETCH_GCPRIV(devPriv);
-# endif
-#if PSZ == 24
-#if RROP == GXcopy
-	    switch(xOffset & 3){
-	    case 0:
-	      *addrp = ((*addrp)&0xFF000000)|(piQxelXor[0] & 0xFFFFFF);
-	      break;
-	    case 3:
-	      *addrp = ((*addrp)&0xFF)|(piQxelXor[2] & 0xFFFFFF00);
-	      break;
-	    case 1:
-	      *addrp = ((*addrp)&0xFFFFFF)|(piQxelXor[0] & 0xFF000000);
-	      *(addrp+1) = ((*(addrp+1))&0xFFFF0000)|(piQxelXor[1] & 0xFFFF);
-	      break;
-	    case 2:
-	      *addrp = ((*addrp)&0xFFFF)|(piQxelXor[1] & 0xFFFF0000);
-	      *(addrp+1) = ((*(addrp+1))&0xFFFFFF00)|(piQxelXor[2] & 0xFF);
-	      break;
-	    }
-#endif
-#if RROP == GXxor
-	    switch(xOffset & 3){
-	    case 0:
-	      *addrp ^= (piQxelXor[0] & 0xFFFFFF);
-	      break;
-	    case 3:
-	      *addrp ^= (piQxelXor[2] & 0xFFFFFF00);
-	      break;
-	    case 1:
-	      *addrp ^= (piQxelXor[0] & 0xFF000000);
-	      *(addrp+1) ^= (piQxelXor[1] & 0xFFFF);
-	      break;
-	    case 2:
-	      *addrp ^= (piQxelXor[1] & 0xFFFF0000);
-	      *(addrp+1) ^= (piQxelXor[2] & 0xFF);
-	      break;
-	    }
-#endif
-#if RROP == GXand
-	    switch(xOffset & 3){
-	    case 0:
-	      *addrp &= (piQxelAnd[0] | 0xFF000000);
-	      break;
-	    case 3:
-	      *addrp &= (piQxelAnd[2] | 0xFF);
-	      break;
-	    case 1:
-	      *addrp &= (0xFFFFFF|piQxelAnd[0]);
-	      *(addrp+1) &= (0xFFFF0000|piQxelAnd[1]);
-	      break;
-	    case 2:
-	      *addrp &= (0xFFFF|piQxelAnd[1]);
-	      *(addrp+1) &= (0xFFFFFF00|piQxelAnd[2]);
-	      break;
-	    }
-#endif
-#if RROP == GXor
-	    switch(xOffset & 3){
-	    case 0:
-	      *addrp |= (piQxelOr[0] & 0xFFFFFF);
-	      break;
-	    case 3:
-	      *addrp |= (piQxelOr[2] & 0xFFFFFF00);
-	      break;
-	    case 1:
-	      *addrp |= (piQxelOr[0] & 0xFF000000);
-	      *(addrp+1) |= (piQxelOr[1] & 0xFFFF);
-	      break;
-	    case 2:
-	      *addrp |= (piQxelOr[1] & 0xFFFF0000);
-	      *(addrp+1) |= (piQxelOr[2] & 0xFF);
-	      break;
-	    }
-#endif
-#if RROP == GXset
-	    switch(xOffset & 3){
-	    case 0:
-	      *addrp = (((*addrp)&(piQxelAnd[0] |0xFF000000))^(piQxelXor[0] & 0xFFFFFF));
-	      break;
-	    case 3:
-	      *addrp = (((*addrp)&(piQxelAnd[2]|0xFF))^(piQxelXor[2] & 0xFFFFFF00));
-	      break;
-	    case 1:
-	      *addrp = (((*addrp)&(piQxelAnd[0]|0xFFFFFF))^(piQxelXor[0] & 0xFF000000));
-	      *(addrp+1) = (((*(addrp+1))&(piQxelAnd[1]|0xFFFF0000))^(piQxelXor[1] & 0xFFFF));
-	      break;
-	    case 2:
-	      *addrp = (((*addrp)&(piQxelAnd[1]|0xFFFF))^(piQxelXor[1] & 0xFFFF0000));
-	      *(addrp+1) = (((*(addrp+1))&(piQxelAnd[2]|0xFFFFFF00))^(piQxelXor[2] & 0xFF));
-	      break;
-	    } 
-#endif
-#else
-	RROP_SOLID (addrp);
-# endif
-    }
-#endif /* !POLYSEGMENT */
-    RROP_UNDECLARE;
-    return -1;
-}
-
-#endif /* INCLUDE_DRAW */
-
-
-#ifdef INCLUDE_OTHERS
-
-#ifdef POLYSEGMENT
-
-void
-cfb8SegmentSS1Rect (pDrawable, pGC, nseg, pSegInit)
-    DrawablePtr	    pDrawable;
-    GCPtr	    pGC;
-    int		    nseg;
-    xSegment	    *pSegInit;
-{
-    int	    (*func)(DrawablePtr, GCPtr, int, xSegment *);
-    void    (*clip)(DrawablePtr, GCPtr, int, int, int, int, BoxPtr, Bool);
-    int	    drawn;
-    cfbPrivGCPtr    devPriv;
-
-#if defined(__arm32__) && PSZ != 8
-    /* XXX -JJK */
-    /* There is a painting bug when PSZ != 8; I need to track it down! */
-    cfbSegmentSS(pDrawable, pGC, nseg, pSegInit);
-    return;
-#endif
-
-    devPriv = cfbGetGCPrivate(pGC);
-#ifdef NO_ONE_RECT
-    if (REGION_NUM_RECTS(pGC->pCompositeClip) != 1)
-    {
-       cfbSegmentSS(pDrawable, pGC, nseg, pSegInit);
-       return;
-    }
-#endif
-    switch (devPriv->rop)
-    {
-    case GXcopy:
-	func = cfb8SegmentSS1RectCopy;
-	clip = cfb8ClippedLineCopy;
-#ifdef FAST_MUL
-	if (cfbGetPixelWidth (pDrawable) == WIDTH_FAST)
-	    func = cfb8SegmentSS1RectShiftCopy;
-#endif
-	break;
-    case GXxor:
-	func = cfb8SegmentSS1RectXor;
-	clip = cfb8ClippedLineXor;
-	break;
-    default:
-	func = cfb8SegmentSS1RectGeneral;
-	clip = cfb8ClippedLineGeneral;
-	break;
-    }
-    while (nseg)
-    {
-	drawn = (*func) (pDrawable, pGC, nseg, pSegInit);
-	if (drawn == -1)
-	    break;
-	(*clip) (pDrawable, pGC,
-			 pSegInit[drawn-1].x1, pSegInit[drawn-1].y1,
-			 pSegInit[drawn-1].x2, pSegInit[drawn-1].y2,
-			 &pGC->pCompositeClip->extents,
-			 pGC->capStyle == CapNotLast);
-	pSegInit += drawn;
-	nseg -= drawn;
-    }
-}
-
-#else /* POLYSEGMENT */
-
-void
-cfb8LineSS1Rect (pDrawable, pGC, mode, npt, pptInit)
-    DrawablePtr	pDrawable;
-    GCPtr	pGC;
-    int		mode;
-    int		npt;
-    DDXPointPtr	pptInit;
-{
-    int	    (*func)(DrawablePtr, GCPtr, int, int, 
-		    DDXPointPtr, DDXPointPtr,
-		    int *, int *, int *, int *);
-    void    (*clip)(DrawablePtr, GCPtr, int, int, int, int, BoxPtr, Bool);
-    int	    drawn;
-    cfbPrivGCPtr    devPriv;
-    int x1, y1, x2, y2;
-    DDXPointPtr pptInitOrig = pptInit;
-
-#if defined(__arm32__) && PSZ != 8
-    /* XXX -JJK */
-    /* There is a painting bug when PSZ != 8; I need to track it down! */
-    cfbLineSS(pDrawable, pGC, mode, npt, pptInit);
-    return;
-#endif
-
-    devPriv = cfbGetGCPrivate(pGC);
-#ifdef NO_ONE_RECT
-    if (REGION_NUM_RECTS(pGC->pCompositeClip) != 1)
-    {
-       cfbLineSS(pDrawable, pGC, mode, npt, pptInit);
-       return;
-    }
-#endif
-    switch (devPriv->rop)
-    {
-    case GXcopy:
-	func = cfb8LineSS1RectCopy;
-	clip = cfb8ClippedLineCopy;
-	if (mode == CoordModePrevious)
-	    func = cfb8LineSS1RectPreviousCopy;
-	break;
-    case GXxor:
-	func = cfb8LineSS1RectXor;
-	clip = cfb8ClippedLineXor;
-	break;
-    default:
-	func = cfb8LineSS1RectGeneral;
-	clip = cfb8ClippedLineGeneral;
-	break;
-    }
-    if (mode == CoordModePrevious)
-    {
-	x1 = pptInit->x;
-	y1 = pptInit->y;
-	while (npt > 1)
-	{
-	    drawn = (*func) (pDrawable, pGC, mode, npt, pptInit, pptInitOrig,
-			     &x1, &y1, &x2, &y2);
-	    if (drawn == -1)
-		break;
-	    (*clip) (pDrawable, pGC, x1, y1, x2, y2,
-		     &pGC->pCompositeClip->extents,
-		     drawn != npt - 1 || pGC->capStyle == CapNotLast);
-	    pptInit += drawn;
-	    npt -= drawn;
-	    x1 = x2;
-	    y1 = y2;
-	}
-    }
-    else
-    {
-	while (npt > 1)
-	{
-	    drawn = (*func) (pDrawable, pGC, mode, npt, pptInit, pptInitOrig,
-			     &x1, &y1, &x2, &y2);
-	    if (drawn == -1)
-		break;
-	    (*clip) (pDrawable, pGC,
-		     pptInit[drawn-1].x, pptInit[drawn-1].y,
-		     pptInit[drawn].x, pptInit[drawn].y,
-		     &pGC->pCompositeClip->extents,
-		     drawn != npt - 1 || pGC->capStyle == CapNotLast);
-	    pptInit += drawn;
-	    npt -= drawn;
-	}
-    }
-}
-
-#endif /* else POLYSEGMENT */
-#endif /* INCLUDE_OTHERS */
-
-#if !defined(POLYSEGMENT) && !defined (PREVIOUS)
-
-void
-RROP_NAME (cfb8ClippedLine) (pDrawable, pGC, x1, y1, x2, y2, boxp, shorten)
-    DrawablePtr	pDrawable;
-    GCPtr	pGC;
-    int		x1, y1, x2, y2;
-    BoxPtr	boxp;
-    Bool	shorten;
-{
-    int		    oc1, oc2;
-    int		    e, e1, e3, len;
-    int		    adx, ady;
-
-    PixelType	    *addr;
-    int		    nwidth;
-    int		    stepx, stepy;
-    int		    xorg, yorg;
-    int             new_x1, new_y1, new_x2, new_y2;
-    Bool	    pt1_clipped, pt2_clipped;
-    int		    changex, changey, result;
-#if PSZ == 24
-    PixelType   *addrLineEnd;
-    char *addrb;
-    int stepx3, stepy3;
-#endif
-    int		    octant;
-    unsigned int    bias = miGetZeroLineBias(pDrawable->pScreen);
-
-    cfbGetPixelWidthAndPointer(pDrawable, nwidth, addr);
-
-    xorg = pDrawable->x;
-    yorg = pDrawable->y;
-    x1 += xorg;
-    y1 += yorg;
-    x2 += xorg;
-    y2 += yorg;
-    oc1 = 0;
-    oc2 = 0;
-    OUTCODES (oc1, x1, y1, boxp);
-    OUTCODES (oc2, x2, y2, boxp);
-
-    if (oc1 & oc2)
-	return;
-
-    CalcLineDeltas(x1, y1, x2, y2, adx, ady, stepx, stepy, 1, nwidth, octant);
-
-    if (adx <= ady)
-    {
-	int	t;
-
-	t = adx;
-	adx = ady;
-	ady = t;
-
-	t = stepx;
-	stepx = stepy;
-	stepy = t;
-	
-	SetYMajorOctant(octant);
-    }
-    e = - adx;
-    e1 = ady << 1;
-    e3 = - (adx << 1);
-
-    FIXUP_ERROR(e, octant, bias);
-
-    new_x1 = x1;
-    new_y1 = y1;
-    new_x2 = x2;
-    new_y2 = y2;
-    pt1_clipped = 0;
-    pt2_clipped = 0;
-
-    if (IsXMajorOctant(octant))
-    {
-	result = miZeroClipLine(boxp->x1, boxp->y1, boxp->x2 - 1, boxp->y2 - 1,
-				&new_x1, &new_y1, &new_x2, &new_y2,
-				adx, ady,
-				&pt1_clipped, &pt2_clipped,
-				octant, bias, oc1, oc2);
-	if (result == -1)
-	    return;
-	
-	len = abs(new_x2 - new_x1) - 1; /* this routine needs the "-1" */
-	
-	/* if we've clipped the endpoint, always draw the full length
-	 * of the segment, because then the capstyle doesn't matter 
-	 * if x2,y2 isn't clipped, use the capstyle
-	 * (shorten == TRUE <--> CapNotLast)
-	 */
-	if (pt2_clipped || !shorten)
-	    len++;
-	
-	if (pt1_clipped)
-	{
-	    /* must calculate new error terms */
-	    changex = abs(new_x1 - x1);
-	    changey = abs(new_y1 - y1);
-	    e = e + changey * e3 + changex * e1;	    
-	}
-    }
-    else /* Y_AXIS */
-    {
-	result = miZeroClipLine(boxp->x1, boxp->y1, boxp->x2 - 1, boxp->y2 - 1,
-				&new_x1, &new_y1, &new_x2, &new_y2,
-				ady, adx,
-				&pt1_clipped, &pt2_clipped,
-				octant, bias, oc1, oc2);
-	if (result == -1)
-	    return;
-	
-	len = abs(new_y2 - new_y1) - 1; /* this routine needs the "-1" */
-	
-	/* if we've clipped the endpoint, always draw the full length
-	 * of the segment, because then the capstyle doesn't matter 
-	 * if x2,y2 isn't clipped, use the capstyle
-	 * (shorten == TRUE <--> CapNotLast)
-	 */
-	if (pt2_clipped || !shorten)
-	    len++;
-	
-	if (pt1_clipped)
-	{
-	    /* must calculate new error terms */
-	    changex = abs(new_x1 - x1);
-	    changey = abs(new_y1 - y1);
-	    e = e + changex * e3 + changey * e1;
-	}
-    }
-    x1 = new_x1;
-    y1 = new_y1;
-    {
-    register PixelType	*addrp;
-    RROP_DECLARE
-
-    RROP_FETCH_GC(pGC);
-
-#if PSZ == 24
-    addrLineEnd = addr + (y1 * nwidth);
-    addrb = (char *)addrLineEnd + x1 * 3;
-    if (stepx == 1  ||  stepx == -1){
-      stepx3 = stepx * 3;
-      stepy3 = stepy * sizeof (CfbBits);
-    } else {
-      stepx3 = stepx * sizeof (CfbBits);
-      stepy3 = stepy * 3;
-    }
-#else
-    addrp = addr + (y1 * nwidth) + x1;
-#endif
-
-#ifndef REARRANGE
-    if (!ady)
-    {
-#if PSZ == 24
-#define body {\
-	    body_rop \
-	    addrb += stepx3; \
-	}
-#else
-#define body	{ RROP_SOLID(addrp); addrp += stepx; }
-#endif
-	while (len >= PGSZB)
-	{
-	    body body body body
-#if PGSZ == 64
-	    body body body body
-#endif
-	    len -= PGSZB;
-	}
-	switch (len)
-	{
-#if PGSZ == 64
-	case  7: body case 6: body case 5: body case 4: body
-#endif
-	case  3: body case 2: body case 1: body
-	}
-#undef body
-    }
-    else
-#endif /* !REARRANGE */
-    {
-#if PSZ == 24
-#define body {\
-	    body_rop \
-	    addrb += stepx3; \
-	    e += e1; \
-	    if (e >= 0) \
-	    { \
-		addrb += stepy3; \
-		e += e3; \
-	    } \
-	}
-#else
-#define body {\
-	    RROP_SOLID(addrp); \
-	    addrp += stepx; \
-	    e += e1; \
-	    if (e >= 0) \
-	    { \
-		addrp += stepy; \
-		e += e3; \
-	     } \
-	}
-#endif
-
-#ifdef LARGE_INSTRUCTION_CACHE
-	while ((len -= PGSZB) >= 0)
-	{
-	    body body body body
-#if PGSZ == 64
-	    body body body body
-#endif
-	}
-	switch (len)
-	{
-	case  -1: body case -2: body case -3: body
-#if PGSZ == 64
-	case  -4: body case -5: body case -6: body case -7: body
-#endif
-	}
-#else /* !LARGE_INSTRUCTION_CACHE */
-	IMPORTANT_START;
-
-	while ((len -= 2) >= 0)
-	{
-	    body body;
-	}
-	if (len & 1)
-	    body;
-
-	IMPORTANT_END;
-#endif /* LARGE_INSTRUCTION_CACHE */
-    }
-#if PSZ == 24
-    body_rop
-#else
-    RROP_SOLID(addrp);
-#endif
-#undef body
-    RROP_UNDECLARE
-    }
-}
-
-#endif /* !POLYSEGMENT && !PREVIOUS */
-#endif /* PIXEL_ADDR */
diff --git a/cfb/cfballpriv.c b/cfb/cfballpriv.c
deleted file mode 100644
index 3b58266..0000000
--- a/cfb/cfballpriv.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *
-Copyright 1991, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "resource.h"
-#include "colormap.h"
-#include "colormapst.h"
-#include "cfb.h"
-#include "mi.h"
-#include "mistruct.h"
-#include "dix.h"
-#include "cfbmskbits.h"
-#include "mibstore.h"
-
-#if 1 || PSZ==8
-DevPrivateKey cfbGCPrivateKey = &cfbGCPrivateKey;
-#endif
-#ifdef CFB_NEED_SCREEN_PRIVATE
-DevPrivateKey cfbScreenPrivateKey = &cfbScreenPrivateKey;
-#endif
-
-
-Bool
-cfbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *gc_key)
-{
-    if (!gc_key || !*gc_key)
-    {
-    	if (!mfbAllocatePrivates(pScreen, &cfbGCPrivateKey))
-	    return FALSE;
-    	if (gc_key)
-	    *gc_key = cfbGCPrivateKey;
-    }
-    else
-    {
-	cfbGCPrivateKey = *gc_key;
-    }
-    return dixRequestPrivate(cfbGCPrivateKey, sizeof(cfbPrivGC));
-}
diff --git a/cfb/cfbbitblt.c b/cfb/cfbbitblt.c
deleted file mode 100644
index 00bf413..0000000
--- a/cfb/cfbbitblt.c
+++ /dev/null
@@ -1,1455 +0,0 @@
-/*
- * cfb copy area
- */
-
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Author: Keith Packard
-
-*/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"mi.h"
-#include	"cfb.h"
-#include	"cfbmskbits.h"
-#include	"cfb8bit.h"
-#include	"fastblt.h"
-#define MFB_CONSTS_ONLY
-#include	"maskbits.h"
-
-#if PSZ == 8
-#define cfbCopyPlane1toN cfbCopyPlane1to8
-#define cfbCopyPlaneNto1 cfbCopyPlane8to1
-#else
-static unsigned int FgPixel, BgPixel;
-# if PSZ == 16
-#define cfbCopyPlane1toN cfbCopyPlane1to16
-#define cfbCopyPlaneNto1 cfbCopyPlane16to1
-# endif
-# if PSZ == 24
-#define cfbCopyPlane1toN cfbCopyPlane1to24
-#define cfbCopyPlaneNto1 cfbCopyPlane24to1
-# endif
-# if PSZ == 32
-#define cfbCopyPlane1toN cfbCopyPlane1to32
-#define cfbCopyPlaneNto1 cfbCopyPlane32to1
-# endif
-#endif
-
-/* cfbBitBltcfb == cfbCopyPlaneExpand */
-RegionPtr
-cfbBitBlt (
-    register DrawablePtr pSrcDrawable,
-    register DrawablePtr pDstDrawable,
-    GC *pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty,
-    void (*doBitBlt)(
-        DrawablePtr /*pSrc*/,
-        DrawablePtr /*pDst*/,
-        int /*alu*/,
-        RegionPtr /*prgnDst*/,
-        DDXPointPtr /*pptSrc*/,
-        unsigned long /*planemask*/),
-    unsigned long bitPlane)
-{
-    RegionPtr prgnSrcClip = NULL; /* may be a new region, or just a copy */
-    Bool freeSrcClip = FALSE;
-
-    RegionPtr prgnExposed;
-    RegionRec rgnDst;
-    DDXPointPtr pptSrc;
-    register DDXPointPtr ppt;
-    register BoxPtr pbox;
-    int i;
-    register int dx;
-    register int dy;
-    xRectangle origSource;
-    DDXPointRec origDest;
-    int numRects;
-    BoxRec fastBox;
-    int fastClip = 0;		/* for fast clipping with pixmap source */
-    int fastExpose = 0;		/* for fast exposures with pixmap source */
-
-    origSource.x = srcx;
-    origSource.y = srcy;
-    origSource.width = width;
-    origSource.height = height;
-    origDest.x = dstx;
-    origDest.y = dsty;
-
-    if ((pSrcDrawable != pDstDrawable) &&
-	pSrcDrawable->pScreen->SourceValidate)
-    {
-	(*pSrcDrawable->pScreen->SourceValidate) (pSrcDrawable, srcx, srcy, width, height);
-    }
-
-    srcx += pSrcDrawable->x;
-    srcy += pSrcDrawable->y;
-
-    /* clip the source */
-
-    if (pSrcDrawable->type == DRAWABLE_PIXMAP)
-    {
-	if ((pSrcDrawable == pDstDrawable) &&
-	    (pGC->clientClipType == CT_NONE))
-	{
-	    prgnSrcClip = cfbGetCompositeClip(pGC);
-	}
-	else
-	{
-	    fastClip = 1;
-	}
-    }
-    else
-    {
-	if (pGC->subWindowMode == IncludeInferiors)
-	{
-	    /*
-	     * XFree86 DDX empties the border clip when the
-	     * VT is inactive
-	     */
-	    if (!((WindowPtr) pSrcDrawable)->parent &&
-		REGION_NOTEMPTY (pSrcDrawable->pScreen,
-				 &((WindowPtr) pSrcDrawable)->borderClip))
-	    {
-		/*
-		 * special case bitblt from root window in
-		 * IncludeInferiors mode; just like from a pixmap
-		 */
-		fastClip = 1;
-	    }
-	    else if ((pSrcDrawable == pDstDrawable) &&
-		(pGC->clientClipType == CT_NONE))
-	    {
-		prgnSrcClip = cfbGetCompositeClip(pGC);
-	    }
-	    else
-	    {
-		prgnSrcClip = NotClippedByChildren((WindowPtr)pSrcDrawable);
-		freeSrcClip = TRUE;
-	    }
-	}
-	else
-	{
-	    prgnSrcClip = &((WindowPtr)pSrcDrawable)->clipList;
-	}
-    }
-
-    fastBox.x1 = srcx;
-    fastBox.y1 = srcy;
-    fastBox.x2 = srcx + width;
-    fastBox.y2 = srcy + height;
-
-    /* Don't create a source region if we are doing a fast clip */
-    if (fastClip)
-    {
-	fastExpose = 1;
-	/*
-	 * clip the source; if regions extend beyond the source size,
- 	 * make sure exposure events get sent
-	 */
-	if (fastBox.x1 < pSrcDrawable->x)
-	{
-	    fastBox.x1 = pSrcDrawable->x;
-	    fastExpose = 0;
-	}
-	if (fastBox.y1 < pSrcDrawable->y)
-	{
-	    fastBox.y1 = pSrcDrawable->y;
-	    fastExpose = 0;
-	}
-	if (fastBox.x2 > pSrcDrawable->x + (int) pSrcDrawable->width)
-	{
-	    fastBox.x2 = pSrcDrawable->x + (int) pSrcDrawable->width;
-	    fastExpose = 0;
-	}
-	if (fastBox.y2 > pSrcDrawable->y + (int) pSrcDrawable->height)
-	{
-	    fastBox.y2 = pSrcDrawable->y + (int) pSrcDrawable->height;
-	    fastExpose = 0;
-	}
-    }
-    else
-    {
-	REGION_INIT(pGC->pScreen, &rgnDst, &fastBox, 1);
-	REGION_INTERSECT(pGC->pScreen, &rgnDst, &rgnDst, prgnSrcClip);
-    }
-
-    dstx += pDstDrawable->x;
-    dsty += pDstDrawable->y;
-
-    if (pDstDrawable->type == DRAWABLE_WINDOW)
-    {
-	if (!((WindowPtr)pDstDrawable)->realized)
-	{
-	    if (!fastClip)
-		REGION_UNINIT(pGC->pScreen, &rgnDst);
-	    if (freeSrcClip)
-		REGION_DESTROY(pGC->pScreen, prgnSrcClip);
-	    return NULL;
-	}
-    }
-
-    dx = srcx - dstx;
-    dy = srcy - dsty;
-
-    /* Translate and clip the dst to the destination composite clip */
-    if (fastClip)
-    {
-	RegionPtr cclip;
-
-        /* Translate the region directly */
-        fastBox.x1 -= dx;
-        fastBox.x2 -= dx;
-        fastBox.y1 -= dy;
-        fastBox.y2 -= dy;
-
-	/* If the destination composite clip is one rectangle we can
-	   do the clip directly.  Otherwise we have to create a full
-	   blown region and call intersect */
-
-	/* XXX because CopyPlane uses this routine for 8-to-1 bit
-	 * copies, this next line *must* also correctly fetch the
-	 * composite clip from an mfb gc
-	 */
-
-	cclip = cfbGetCompositeClip(pGC);
-        if (REGION_NUM_RECTS(cclip) == 1)
-        {
-	    BoxPtr pBox = REGION_RECTS(cclip);
-
-	    if (fastBox.x1 < pBox->x1) fastBox.x1 = pBox->x1;
-	    if (fastBox.x2 > pBox->x2) fastBox.x2 = pBox->x2;
-	    if (fastBox.y1 < pBox->y1) fastBox.y1 = pBox->y1;
-	    if (fastBox.y2 > pBox->y2) fastBox.y2 = pBox->y2;
-
-	    /* Check to see if the region is empty */
-	    if (fastBox.x1 >= fastBox.x2 || fastBox.y1 >= fastBox.y2)
-	    {
-		REGION_NULL(pGC->pScreen, &rgnDst);
-	    }
-	    else
-	    {
-		REGION_INIT(pGC->pScreen, &rgnDst, &fastBox, 1);
-	    }
-	}
-        else
-	{
-	    /* We must turn off fastClip now, since we must create
-	       a full blown region.  It is intersected with the
-	       composite clip below. */
-	    fastClip = 0;
-	    REGION_INIT(pGC->pScreen, &rgnDst, &fastBox,1);
-	}
-    }
-    else
-    {
-        REGION_TRANSLATE(pGC->pScreen, &rgnDst, -dx, -dy);
-    }
-
-    if (!fastClip)
-    {
-	REGION_INTERSECT(pGC->pScreen, &rgnDst,
-				   &rgnDst,
-				   cfbGetCompositeClip(pGC));
-    }
-
-    /* Do bit blitting */
-    numRects = REGION_NUM_RECTS(&rgnDst);
-    if (numRects && width && height)
-    {
-	if(!(pptSrc = (DDXPointPtr)xalloc(numRects *
-						  sizeof(DDXPointRec))))
-	{
-	    REGION_UNINIT(pGC->pScreen, &rgnDst);
-	    if (freeSrcClip)
-		REGION_DESTROY(pGC->pScreen, prgnSrcClip);
-	    return NULL;
-	}
-	pbox = REGION_RECTS(&rgnDst);
-	ppt = pptSrc;
-	for (i = numRects; --i >= 0; pbox++, ppt++)
-	{
-	    ppt->x = pbox->x1 + dx;
-	    ppt->y = pbox->y1 + dy;
-	}
-
-	(*doBitBlt) (pSrcDrawable, pDstDrawable, pGC->alu, &rgnDst, pptSrc, pGC->planemask);
-	xfree(pptSrc);
-    }
-
-    prgnExposed = NULL;
-    if (pGC->fExpose)
-    {
-        /* Pixmap sources generate a NoExposed (we return NULL to do this) */
-        if (!fastExpose)
-	    prgnExposed =
-		miHandleExposures(pSrcDrawable, pDstDrawable, pGC,
-				  origSource.x, origSource.y,
-				  (int)origSource.width,
-				  (int)origSource.height,
-				  origDest.x, origDest.y, bitPlane);
-    }
-    REGION_UNINIT(pGC->pScreen, &rgnDst);
-    if (freeSrcClip)
-	REGION_DESTROY(pGC->pScreen, prgnSrcClip);
-    return prgnExposed;
-}
-
-
-RegionPtr
-cfbCopyPlaneReduce (
-    register DrawablePtr pSrcDrawable,
-    register DrawablePtr pDstDrawable,
-    GC *pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty,
-    void (*doCopyPlane)(
-        DrawablePtr /*pSrc*/,
-        DrawablePtr /*pDst*/,
-        int /*alu*/,
-        RegionPtr /*prgnDst*/,
-        DDXPointPtr /*pptSrc*/,
-        unsigned long /*planemask*/,
-        unsigned long /*bitPlane*/),
-    unsigned long bitPlane)
-{
-    RegionPtr prgnSrcClip = NULL; /* may be a new region, or just a copy */
-    Bool freeSrcClip = FALSE;
-
-    RegionPtr prgnExposed;
-    RegionRec rgnDst;
-    DDXPointPtr pptSrc;
-    register DDXPointPtr ppt;
-    register BoxPtr pbox;
-    int i;
-    register int dx;
-    register int dy;
-    xRectangle origSource;
-    DDXPointRec origDest;
-    int numRects;
-    BoxRec fastBox;
-    int fastClip = 0;		/* for fast clipping with pixmap source */
-    int fastExpose = 0;		/* for fast exposures with pixmap source */
-
-    origSource.x = srcx;
-    origSource.y = srcy;
-    origSource.width = width;
-    origSource.height = height;
-    origDest.x = dstx;
-    origDest.y = dsty;
-
-    if ((pSrcDrawable != pDstDrawable) &&
-	pSrcDrawable->pScreen->SourceValidate)
-    {
-	(*pSrcDrawable->pScreen->SourceValidate) (pSrcDrawable, srcx, srcy, width, height);
-    }
-
-    srcx += pSrcDrawable->x;
-    srcy += pSrcDrawable->y;
-
-    /* clip the source */
-
-    if (pSrcDrawable->type == DRAWABLE_PIXMAP)
-    {
-	if ((pSrcDrawable == pDstDrawable) &&
-	    (pGC->clientClipType == CT_NONE))
-	{
-	    prgnSrcClip = cfbGetCompositeClip(pGC);
-	}
-	else
-	{
-	    fastClip = 1;
-	}
-    }
-    else
-    {
-	if (pGC->subWindowMode == IncludeInferiors)
-	{
-	    /*
-	     * XFree86 DDX empties the border clip when the
-	     * VT is inactive
-	     */
-	    if (!((WindowPtr) pSrcDrawable)->parent &&
-		REGION_NOTEMPTY (pSrcDrawable->pScreen,
-				 &((WindowPtr) pSrcDrawable)->borderClip))
-	    {
-		/*
-		 * special case bitblt from root window in
-		 * IncludeInferiors mode; just like from a pixmap
-		 */
-		fastClip = 1;
-	    }
-	    else if ((pSrcDrawable == pDstDrawable) &&
-		(pGC->clientClipType == CT_NONE))
-	    {
-		prgnSrcClip = cfbGetCompositeClip(pGC);
-	    }
-	    else
-	    {
-		prgnSrcClip = NotClippedByChildren((WindowPtr)pSrcDrawable);
-		freeSrcClip = TRUE;
-	    }
-	}
-	else
-	{
-	    prgnSrcClip = &((WindowPtr)pSrcDrawable)->clipList;
-	}
-    }
-
-    fastBox.x1 = srcx;
-    fastBox.y1 = srcy;
-    fastBox.x2 = srcx + width;
-    fastBox.y2 = srcy + height;
-
-    /* Don't create a source region if we are doing a fast clip */
-    if (fastClip)
-    {
-	fastExpose = 1;
-	/*
-	 * clip the source; if regions extend beyond the source size,
- 	 * make sure exposure events get sent
-	 */
-	if (fastBox.x1 < pSrcDrawable->x)
-	{
-	    fastBox.x1 = pSrcDrawable->x;
-	    fastExpose = 0;
-	}
-	if (fastBox.y1 < pSrcDrawable->y)
-	{
-	    fastBox.y1 = pSrcDrawable->y;
-	    fastExpose = 0;
-	}
-	if (fastBox.x2 > pSrcDrawable->x + (int) pSrcDrawable->width)
-	{
-	    fastBox.x2 = pSrcDrawable->x + (int) pSrcDrawable->width;
-	    fastExpose = 0;
-	}
-	if (fastBox.y2 > pSrcDrawable->y + (int) pSrcDrawable->height)
-	{
-	    fastBox.y2 = pSrcDrawable->y + (int) pSrcDrawable->height;
-	    fastExpose = 0;
-	}
-    }
-    else
-    {
-	REGION_INIT(pGC->pScreen, &rgnDst, &fastBox, 1);
-	REGION_INTERSECT(pGC->pScreen, &rgnDst, &rgnDst, prgnSrcClip);
-    }
-
-    dstx += pDstDrawable->x;
-    dsty += pDstDrawable->y;
-
-    if (pDstDrawable->type == DRAWABLE_WINDOW)
-    {
-	if (!((WindowPtr)pDstDrawable)->realized)
-	{
-	    if (!fastClip)
-		REGION_UNINIT(pGC->pScreen, &rgnDst);
-	    if (freeSrcClip)
-		REGION_DESTROY(pGC->pScreen, prgnSrcClip);
-	    return NULL;
-	}
-    }
-
-    dx = srcx - dstx;
-    dy = srcy - dsty;
-
-    /* Translate and clip the dst to the destination composite clip */
-    if (fastClip)
-    {
-	RegionPtr cclip;
-
-        /* Translate the region directly */
-        fastBox.x1 -= dx;
-        fastBox.x2 -= dx;
-        fastBox.y1 -= dy;
-        fastBox.y2 -= dy;
-
-	/* If the destination composite clip is one rectangle we can
-	   do the clip directly.  Otherwise we have to create a full
-	   blown region and call intersect */
-
-	/* XXX because CopyPlane uses this routine for 8-to-1 bit
-	 * copies, this next line *must* also correctly fetch the
-	 * composite clip from an mfb gc
-	 */
-
-	cclip = cfbGetCompositeClip(pGC);
-        if (REGION_NUM_RECTS(cclip) == 1)
-        {
-	    BoxPtr pBox = REGION_RECTS(cclip);
-
-	    if (fastBox.x1 < pBox->x1) fastBox.x1 = pBox->x1;
-	    if (fastBox.x2 > pBox->x2) fastBox.x2 = pBox->x2;
-	    if (fastBox.y1 < pBox->y1) fastBox.y1 = pBox->y1;
-	    if (fastBox.y2 > pBox->y2) fastBox.y2 = pBox->y2;
-
-	    /* Check to see if the region is empty */
-	    if (fastBox.x1 >= fastBox.x2 || fastBox.y1 >= fastBox.y2)
-	    {
-		REGION_NULL(pGC->pScreen, &rgnDst);
-	    }
-	    else
-	    {
-		REGION_INIT(pGC->pScreen, &rgnDst, &fastBox, 1);
-	    }
-	}
-        else
-	{
-	    /* We must turn off fastClip now, since we must create
-	       a full blown region.  It is intersected with the
-	       composite clip below. */
-	    fastClip = 0;
-	    REGION_INIT(pGC->pScreen, &rgnDst, &fastBox, 1);
-	}
-    }
-    else
-    {
-        REGION_TRANSLATE(pGC->pScreen, &rgnDst, -dx, -dy);
-    }
-
-    if (!fastClip)
-    {
-	REGION_INTERSECT(pGC->pScreen, &rgnDst,
-				   &rgnDst,
-				   cfbGetCompositeClip(pGC));
-    }
-
-    /* Do bit blitting */
-    numRects = REGION_NUM_RECTS(&rgnDst);
-    if (numRects && width && height)
-    {
-	if(!(pptSrc = (DDXPointPtr)xalloc(numRects *
-						  sizeof(DDXPointRec))))
-	{
-	    REGION_UNINIT(pGC->pScreen, &rgnDst);
-	    if (freeSrcClip)
-		REGION_DESTROY(pGC->pScreen, prgnSrcClip);
-	    return NULL;
-	}
-	pbox = REGION_RECTS(&rgnDst);
-	ppt = pptSrc;
-	for (i = numRects; --i >= 0; pbox++, ppt++)
-	{
-	    ppt->x = pbox->x1 + dx;
-	    ppt->y = pbox->y1 + dy;
-	}
-
-	(*doCopyPlane) (pSrcDrawable, pDstDrawable, pGC->alu, &rgnDst, pptSrc, pGC->planemask, bitPlane);
-	xfree(pptSrc);
-    }
-
-    prgnExposed = NULL;
-    if (pGC->fExpose)
-    {
-        /* Pixmap sources generate a NoExposed (we return NULL to do this) */
-        if (!fastExpose)
-	    prgnExposed =
-		miHandleExposures(pSrcDrawable, pDstDrawable, pGC,
-				  origSource.x, origSource.y,
-				  (int)origSource.width,
-				  (int)origSource.height,
-				  origDest.x, origDest.y, bitPlane);
-    }
-    REGION_UNINIT(pGC->pScreen, &rgnDst);
-    if (freeSrcClip)
-	REGION_DESTROY(pGC->pScreen, prgnSrcClip);
-    return prgnExposed;
-}
-
-
-void
-cfbDoBitblt (pSrc, pDst, alu, prgnDst, pptSrc, planemask)
-    DrawablePtr	    pSrc, pDst;
-    int		    alu;
-    RegionPtr	    prgnDst;
-    DDXPointPtr	    pptSrc;
-    unsigned long   planemask;
-{
-    void (*doBitBlt)(
-        DrawablePtr /*pSrc*/,
-        DrawablePtr /*pDst*/,
-        int /*alu*/,
-        RegionPtr /*prgnDst*/,
-        DDXPointPtr /*pptSrc*/,
-        unsigned long /*planemask*/)
-        = cfbDoBitbltGeneral;
-
-    if ((planemask & PMSK) == PMSK) {
-	switch (alu) {
-	case GXcopy:
-	    doBitBlt = cfbDoBitbltCopy;
-	    break;
-	case GXxor:
-	    doBitBlt = cfbDoBitbltXor;
-	    break;
-	case GXor:
-	    doBitBlt = cfbDoBitbltOr;
-	    break;
-	}
-    }
-    (*doBitBlt) (pSrc, pDst, alu, prgnDst, pptSrc, planemask);
-}
-
-RegionPtr
-cfbCopyArea(pSrcDrawable, pDstDrawable,
-            pGC, srcx, srcy, width, height, dstx, dsty)
-    register DrawablePtr pSrcDrawable;
-    register DrawablePtr pDstDrawable;
-    GC *pGC;
-    int srcx, srcy;
-    int width, height;
-    int dstx, dsty;
-{
-    void (*doBitBlt) (
-        DrawablePtr /*pSrc*/,
-        DrawablePtr /*pDst*/,
-        int /*alu*/,
-        RegionPtr /*prgnDst*/,
-        DDXPointPtr /*pptSrc*/,
-        unsigned long /*planemask*/);
-    
-    doBitBlt = cfbDoBitbltCopy;
-    if (pGC->alu != GXcopy || (pGC->planemask & PMSK) != PMSK)
-    {
-	doBitBlt = cfbDoBitbltGeneral;
-	if ((pGC->planemask & PMSK) == PMSK)
-	{
-	    switch (pGC->alu) {
-	    case GXxor:
-		doBitBlt = cfbDoBitbltXor;
-		break;
-	    case GXor:
-		doBitBlt = cfbDoBitbltOr;
-		break;
-	    }
-	}
-    }
-    return cfbBitBlt (pSrcDrawable, pDstDrawable,
-            pGC, srcx, srcy, width, height, dstx, dsty, doBitBlt, 0L);
-}
-
-#if PSZ == 8
-void
-cfbCopyPlane1to8 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc, planemask)
-    DrawablePtr pSrcDrawable;	/* must be a bitmap */
-    DrawablePtr pDstDrawable;	/* must be depth 8 drawable */
-    int	rop;		/* not used; caller must call cfb8CheckOpaqueStipple
-			 * beforehand to get cfb8StippleRRop set correctly */
-    RegionPtr prgnDst;		/* region in destination to draw to;
-				 * screen relative coords. if dest is a window;
-				 * drawable relative if dest is a pixmap */
-    DDXPointPtr pptSrc;		/* drawable relative src coords to copy from;
-				 * must be one point for each box in prgnDst */
-    unsigned long planemask;	/* to apply to destination writes */
-{
-    int	srcx, srcy;	/* upper left corner of box being copied in source */
-    int dstx, dsty;	/* upper left corner of box being copied in dest */
-    int width, height;	/* in pixels, unpadded, of box being copied */
-    int xoffSrc; /* bit # in leftmost word of row from which copying starts */
-    int xoffDst; /* byte # in leftmost word of row from which copying starts */
-    CfbBits *psrcBase, *pdstBase; /* start of drawable's pixel data */
-    int	widthSrc;    /* # of groups of 32 pixels (1 bit/pixel) in src bitmap*/
-    int widthDst;    /* # of groups of 4 pixels (8 bits/pixel) in dst */
-    CfbBits *psrcLine, *pdstLine; /* steps a row at a time thru src/dst; 
-					 * may point into middle of row */
-    register CfbBits *psrc, *pdst; /* steps within the row */
-    register CfbBits bits, tmp;	 /* bits from source */
-    register int leftShift;
-    register int rightShift;
-    CfbBits startmask;		/* left edge pixel mask */
-    CfbBits endmask;		/* right edge pixel mask */
-    register int nlMiddle;   /* number of words in middle of the row to draw */
-    register int nl;
-    int firstoff = 0;
-    int secondoff = 0;
-    CfbBits src;
-    int nbox;		/* number of boxes in region to copy */
-    BoxPtr  pbox;	/* steps thru boxes in region */
-    int pixelsRemainingOnRightEdge; /* # pixels to be drawn on a row after
-				     * the main "middle" loop */
-
-    cfbGetLongWidthAndPointer (pSrcDrawable, widthSrc, psrcBase)
-    cfbGetLongWidthAndPointer (pDstDrawable, widthDst, pdstBase)
-
-    nbox = REGION_NUM_RECTS(prgnDst);
-    pbox = REGION_RECTS(prgnDst);
-    while (nbox--)
-    {
-	dstx = pbox->x1;
-	dsty = pbox->y1;
-	srcx = pptSrc->x;
-	srcy = pptSrc->y;
-	width = pbox->x2 - pbox->x1;
-	height = pbox->y2 - pbox->y1;
-	pbox++;
-	pptSrc++;
-
-	psrcLine = psrcBase + srcy * widthSrc + (srcx >> MFB_PWSH);
-	pdstLine = pdstBase + dsty * widthDst + (dstx >> PWSH);
-	xoffSrc = srcx & MFB_PIM; /* finds starting bit in src */
-	xoffDst = dstx & PIM;  /* finds starting byte in dst */
-
-	/* compute startmask, endmask, nlMiddle */
-
-	if (xoffDst + width < PPW) /* XXX should this be '<= PPW' ? */
-	{ /* the copy only affects one word per row in destination */
-	    maskpartialbits(dstx, width, startmask);
-	    endmask = 0;  /* nothing on right edge */
-	    nlMiddle = 0; /* nothing in middle */
-	}
-	else
-	{ /* the copy will affect multiple words per row in destination */
-	    maskbits(dstx, width, startmask, endmask, nlMiddle);
-	}
-
-	/*
-	 * compute constants for the first four bits to be
-	 * copied.  This avoids troubles with partial first
-	 * writes, and difficult shift computation
-	 */
-	if (startmask)
-	{
-	    firstoff = xoffSrc - xoffDst;
-	    if (firstoff > (MFB_PPW-PPW))
-		secondoff = MFB_PPW - firstoff;
-	    if (xoffDst)
-	    {
-	    	srcx += (PPW-xoffDst);
-	    	xoffSrc = srcx & MFB_PIM;
-	    }
-	}
-	leftShift = xoffSrc;
-	rightShift = MFB_PPW - leftShift;
-
-	pixelsRemainingOnRightEdge = (nlMiddle & 7) * PPW +
-	    				((dstx + width) & PIM);
-
-	/* setup is done; now let's move some bits */
-
-	/* caller must call cfb8CheckOpaqueStipple before this function
-	 * to set cfb8StippleRRop!
-	 */
-
-	if (cfb8StippleRRop == GXcopy)
-	{
-	    while (height--)
-	    { /* one iteration of this loop copies one row */
-	    	psrc = psrcLine;
-	    	pdst = pdstLine;
-	    	psrcLine += widthSrc;
-	    	pdstLine += widthDst;
-	    	bits = *psrc++;
-	    	if (startmask)
-	    	{
-		    if (firstoff < 0)
-		    	tmp = BitRight (bits, -firstoff);
-		    else
-		    {
-		    	tmp = BitLeft (bits, firstoff);
-			/*
-			 * need a more cautious test for partialmask
-			 * case...
-			 */
-		    	if (firstoff >= (MFB_PPW-PPW))
-		    	{
-			    bits = *psrc++;
-			    if (firstoff != (MFB_PPW-PPW))
-				tmp |= BitRight (bits, secondoff);
-		    	}
-		    }
-		    *pdst = (*pdst & ~startmask) | (GetPixelGroup(tmp) & startmask);
-		    pdst++;
-	    	}
-	    	nl = nlMiddle;
-	    	while (nl >= 8)
-	    	{
-		    nl -= 8;
-		    tmp = BitLeft(bits, leftShift);
-		    bits = *psrc++;
-		    if (rightShift != MFB_PPW)
-		    	tmp |= BitRight(bits, rightShift);
-
-#ifdef FAST_CONSTANT_OFFSET_MODE
-# define StorePixels(pdst,o,pixels)	(pdst)[o] = (pixels)
-# define EndStep(pdst,o)		(pdst) += (o)
-# define StoreRopPixels(pdst,o,and,xor)	(pdst)[o] = DoRRop((pdst)[o],and,xor);
-#else
-# define StorePixels(pdst,o,pixels)	*(pdst)++ = (pixels)
-# define EndStep(pdst,o)
-# define StoreRopPixels(pdst,o,and,xor)	*(pdst) = DoRRop(*(pdst),and,xor); (pdst)++;
-#endif
-
-#define Step(c)			NextBitGroup(c);
-#define StoreBitsPlain(o,c)	StorePixels(pdst,o,GetPixelGroup(c))
-#define StoreRopBitsPlain(o,c)	StoreRopPixels(pdst,o,\
-					cfb8StippleAnd[GetBitGroup(c)], \
-					cfb8StippleXor[GetBitGroup(c)])
-#define StoreBits0(c)		StoreBitsPlain(0,c)
-#define StoreRopBits0(c)	StoreRopBitsPlain(0,c)
-
-#if (BITMAP_BIT_ORDER == MSBFirst)
-# define StoreBits(o,c)	StoreBitsPlain(o,c)
-# define StoreRopBits(o,c)  StoreRopBitsPlain(o,c)
-# define FirstStep(c)	Step(c)
-#else /* BITMAP_BIT_ORDER == LSBFirst */
-#if PGSZ == 64
-# define StoreBits(o,c)	StorePixels(pdst,o, (cfb8Pixels[c & 0xff]))
-# define StoreRopBits(o,c)  StoreRopPixels(pdst,o, \
-    (cfb8StippleAnd[c & 0xff]), \
-    (cfb8StippleXor[c & 0xff]))
-# define FirstStep(c)	c = BitLeft (c, 8);
-#else
-/* 0x3c is 0xf << 2 (4 bits, long word) */
-# define StoreBits(o,c)	StorePixels(pdst,o,*((CfbBits *)\
-			    (((char *) cfb8Pixels) + (c & 0x3c))))
-# define StoreRopBits(o,c)  StoreRopPixels(pdst,o, \
-    *((CfbBits *) (((char *) cfb8StippleAnd) + (c & 0x3c))), \
-    *((CfbBits *) (((char *) cfb8StippleXor) + (c & 0x3c))))
-# define FirstStep(c)	c = BitLeft (c, 2);
-#endif /* PGSZ */
-#endif /* BITMAP_BIT_ORDER */
-
-		    StoreBits0(tmp);	FirstStep(tmp);
-		    StoreBits(1,tmp);	Step(tmp);
-		    StoreBits(2,tmp);	Step(tmp);
-		    StoreBits(3,tmp);	Step(tmp);
-		    StoreBits(4,tmp);	Step(tmp);
-		    StoreBits(5,tmp);	Step(tmp);
-		    StoreBits(6,tmp);	Step(tmp);
-		    StoreBits(7,tmp);   EndStep (pdst,8);
-	    	}
-
-		/* do rest of middle and partial word on right edge */
-
-	    	if (pixelsRemainingOnRightEdge)
-	    	{
-		    tmp = BitLeft(bits, leftShift);
-
-		    if (pixelsRemainingOnRightEdge > rightShift)
-		    {
-		    	bits = *psrc++;
-		    	tmp |= BitRight (bits, rightShift);
-		    }
-		    EndStep (pdst, nl);
-		    switch (nl)
-		    {
-		    case 7:
-			StoreBitsPlain(-7,tmp);	Step(tmp);
-		    case 6:
-			StoreBitsPlain(-6,tmp);	Step(tmp);
-		    case 5:
-			StoreBitsPlain(-5,tmp);	Step(tmp);
-		    case 4:
-			StoreBitsPlain(-4,tmp);	Step(tmp);
-		    case 3:
-			StoreBitsPlain(-3,tmp);	Step(tmp);
-		    case 2:
-			StoreBitsPlain(-2,tmp);	Step(tmp);
-		    case 1:
-			StoreBitsPlain(-1,tmp);	Step(tmp);
-		    }
-		    if (endmask)
-		    	*pdst = (*pdst & ~endmask) | (GetPixelGroup(tmp) & endmask);
-	    	}
-	    }
-	}
-	else /* cfb8StippleRRop != GXcopy */
-	{
-	    while (height--)
-	    { /* one iteration of this loop copies one row */
-	    	psrc = psrcLine;
-	    	pdst = pdstLine;
-	    	psrcLine += widthSrc;
-	    	pdstLine += widthDst;
-	    	bits = *psrc++;
-
-		/* do partial word on left edge */
-
-	    	if (startmask)
-	    	{
-		    if (firstoff < 0)
-		    	tmp = BitRight (bits, -firstoff);
-		    else
-		    {
-		    	tmp = BitLeft (bits, firstoff);
-		    	if (firstoff >= (MFB_PPW-PPW))
-		    	{
-			    bits = *psrc++;
-			    if (firstoff != (MFB_PPW-PPW))
-				tmp |= BitRight (bits, secondoff);
-		    	}
-		    }
-		    src = GetBitGroup(tmp);
-		    *pdst = MaskRRopPixels (*pdst, src, startmask);
-		    pdst++;
-	    	}
-
-		/* do middle of row */
-
-	    	nl = nlMiddle;
-		while (nl >= 8)
-		{
-		    nl -= 8;
-		    tmp = BitLeft(bits, leftShift);
-		    bits = *psrc++;
-		    if (rightShift != MFB_PPW)
-			tmp |= BitRight(bits, rightShift);
-		    StoreRopBits0(tmp);		FirstStep(tmp);
-		    StoreRopBits(1,tmp);	Step(tmp);
-		    StoreRopBits(2,tmp);	Step(tmp);
-		    StoreRopBits(3,tmp);	Step(tmp);
-		    StoreRopBits(4,tmp);	Step(tmp);
-		    StoreRopBits(5,tmp);	Step(tmp);
-		    StoreRopBits(6,tmp);	Step(tmp);
-		    StoreRopBits(7,tmp);	EndStep(pdst,8);
-		}
-
-		/* do rest of middle and partial word on right edge */
-
-	    	if (pixelsRemainingOnRightEdge)
-	    	{
-		    tmp = BitLeft(bits, leftShift);
-
-		    if (pixelsRemainingOnRightEdge > rightShift)
-		    {
-		    	bits = *psrc++; /* XXX purify abr here */
-		    	tmp |= BitRight (bits, rightShift);
-		    }
-		    while (nl--)
-		    {
-			src = GetBitGroup (tmp);
-			*pdst = RRopPixels (*pdst, src);
-		    	pdst++;
-			NextBitGroup(tmp);
-		    }
-		    if (endmask)
-		    {
-			src = GetBitGroup (tmp);
-			*pdst = MaskRRopPixels (*pdst, src, endmask);
-		    }
-	    	}
-	    } /* end copy one row */
-	} /* end alu is non-copy-mode case */
-    } /* end iteration over region boxes */
-}
-
-#else /* PSZ == 8 */
-
-#define mfbmaskbits(x, w, startmask, endmask, nlw) \
-    startmask = mfbGetstarttab((x)&0x1f); \
-    endmask = mfbGetendtab(((x)+(w)) & 0x1f); \
-    if (startmask) \
-	nlw = (((w) - (32 - ((x)&0x1f))) >> 5); \
-    else \
-	nlw = (w) >> 5;
-
-#define mfbmaskpartialbits(x, w, mask) \
-    mask = mfbGetpartmasks((x)&0x1f,(w)&0x1f);
-
-#define LeftMost    0
-#define StepBit(bit, inc)  ((bit) += (inc))
-
-
-#define GetBits(psrc, nBits, curBit, bitPos, bits) {\
-    bits = 0; \
-    while (nBits--) \
-    { \
-	bits |= ((*psrc++ >> bitPos) & 1) << curBit; \
-	StepBit (curBit, 1); \
-    } \
-}
-
-/******************************************************************/
-
-static void
-#if PSZ == 16
-cfbCopyPlane1to16
-#endif
-#if PSZ == 24
-cfbCopyPlane1to24
-#endif
-#if PSZ == 32
-cfbCopyPlane1to32
-#endif
-(
-    DrawablePtr pSrcDrawable,
-    DrawablePtr pDstDrawable,
-    int	rop,
-    RegionPtr prgnDst,
-    DDXPointPtr pptSrc,
-    unsigned long planemask)
-{
-    int	srcx, srcy, dstx, dsty;
-    int width, height;
-    int xoffSrc;
-    CfbBits *psrcBase, *pdstBase;
-    int	widthSrc, widthDst;
-    unsigned int *psrcLine;
-    register unsigned int *psrc;
-#if PSZ == 16
-    unsigned short *pdstLine;
-    register unsigned short *pdst;
-#endif
-#if PSZ == 32
-    unsigned int *pdstLine;
-    register unsigned int *pdst;
-#endif
-#if PSZ == 24
-    unsigned char *pdstLine;
-    register unsigned char *pdst;
-#endif
-    register unsigned int  bits, tmp;
-    register unsigned int  fgpixel, bgpixel;
-    register unsigned int  src;
-#if PSZ == 24
-    register unsigned int  dst;
-#endif
-    register int  leftShift, rightShift;
-    register int  i, nl;
-    int nbox;
-    BoxPtr pbox;
-    int  result;
-
-#if PSZ == 16
-    unsigned int doublet[4];	/* Pixel values for 16bpp expansion. */
-#endif
-#if PSZ == 32
-    unsigned int doublet[8];	/* Pixel values for 32bpp expansion */
-#endif
-
-    fgpixel = FgPixel & planemask;
-    bgpixel = BgPixel & planemask;    
-
-#if PSZ == 16
-    if (rop == GXcopy && (planemask & PMSK) == PMSK) {
-        doublet[0] = bgpixel | (bgpixel << 16);
-        doublet[1] = fgpixel | (bgpixel << 16);
-        doublet[2] = bgpixel | (fgpixel << 16);
-        doublet[3] = fgpixel | (fgpixel << 16);
-    }
-#endif
-#if PSZ == 32
-    if (rop == GXcopy && (planemask & PMSK) == PMSK) {
-        doublet[0] = bgpixel; doublet[1] = bgpixel;
-        doublet[2] = fgpixel; doublet[3] = bgpixel;
-        doublet[4] = bgpixel; doublet[5] = fgpixel;
-        doublet[6] = fgpixel; doublet[7] = fgpixel;
-    }
-#endif
-
-    /* must explicitly ask for "int" widths, as code below expects it */
-    /* on some machines (Alpha), "long" and "int" are not the same size */
-    cfbGetTypedWidthAndPointer (pSrcDrawable, widthSrc, psrcBase, int, CfbBits)
-    cfbGetTypedWidthAndPointer (pDstDrawable, widthDst, pdstBase, int, CfbBits)
-
-#if PSZ == 16
-    widthDst <<= 1;
-#endif
-#if PSZ == 24
-    widthDst <<= 2;
-#endif
-
-    nbox = REGION_NUM_RECTS(prgnDst);
-    pbox = REGION_RECTS(prgnDst);
-
-    while (nbox--)
-    {
-	dstx = pbox->x1;
-	dsty = pbox->y1;
-	srcx = pptSrc->x;
-	srcy = pptSrc->y;
-	width = pbox->x2 - pbox->x1;
-	height = pbox->y2 - pbox->y1;
-	pbox++;
-	pptSrc++;
-	psrcLine = (unsigned int *)psrcBase + srcy * widthSrc + (srcx >> 5);
-#if PSZ == 16
-	pdstLine = (unsigned short *)pdstBase + dsty * widthDst + dstx;
-#endif
-#if PSZ == 24
-	pdstLine = (unsigned char *)pdstBase + dsty * widthDst + dstx * 3;
-#endif
-#if PSZ == 32
-	pdstLine = (unsigned int *)pdstBase + dsty * widthDst + dstx;
-#endif
-	xoffSrc = srcx & 0x1f;
-
-	/*
-	 * compute constants for the first four bits to be
-	 * copied.  This avoids troubles with partial first
-	 * writes, and difficult shift computation
-	 */
-	leftShift = xoffSrc;
-	rightShift = 32 - leftShift;
-
-	if (rop == GXcopy && (planemask & PMSK) == PMSK)
-	{
-	    while (height--)
-	    {
-	        psrc = psrcLine;
-	        pdst = pdstLine;
-	        psrcLine += widthSrc;
-	        pdstLine += widthDst;
-	        bits = *psrc++;
-	        nl = width;
-   	        while (nl >= 32)
-	        {
-		    tmp = BitLeft(bits, leftShift);
-		    bits = *psrc++;
-		    if (rightShift != 32)
-		        tmp |= BitRight(bits, rightShift);
-		    i = 0;
-#if PSZ == 16
-		    /*
-		     * I've thrown in some optimization to at least write
-		     * some aligned 32-bit words instead of 16-bit shorts.
-		     */
-		    if ((unsigned long)psrc & 2) {
-		        /* Write unaligned 16-bit word at left edge. */
-		        if (tmp & 0x01)
-		            *pdst = fgpixel;
-		        else
-		            *pdst = bgpixel;
-		        pdst++;
-		        i++;
-		    }
-		    while (i <= 24)
-		    {
-		        unsigned tmpbits = tmp >> i;
-		        *(unsigned int *)pdst = doublet[tmpbits & 0x03];
-	        	*(unsigned int *)(pdst + 2) =
-		            doublet[(tmpbits >> 2) & 0x03];
-	        	*(unsigned int *)(pdst + 4) =
-		            doublet[(tmpbits >> 4) & 0x03];
-	        	*(unsigned int *)(pdst + 6) =
-		            doublet[(tmpbits >> 6) & 0x03];
-		        pdst += 8;	/* Advance four 32-bit words. */
-		        i += 8;
-		    }
-		    while (i <= 30)
-		    {
-		        *(unsigned int *)pdst =
-		            doublet[(tmp >> i) & 0x03];
-		        pdst += 2;	/* Advance one 32-bit word. */
-		        i += 2;
-		    }
-		    if (i == 31) {
-		        if ((tmp >> 31) & 0x01)
-		            *pdst = fgpixel;
-		        else
-		            *pdst = bgpixel;
-		        pdst++;
-		    }
-#endif		    
-#if PSZ == 24
-		    while (i < 32) {
-		        if ((tmp >> i) & 0x01) {
-		            *pdst = fgpixel;
-		            *(pdst + 1) = fgpixel >> 8;
-		            *(pdst + 2) = fgpixel >> 16;
-		        }
-		        else {
-		            *pdst = bgpixel;
-		            *(pdst + 1) = bgpixel >> 8;
-		            *(pdst + 2) = bgpixel >> 16;
-		        }
-		        pdst += 3;
-		        i++;
-		    }
-#endif
-#if PSZ == 32
-		    while (i <= 28) {
-		        int pair;
-		        pair = (tmp >> i) & 0x03;
-		        *pdst = doublet[pair * 2];
-		        *(pdst + 1) = doublet[pair * 2 + 1];
-		        pair = (tmp >> (i + 2)) & 0x03;
-		        *(pdst + 2) = doublet[pair * 2];
-		        *(pdst + 3) = doublet[pair * 2 + 1];
-		        pdst += 4;
-		        i += 4;
-		    }
-		    while (i < 32) {
-		        *pdst = ((tmp >> i) & 0x01) ? fgpixel : bgpixel;
-		        pdst++;
-		        i++;
-		    }
-#endif
-		    nl -= 32;
-	        }
-
-	        if (nl)
-	        {
-		    tmp = BitLeft(bits, leftShift);
-		    /*
-		     * better condition needed -- mustn't run
-		     * off the end of the source...
-		     */
-		    if (rightShift != 32)
-		    {
-		        bits = *psrc++;
-		        tmp |= BitRight (bits, rightShift);
-		    }
-		    i = 32;
-		    while (nl--)
-		    {
-		        --i;
-#if PSZ == 24
-		        if ((tmp >> (31 - i)) & 0x01) {
-		            *pdst = fgpixel;
-		            *(pdst + 1) = fgpixel >> 8;
-		            *(pdst + 2) = fgpixel >> 16;
-		        }
-		        else {
-		            *pdst = bgpixel;
-		            *(pdst + 1) = bgpixel >> 8;
-		            *(pdst + 2) = bgpixel >> 16;
-		        }
-		        pdst += 3;
-#else
-		        *pdst = ((tmp >> (31 - i)) & 0x01) ? fgpixel : bgpixel;
-		        pdst++;
-#endif
-		    }
-	        }
-            }
-        }
-	else
-	{
-	    while (height--)
-	    {
-	        psrc = psrcLine;
-	        pdst = pdstLine;
-	        psrcLine += widthSrc;
-	        pdstLine += widthDst;
-	        bits = *psrc++;
-	        nl = width;
-   	        while (nl >= 32)
-	        {
-		    tmp = BitLeft(bits, leftShift);
-		    bits = *psrc++;
-		    if (rightShift != 32)
-		        tmp |= BitRight(bits, rightShift);
-		    i = 32;
-		    while (i--)
-		    {
-		        src = ((tmp >> (31 - i)) & 0x01) ? fgpixel : bgpixel;
-#if PSZ == 24
-		        dst = *pdst;
-			dst |= (*(pdst + 1)) << 8;
-			dst |= (*(pdst + 2)) << 16;
-                        DoRop (result, rop, src, dst);
-			*pdst = (dst & ~planemask) |
-		  	        (result & planemask);
-			*(pdst+1) = ((dst & ~planemask) >> 8) |
-		  	        ((result & planemask) >> 8);
-			*(pdst+2) = ((dst & ~planemask) >> 16) |
-		  	        ((result & planemask) >> 16);
-			pdst += 3;
-#else
-                        DoRop (result, rop, src, *pdst);
-
-		        *pdst = (*pdst & ~planemask) |
-		  	        (result & planemask);
-		        pdst++;
-#endif
-		    }
-		    nl -= 32;
-	        }
-
-	        if (nl)
-	        {
-		    tmp = BitLeft(bits, leftShift);
-		    /*
-		     * better condition needed -- mustn't run
-		     * off the end of the source...
-		     */
-		    if (rightShift != 32)
-		    {
-		        bits = *psrc++;
-		        tmp |= BitRight (bits, rightShift);
-		    }
-		    i = 32;
-		    while (nl--)
-		    {
-		        --i;
-		        src = ((tmp >> (31 - i)) & 0x01) ? fgpixel : bgpixel;
-#if PSZ == 24
-		        dst = *pdst;
-			dst |= (*(pdst + 1)) << 8;
-			dst |= (*(pdst + 2)) << 16;
-                        DoRop (result, rop, src, dst);
-			*pdst = (dst & ~planemask) |
-		  	        (result & planemask);
-			*(pdst+1) = ((dst & ~planemask) >> 8) |
-		  	        ((result & planemask) >> 8);
-			*(pdst+2) = ((dst & ~planemask) >> 16) |
-		  	        ((result & planemask) >> 16);
-			pdst += 3;
-#else
-                        DoRop (result, rop, src, *pdst);
-
-		        *pdst = (*pdst & ~planemask) |
-		  	        (result & planemask);
-		        pdst++;
-#endif
-		    }
-	        }
-            }
-        }
-    }
-}
-
-#endif  /* PSZ == 8 */
-
-/* shared among all different cfb depths through linker magic */
-
-RegionPtr cfbCopyPlane(pSrcDrawable, pDstDrawable,
-	    pGC, srcx, srcy, width, height, dstx, dsty, bitPlane)
-    DrawablePtr 	pSrcDrawable;
-    DrawablePtr		pDstDrawable;
-    GCPtr		pGC;
-    int 		srcx, srcy;
-    int 		width, height;
-    int 		dstx, dsty;
-    unsigned long	bitPlane;
-{
-    RegionPtr	ret;
-
-#if IMAGE_BYTE_ORDER == LSBFirst
-
-    void (*doCopyPlaneExpand)(
-        DrawablePtr /*pSrc*/,
-        DrawablePtr /*pDst*/,
-        int /*alu*/,
-        RegionPtr /*prgnDst*/,
-        DDXPointPtr /*pptSrc*/,
-        unsigned long /*planemask*/);
-
-    if (pSrcDrawable->bitsPerPixel == 1 && pDstDrawable->bitsPerPixel == PSZ)
-    {
-    	if (bitPlane == 1)
-	{
-       	    doCopyPlaneExpand = cfbCopyPlane1toN;
-#if PSZ == 8
-	    cfb8CheckOpaqueStipple (pGC->alu,
-				    pGC->fgPixel, pGC->bgPixel,
-				    pGC->planemask);
-#else
-	    FgPixel = pGC->fgPixel;
-	    BgPixel = pGC->bgPixel;
-#endif
-    	    ret = cfbCopyPlaneExpand (pSrcDrawable, pDstDrawable,
-	    	    pGC, srcx, srcy, width, height, dstx, dsty, doCopyPlaneExpand, bitPlane);
-	}
-	else
-	    ret = miHandleExposures (pSrcDrawable, pDstDrawable,
-	    	pGC, srcx, srcy, width, height, dstx, dsty, bitPlane);
-    }
-    else if (pSrcDrawable->bitsPerPixel == PSZ && pDstDrawable->bitsPerPixel == 1)
-    {
-	int oldalu;
-
-	oldalu = pGC->alu;
-    	if ((pGC->fgPixel & 1) == 0 && (pGC->bgPixel&1) == 1)
-	    pGC->alu = mfbGetInverseAlu(pGC->alu);
-    	else if ((pGC->fgPixel & 1) == (pGC->bgPixel & 1))
-	    pGC->alu = mfbReduceRop(pGC->alu, pGC->fgPixel);
-	ret = cfbCopyPlaneReduce(pSrcDrawable, pDstDrawable,
-			 pGC, srcx, srcy, width, height, dstx, dsty, 
-			 cfbCopyPlaneNto1, bitPlane);
-	pGC->alu = oldalu;
-    }
-    else if (pSrcDrawable->bitsPerPixel == PSZ && pDstDrawable->bitsPerPixel == PSZ)
-    {
-	PixmapPtr	pBitmap;
-	ScreenPtr	pScreen = pSrcDrawable->pScreen;
-	GCPtr		pGC1;
-
-	pBitmap = (*pScreen->CreatePixmap) (pScreen, width, height, 1,
-					    CREATE_PIXMAP_USAGE_SCRATCH);
-	if (!pBitmap)
-	    return NULL;
-	pGC1 = GetScratchGC (1, pScreen);
-	if (!pGC1)
-	{
-	    (*pScreen->DestroyPixmap) (pBitmap);
-	    return NULL;
-	}
-	/*
-	 * don't need to set pGC->fgPixel,bgPixel as copyPlaneNto1
-	 * ignores pixel values, expecting the rop to "do the
-	 * right thing", which GXcopy will.
-	 */
-	ValidateGC ((DrawablePtr) pBitmap, pGC1);
-	/* no exposures here, scratch GC's don't get graphics expose */
-	cfbCopyPlaneReduce(pSrcDrawable, (DrawablePtr) pBitmap,
-			  pGC1, srcx, srcy, width, height, 0, 0, 
-			  cfbCopyPlaneNto1, bitPlane);
-#if PSZ == 8
-	cfb8CheckOpaqueStipple (pGC->alu,
-				pGC->fgPixel, pGC->bgPixel,
-				pGC->planemask);
-#else
-	    FgPixel = pGC->fgPixel;
-	    BgPixel = pGC->bgPixel;
-#endif
-	/* no exposures here, copy bits from inside a pixmap */
-	cfbCopyPlaneExpand((DrawablePtr) pBitmap, pDstDrawable, pGC,
-			    0, 0, width, height, dstx, dsty, cfbCopyPlane1toN, 1);
-	FreeScratchGC (pGC1);
-	(*pScreen->DestroyPixmap) (pBitmap);
-	/* compute resultant exposures */
-	ret = miHandleExposures (pSrcDrawable, pDstDrawable, pGC,
-				 srcx, srcy, width, height,
-				 dstx, dsty, bitPlane);
-    }
-    else
-#endif
-	ret = miCopyPlane (pSrcDrawable, pDstDrawable,
-	    pGC, srcx, srcy, width, height, dstx, dsty, bitPlane);
-    return ret;
-}
-
-
diff --git a/cfb/cfbblt.c b/cfb/cfbblt.c
deleted file mode 100644
index ff34589..0000000
--- a/cfb/cfbblt.c
+++ /dev/null
@@ -1,933 +0,0 @@
-/*
- * cfb copy area
- */
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Author: Keith Packard
-
-*/
-
-/* 24-bit bug fixes: Peter Wainwright, 1998/11/28 */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"cfb.h"
-#include	"cfbmskbits.h"
-#include	"cfb8bit.h"
-#include	"fastblt.h"
-#include	"mergerop.h"
-
-#ifdef notdef /* XXX fails right now, walks off end of pixmaps */
-#if defined (FAST_UNALIGNED_READS) && PSZ == 8
-#define DO_UNALIGNED_BITBLT
-#endif
-#endif
-
-#if defined(FAST_MEMCPY) && (MROP == Mcopy) && PSZ == 8
-#define DO_MEMCPY
-#endif
-
-/* ................................................. */
-/* SPECIAL CODE FOR 24 BITS      by Peter Wainwright */
-
-#if PSZ == 24 && (MROP) == 0
-
-/* The default macros are defined in mergerop.h, and none of them are
-   really appropriate for what we want to do.
-
-   There are two ways of fixing this: either define SLOW_24BIT_COPY
-   to copy pixel by pixel, or (by default) use the following macros
-   modified from mergerop.h
-
-   MROP_SOLID and MROP_MASK are defined for each of the operations,
-   i.e. each value of MROP.
-
-   There are special cases for Mcopy, McopyInverted, Mxor, and Mor.
-   There is a completely generic version for MROP=0, and a simplified
-   generic version which works for (Mcopy|Mxor|MandReverse|Mor).
-
-   However, the generic version does not work for the 24-bit case
-   because the pixels cannot be packed exactly into a machine word (32
-   bits).
-
-   Alternative macros MROP_SOLID24 and MROP_MASK24 are provided for
-   the 24-bit case. However, these each copy a single *pixel*, not a
-   single machine word. They take an rvalue source pixel, an lvalue
-   destination, and the pixel index. The latter is used to find the
-   position of the pixel data within the two words *dst and *(dst+1).
-
-   Further macros MROP_SOLID24P and MROP_MASK24P are used to copy from
-   an lvalue source to an lvalue destination. MROP_PIXEL24 is used to
-   assemble the source pixel from the adjacent words *src and
-   *(src+1), and this is then split between the destination words
-   using the non-P macros above.
-
-   But we want to copy entire words for the sake of efficiency.
-   Unfortunately if a plane mask is specified this must be shifted
-   from one word to the next.  Fortunately the pattern repeats after 3
-   words, so we unroll the planemask here and redefine MROP_SOLID
-   and MROP_MASK. */
-
-
-#endif /* MROP == 0 && PSZ == 24 */
-
-/* ................................................. */
-
-#if PSZ == 24
-#define BYPP 3
-#if PGSZ == 32
-#define P3W 4 /* pixels in 3 machine words */
-#define PAM 3 /* pixel align mask; PAM = P3W -1 */
-#define P2WSH 2
-#else
-#define P3W 8 /* pixels in 3 machine words */
-#define PAM 7 /* pixel align mask; PAM = P3W -1 */
-#define P2WSH 3
-#endif
-#endif
-
-void
-MROP_NAME(cfbDoBitblt)(
-    DrawablePtr	    pSrc, 
-    DrawablePtr	    pDst,
-    int		    alu,
-    RegionPtr	    prgnDst,
-    DDXPointPtr	    pptSrc,
-    unsigned long   planemask)
-{
-    CfbBits *psrcBase, *pdstBase;	
-				/* start of src and dst bitmaps */
-    int widthSrc, widthDst;	/* add to get to same position in next line */
-
-    BoxPtr pbox;
-    int nbox;
-
-    BoxPtr pboxTmp, pboxNext, pboxBase, pboxNew1, pboxNew2;
-				/* temporaries for shuffling rectangles */
-    DDXPointPtr pptTmp, pptNew1, pptNew2;
-				/* shuffling boxes entails shuffling the
-				   source points too */
-    int w, h;
-    int xdir;			/* 1 = left right, -1 = right left/ */
-    int ydir;			/* 1 = top down, -1 = bottom up */
-
-    CfbBits *psrcLine, *pdstLine;	
-				/* pointers to line with current src and dst */
-    register CfbBits *psrc;/* pointer to current src longword */
-    register CfbBits *pdst;/* pointer to current dst longword */
-
-    MROP_DECLARE_REG()
-
-				/* following used for looping through a line */
-    CfbBits startmask, endmask;	/* masks for writing ends of dst */
-    int nlMiddle;		/* whole longwords in dst */
-    int xoffSrc, xoffDst;
-    register int nl;		/* temp copy of nlMiddle */
-    int careful;
-
-#if (PSZ != 24) || (MROP != 0)
-    register int leftShift, rightShift;
-    register CfbBits bits;
-    register CfbBits bits1;
-#endif
-
-#if PSZ == 24
-#ifdef DO_MEMCPY
-    int w2;
-#endif
-
-#if MROP == 0
-    int widthSrcBytes = cfbGetByteWidth(pSrc);
-    int widthDstBytes = cfbGetByteWidth(pDst);
-#endif
-#endif
-
-    MROP_INITIALIZE(alu,planemask)
-
-    cfbGetLongWidthAndPointer (pSrc, widthSrc, psrcBase)
-
-    cfbGetLongWidthAndPointer (pDst, widthDst, pdstBase)
-
-    /* XXX we have to err on the side of safety when both are windows,
-     * because we don't know if IncludeInferiors is being used.
-     */
-    careful = ((pSrc == pDst) ||
-	       ((pSrc->type == DRAWABLE_WINDOW) &&
-		(pDst->type == DRAWABLE_WINDOW)));
-
-    pbox = REGION_RECTS(prgnDst);
-    nbox = REGION_NUM_RECTS(prgnDst);
-
-    pboxNew1 = NULL;
-    pptNew1 = NULL;
-    pboxNew2 = NULL;
-    pptNew2 = NULL;
-    if (careful && (pptSrc->y < pbox->y1))
-    {
-        /* walk source botttom to top */
-	ydir = -1;
-	widthSrc = -widthSrc;
-	widthDst = -widthDst;
-
-	if (nbox > 1)
-	{
-	    /* keep ordering in each band, reverse order of bands */
-	    pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox);
-	    if(!pboxNew1)
-		return;
-	    pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox);
-	    if(!pptNew1)
-	    {
-	        xfree(pboxNew1);
-	        return;
-	    }
-	    pboxBase = pboxNext = pbox+nbox-1;
-	    while (pboxBase >= pbox)
-	    {
-	        while ((pboxNext >= pbox) &&
-		       (pboxBase->y1 == pboxNext->y1))
-		    pboxNext--;
-	        pboxTmp = pboxNext+1;
-	        pptTmp = pptSrc + (pboxTmp - pbox);
-	        while (pboxTmp <= pboxBase)
-	        {
-		    *pboxNew1++ = *pboxTmp++;
-		    *pptNew1++ = *pptTmp++;
-	        }
-	        pboxBase = pboxNext;
-	    }
-	    pboxNew1 -= nbox;
-	    pbox = pboxNew1;
-	    pptNew1 -= nbox;
-	    pptSrc = pptNew1;
-        }
-    }
-    else
-    {
-	/* walk source top to bottom */
-	ydir = 1;
-    }
-
-    if (careful && (pptSrc->x < pbox->x1))
-    {
-	/* walk source right to left */
-        xdir = -1;
-
-	if (nbox > 1)
-	{
-	    /* reverse order of rects in each band */
-	    pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox);
-	    pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox);
-	    if(!pboxNew2 || !pptNew2)
-	    {
-		if (pptNew2) xfree(pptNew2);
-		if (pboxNew2) xfree(pboxNew2);
-		if (pboxNew1)
-		{
-		    xfree(pptNew1);
-		    xfree(pboxNew1);
-		}
-	        return;
-	    }
-	    pboxBase = pboxNext = pbox;
-	    while (pboxBase < pbox+nbox)
-	    {
-	        while ((pboxNext < pbox+nbox) &&
-		       (pboxNext->y1 == pboxBase->y1))
-		    pboxNext++;
-	        pboxTmp = pboxNext;
-	        pptTmp = pptSrc + (pboxTmp - pbox);
-	        while (pboxTmp != pboxBase)
-	        {
-		    *pboxNew2++ = *--pboxTmp;
-		    *pptNew2++ = *--pptTmp;
-	        }
-	        pboxBase = pboxNext;
-	    }
-	    pboxNew2 -= nbox;
-	    pbox = pboxNew2;
-	    pptNew2 -= nbox;
-	    pptSrc = pptNew2;
-	}
-    }
-    else
-    {
-	/* walk source left to right */
-        xdir = 1;
-    }
-
-    while(nbox--)
-    {
-	w = pbox->x2 - pbox->x1;
-	h = pbox->y2 - pbox->y1;
-
-#if PSZ == 24
-#ifdef DO_MEMCPY
-	w2 = w * BYPP;
-#endif
-#endif
-	if (ydir == -1) /* start at last scanline of rectangle */
-	{
-	    psrcLine = psrcBase + ((pptSrc->y+h-1) * -widthSrc);
-	    pdstLine = pdstBase + ((pbox->y2-1) * -widthDst);
-	}
-	else /* start at first scanline */
-	{
-	    psrcLine = psrcBase + (pptSrc->y * widthSrc);
-	    pdstLine = pdstBase + (pbox->y1 * widthDst);
-	}
-#if PSZ == 24
-	if (w == 1 && ((pbox->x1 & PAM) == 0  ||  (pbox->x1 & PAM) == PAM))
-#else
-	if ((pbox->x1 & PIM) + w <= PPW)
-#endif
-	{
-	    maskpartialbits (pbox->x1, w, endmask);
-	    startmask = 0;
-	    nlMiddle = 0;
-	}
-	else
-	{
-	    maskbits(pbox->x1, w, startmask, endmask, nlMiddle);
-	}
-
-#if PSZ == 24
-#if 0
-	nlMiddle = w - (pbox->x2 &PAM);;
-	if(pbox->x1 & PAM){
-	  nlMiddle -= (PAM+1 - (pbox->x1 &PAM));
-	}
-	nlMiddle >>= P2WSH;
-	if(nlMiddle < 0)
-	  nlMiddle = 0;
-#endif
-#endif
-
-#ifdef DO_MEMCPY
-	/* If the src and dst scanline don't overlap, do forward case.  */
-
-	if ((xdir == 1) || (pptSrc->y != pbox->y1)
-		|| (pptSrc->x + w <= pbox->x1))
-	{
-#if PSZ == 24
-	    char *psrc = (char *) psrcLine + (pptSrc->x * BYPP);
-	    char *pdst = (char *) pdstLine + (pbox->x1 * BYPP);
-#else
-	    char *psrc = (char *) psrcLine + pptSrc->x;
-	    char *pdst = (char *) pdstLine + pbox->x1;
-#endif
-	    while (h--)
-	    {
-#if PSZ == 24
-	    	memcpy(pdst, psrc, w2);
-#else
-	    	memcpy(pdst, psrc, w);
-#endif
-		pdst += widthDst << PWSH;
-		psrc += widthSrc << PWSH;
-	    }
-	}
-#else /* ! DO_MEMCPY */
-	if (xdir == 1)
-	{
-#if PSZ == 24 && MROP == 0
-	    /* Note: x is a pixel number; the byte offset is 3*x;
-	       therefore the offset within a word is (3*x) & 3 ==
-	       (4*x-x) & 3 == (-x) & 3.  The offsets therefore
-	       DECREASE by 1 for each pixel.
-	    */
-	  xoffSrc = ( - pptSrc->x) & PAM;
-	  xoffDst = ( - pbox->x1) & PAM;
-#if 1
-	  if((int)xoffSrc != (int)xoffDst /* Alignments must be same. */
-	     || ((widthDstBytes & PAM) != (widthSrcBytes & PAM) && h > 1))
-#else
-	    if(1)
-#endif
-	    /* Width also must be same, if hight > 1 */
-	    {
-	      /* ...otherwise, pixel by pixel operation */
-	  while (h--)
-	    {
-	      register int i, si, sii, di;
-
-	      for (i = 0, si = pptSrc->x, di = pbox->x1;
-		   i < w;
-		   i++, si++, di++) {
-		    psrc = psrcLine + ((si * BYPP) >> P2WSH);
-		    pdst = pdstLine + ((di * BYPP) >> P2WSH);
-		sii = (si & 3);
-		MROP_SOLID24P(psrc, pdst, sii, di);
-	      }
-	      pdstLine += widthDst;
-	      psrcLine += widthSrc;
-	    }
-	  }
-	  else
-#endif
-	  {
-
-#if PSZ == 24
-
-#if MROP != 0
-	    xoffSrc = ( - pptSrc->x) & PAM;
-	    xoffDst = ( - pbox->x1) & PAM;
-#endif
-	    pdstLine += (pbox->x1 * BYPP) >> P2WSH;
-	    psrcLine += (pptSrc->x * BYPP) >> P2WSH;
-#else
-	    xoffSrc = pptSrc->x & PIM;
-	    xoffDst = pbox->x1 & PIM;
-	    pdstLine += (pbox->x1 >> PWSH);
-	    psrcLine += (pptSrc->x >> PWSH);
-#endif
-#ifdef DO_UNALIGNED_BITBLT
-	    nl = xoffSrc - xoffDst;
-	    psrcLine = (CfbBits *)
-			(((unsigned char *) psrcLine) + nl);
-#else
-#if PSZ == 24 && MROP == 0
-	    /* alredy satisfied */
-#else
-	    if (xoffSrc == xoffDst)
-#endif
-#endif
-	    {
-		while (h--)
-		{
-#if PSZ == 24 && MROP == 0
-		    register int index;
-		    register int im3;
-#endif /*  PSZ == 24 && MROP == 0 */
-		    psrc = psrcLine;
-		    pdst = pdstLine;
-		    pdstLine += widthDst;
-		    psrcLine += widthSrc;
-#if PSZ == 24 && MROP == 0
-		    index = (int)(pdst - pdstBase);
-		    im3 = index % 3;
-#endif /*  PSZ == 24 && MROP == 0 */
-		    if (startmask)
-		    {
-#if PSZ == 24 && MROP == 0
-		      	*pdst = DoMaskMergeRop24u(*psrc, *pdst, startmask, im3);
-			index++;
-			im3 = index % 3;
-#else /* PSZ != 24 || MROP != 0 */
-			*pdst = MROP_MASK(*psrc, *pdst, startmask);
-#endif /*  PSZ == 24 && MROP == 0 */
-			psrc++;
-			pdst++;
-		    }
-
-		    nl = nlMiddle;
-#ifdef LARGE_INSTRUCTION_CACHE
-#ifdef FAST_CONSTANT_OFFSET_MODE
-
-		    psrc += nl & (UNROLL-1);
-		    pdst += nl & (UNROLL-1);
-
-#if PSZ == 24 && MROP == 0
-#define BodyOdd(n) pdst[-n] = DoMergeRop24u(psrc[-n], pdst[-n], ((int)(pdst - n - pdstBase))%3);
-#define BodyEven(n) pdst[-n] = DoMergeRop24u(psrc[-n], pdst[-n], ((int)(pdst - n - pdstBase))%3);
-#else /* PSZ != 24 || MROP != 0 */
-#define BodyOdd(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]);
-#define BodyEven(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]);
-#endif /*  PSZ == 24 && MROP == 0 */
-
-#define LoopReset \
-pdst += UNROLL; \
-psrc += UNROLL;
-
-#else
-
-#if PSZ == 24 && MROP == 0
-#define BodyOdd(n)  *pdst = DoMergeRop24u(*psrc, *pdst, im3); pdst++; psrc++; index++; im3 = index % 3;
-#define BodyEven(n) BodyOdd(n)
-#else /* PSZ != 24 || MROP != 0 */
-#define BodyOdd(n)  *pdst = MROP_SOLID (*psrc, *pdst); pdst++; psrc++;
-#define BodyEven(n) BodyOdd(n)
-#endif /*  PSZ == 24 && MROP == 0 */
-
-#define LoopReset   ;
-
-#endif
-		    PackedLoop
-
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-
-#else
-#ifdef NOTDEF
-		    /* you'd think this would be faster --
-		     * a single instruction instead of 6
-		     * but measurements show it to be ~15% slower
-		     */
-		    while ((nl -= 6) >= 0)
-		    {
-			asm ("moveml %1+,#0x0c0f;moveml#0x0c0f,%0"
-			     : "=m" (*(char *)pdst)
-			     : "m" (*(char *)psrc)
-			     : "d0", "d1", "d2", "d3",
-			       "a2", "a3");
-			pdst += 6;
-		    }
-		    nl += 6;
-		    while (nl--)
-			*pdst++ = *psrc++;
-#endif
-#if 0 /*PSZ == 24 && MROP == 0*/
-		    DuffL(nl, label1,
-			    *pdst = DoMergeRop24u(*psrc, *pdst, im3);
-			    pdst++; psrc++; index++;im3 = index % 3;)
-#else /* !(PSZ == 24 && MROP == 0) */
-		    DuffL(nl, label1,
-			    *pdst = MROP_SOLID (*psrc, *pdst);
-			    pdst++; psrc++;)
-#endif /* PSZ == 24 && MROP == 0 */
-#endif
-
-		    if (endmask)
-#if PSZ == 24 && MROP == 0
-			*pdst = DoMaskMergeRop24u(*psrc, *pdst, endmask, (int)(pdst - pdstBase) % 3);
-#else /* !(PSZ == 24 && MROP == 0) */
-			*pdst = MROP_MASK(*psrc, *pdst, endmask);
-#endif /* PSZ == 24 && MROP == 0 */
-		}
-	    }
-#ifndef DO_UNALIGNED_BITBLT
-#if PSZ == 24 && MROP == 0
-		/* can not happen */ 
-#else /* !(PSZ == 24 && MROP == 0) */
-	    else /* xoffSrc != xoffDst */
-	    {
-		if (xoffSrc > xoffDst)
-		{
-#if PSZ == 24
-		    leftShift = (xoffSrc - xoffDst) << 3;
-#else
-#if PGSZ == 32
-		    leftShift = (xoffSrc - xoffDst) << (5 - PWSH);
-#else /* PGSZ == 64 */
-		    leftShift = (xoffSrc - xoffDst) << (6 - PWSH);
-#endif /* PGSZ */
-#endif
-		    rightShift = PGSZ - leftShift;
-		}
-		else
-		{
-#if PSZ == 24
-		    rightShift = (xoffDst - xoffSrc) << 3;
-#else
-#if PGSZ == 32
-		    rightShift = (xoffDst - xoffSrc) << (5 - PWSH);
-#else /* PGSZ == 64 */
-		    rightShift = (xoffDst - xoffSrc) << (6 - PWSH);
-#endif /* PGSZ */
-#endif
-		    leftShift = PGSZ - rightShift;
-		}
-		while (h--)
-		{
-		    psrc = psrcLine;
-		    pdst = pdstLine;
-		    pdstLine += widthDst;
-		    psrcLine += widthSrc;
-		    bits = 0;
-		    if (xoffSrc > xoffDst)
-			bits = *psrc++;
-		    if (startmask)
-		    {
-			bits1 = BitLeft(bits,leftShift);
-			bits = *psrc++;
-			bits1 |= BitRight(bits,rightShift);
-			*pdst = MROP_MASK(bits1, *pdst, startmask);
-			pdst++;
-		    }
-		    nl = nlMiddle;
-#ifdef LARGE_INSTRUCTION_CACHE
-		    bits1 = bits;
-
-#ifdef FAST_CONSTANT_OFFSET_MODE
-
-		    psrc += nl & (UNROLL-1);
-		    pdst += nl & (UNROLL-1);
-
-#define BodyOdd(n) \
-bits = psrc[-n]; \
-pdst[-n] = MROP_SOLID(BitLeft(bits1, leftShift) | BitRight(bits, rightShift), pdst[-n]);
-
-#define BodyEven(n) \
-bits1 = psrc[-n]; \
-pdst[-n] = MROP_SOLID(BitLeft(bits, leftShift) | BitRight(bits1, rightShift), pdst[-n]);
-
-#define LoopReset \
-pdst += UNROLL; \
-psrc += UNROLL;
-
-#else
-
-#define BodyOdd(n) \
-bits = *psrc++; \
-*pdst = MROP_SOLID(BitLeft(bits1, leftShift) | BitRight(bits, rightShift), *pdst); \
-pdst++;
-		   
-#define BodyEven(n) \
-bits1 = *psrc++; \
-*pdst = MROP_SOLID(BitLeft(bits, leftShift) | BitRight(bits1, rightShift), *pdst); \
-pdst++;
-
-#define LoopReset   ;
-
-#endif	/* !FAST_CONSTANT_OFFSET_MODE */
-
-		    PackedLoop
-
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-
-#else
-		    DuffL (nl,label2,
-			bits1 = BitLeft(bits, leftShift);
-			bits = *psrc++;
-			*pdst = MROP_SOLID (bits1 | BitRight(bits, rightShift), *pdst);
-			pdst++;
-		    )
-#endif
-
-		    if (endmask)
-		    {
-			bits1 = BitLeft(bits, leftShift);
-			if (BitLeft(endmask, rightShift))
-			{
-			    bits = *psrc;
-			    bits1 |= BitRight(bits, rightShift);
-			}
-			*pdst = MROP_MASK (bits1, *pdst, endmask);
-		    }
-		}
-	    }
-#endif /* (PSZ == 24 && MROP == 0) */
-#endif /* DO_UNALIGNED_BITBLT */
-
-	  }
-	}
-#endif /* ! DO_MEMCPY */
-	else	/* xdir == -1 */
-	{
-#if PSZ == 24 && MROP == 0
-	  xoffSrc = (-(pptSrc->x + w)) & PAM;
-	  xoffDst = (-pbox->x2) & PAM;
-#if 1
-	  if(xoffSrc != xoffDst /* Alignments must be same. */
-	     || ((widthDstBytes & PAM) != (widthSrcBytes & PAM) && h > 1))
-#else
-	    if(1)
-#endif
-	    /* Width also must be same, if hight > 1 */
-	    {
-	      /* ...otherwise, pixel by pixel operation */
-	  while (h--)
-	    {
-	      register int i, si, sii, di;
-
-		    for (i = 0, si = pptSrc->x + w - 1, di = pbox->x2 - 1;
-		   i < w;
-			 i++, si--, di--) {
-		      psrc = psrcLine + ((si * BYPP) >> P2WSH);
-		      pdst = pdstLine + ((di * BYPP) >> P2WSH);
-		      sii = (si & PAM);
-		MROP_SOLID24P(psrc, pdst, sii, di);
-	      }
-	      psrcLine += widthSrc;
-	      pdstLine += widthDst;
-	    }
-	  }else
-#endif /* MROP == 0 && PSZ == 24 */
-	    {
-
-#if PSZ == 24
-#if MROP == 0
-	      /* already calculated */
-#else
-	    xoffSrc = (pptSrc->x + w) & PAM;
-	    xoffDst = pbox->x2 & PAM;
-#endif
-	    pdstLine += ((pbox->x2 * BYPP - 1) >> P2WSH) + 1;
-	    psrcLine += (((pptSrc->x+w) * BYPP - 1) >> P2WSH) + 1;
-#else
-	    xoffSrc = (pptSrc->x + w - 1) & PIM;
-	    xoffDst = (pbox->x2 - 1) & PIM;
-	    pdstLine += ((pbox->x2-1) >> PWSH) + 1;
-	    psrcLine += ((pptSrc->x+w - 1) >> PWSH) + 1;
-#endif
-#ifdef DO_UNALIGNED_BITBLT
-#if PSZ == 24
-	    nl = xoffDst - xoffSrc;
-#else
-	    nl = xoffSrc - xoffDst;
-#endif
-	    psrcLine = (CfbBits *)
-			(((unsigned char *) psrcLine) + nl);
-#else
-#if PSZ == 24 && MROP == 0
-	    /* already satisfied */
-#else
-	    if (xoffSrc == xoffDst)
-#endif
-#endif
-	    {
-		while (h--)
-		{
-#if PSZ == 24 && MROP == 0
-		    register int index;
-		    register int im3;
-#endif /*  PSZ == 24 && MROP == 0 */
-		    psrc = psrcLine;
-		    pdst = pdstLine;
-		    pdstLine += widthDst;
-		    psrcLine += widthSrc;
-#if PSZ == 24 && MROP == 0
-		    index = (int)(pdst - pdstBase);
-#endif /*  PSZ == 24 && MROP == 0 */
-
-		    if (endmask)
-		    {
-			pdst--;
-			psrc--;
-#if PSZ == 24 && MROP == 0
-			index--;
-			im3 = index % 3;
-			*pdst = DoMaskMergeRop24u(*psrc, *pdst, endmask, im3);
-#else /* !(PSZ == 24 && MROP == 0) */
-			*pdst = MROP_MASK (*psrc, *pdst, endmask);
-#endif /* PSZ == 24 && MROP == 0 */
-		    }
-		    nl = nlMiddle;
-#ifdef LARGE_INSTRUCTION_CACHE
-#ifdef FAST_CONSTANT_OFFSET_MODE
-		    psrc -= nl & (UNROLL - 1);
-		    pdst -= nl & (UNROLL - 1);
-
-#if PSZ == 24 && MROP == 0
-#define BodyOdd(n) pdst[n-1] = DoMergeRop24u(psrc[n-1], pdst[n-1], ((int)(pdst - (n - 1) -pdstBase)) % 3);
-#else /* !(PSZ == 24 && MROP == 0) */
-#define BodyOdd(n) pdst[n-1] = MROP_SOLID (psrc[n-1], pdst[n-1]);
-#endif /* PSZ == 24 && MROP == 0 */
-
-#define BodyEven(n) BodyOdd(n)
-
-#define LoopReset \
-pdst -= UNROLL;\
-psrc -= UNROLL;
-
-#else
-
-#if PSZ == 24 && MROP == 0
-#define BodyOdd(n)  --pdst; --psrc; --index; im3 = index % 3;*pdst = DoMergeRop24u(*psrc, *pdst, im3);
-#else /* !(PSZ == 24 && MROP == 0) */
-#define BodyOdd(n)  --pdst; --psrc; *pdst = MROP_SOLID(*psrc, *pdst);
-#endif /* PSZ == 24 && MROP == 0 */
-#define BodyEven(n) BodyOdd(n)
-#define LoopReset   ;
-
-#endif
-		    PackedLoop
-
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-
-#else
-#if PSZ == 24 && MROP == 0
-		    DuffL(nl,label3,
-			  --pdst; --psrc; --index; im3= index%3;*pdst = DoMergeRop24u(*psrc, *pdst, im3);)
-#else /* !(PSZ == 24 && MROP == 0) */
-		    DuffL(nl,label3,
-			 --pdst; --psrc; *pdst = MROP_SOLID (*psrc, *pdst);)
-#endif /* PSZ == 24 && MROP == 0 */
-#endif
-
-		    if (startmask)
-		    {
-			--pdst;
-			--psrc;
-#if PSZ == 24 && MROP == 0
-			*pdst = DoMaskMergeRop24u(*psrc, *pdst, startmask, (int)(pdst - pdstBase) % 3);
-#else /* !(PSZ == 24 && MROP == 0) */
-			*pdst = MROP_MASK(*psrc, *pdst, startmask);
-#endif /* PSZ == 24 && MROP == 0 */
-		    }
-		}
-	    }
-#ifndef DO_UNALIGNED_BITBLT
-#if PSZ == 24 && MROP == 0
-	    /* can not happen */
-#else /* !( PSZ == 24 && MROP == 0) */
-	    else
-	    {
-		if (xoffDst > xoffSrc)
-		{
-#if PSZ == 24
-		    leftShift = (xoffDst - xoffSrc) << 3;
-		    rightShift = PGSZ - leftShift;
-#else
-#if PGSZ == 32
-		    rightShift = (xoffDst - xoffSrc) << (5 - PWSH);
-#else /* PGSZ == 64 */
-		    rightShift = (xoffDst - xoffSrc) << (6 - PWSH);
-#endif /* PGSZ */
-		    leftShift = PGSZ - rightShift;
-#endif
-		}
-		else
-		{
-#if PSZ == 24
-		    rightShift = (xoffSrc - xoffDst) << 3;
-		    leftShift = PGSZ - rightShift;
-#else
-#if PGSZ == 32
-		    leftShift = (xoffSrc - xoffDst) << (5 - PWSH);
-#else /* PGSZ == 64 */
-		    leftShift = (xoffSrc - xoffDst) << (6 - PWSH);
-#endif /* PGSZ */
-		    rightShift = PGSZ - leftShift;
-#endif
-		}
-		while (h--)
-		{
-		    psrc = psrcLine;
-		    pdst = pdstLine;
-		    pdstLine += widthDst;
-		    psrcLine += widthSrc;
-		    bits = 0;
-#if PSZ == 24
-		    if (xoffSrc > xoffDst)
-#else
-		    if (xoffDst > xoffSrc)
-#endif
-			bits = *--psrc;
-		    if (endmask)
-		    {
-			bits1 = BitRight(bits, rightShift);
-			bits = *--psrc;
-			bits1 |= BitLeft(bits, leftShift);
-			pdst--;
-			*pdst = MROP_MASK(bits1, *pdst, endmask);
-		    }
-		    nl = nlMiddle;
-#ifdef LARGE_INSTRUCTION_CACHE
-		    bits1 = bits;
-#ifdef FAST_CONSTANT_OFFSET_MODE
-		    psrc -= nl & (UNROLL - 1);
-		    pdst -= nl & (UNROLL - 1);
-
-#define BodyOdd(n) \
-bits = psrc[n-1]; \
-pdst[n-1] = MROP_SOLID(BitRight(bits1, rightShift) | BitLeft(bits, leftShift),pdst[n-1]);
-
-#define BodyEven(n) \
-bits1 = psrc[n-1]; \
-pdst[n-1] = MROP_SOLID(BitRight(bits, rightShift) | BitLeft(bits1, leftShift),pdst[n-1]);
-
-#define LoopReset \
-pdst -= UNROLL; \
-psrc -= UNROLL;
-
-#else
-
-#define BodyOdd(n) \
-bits = *--psrc; --pdst; \
-*pdst = MROP_SOLID(BitRight(bits1, rightShift) | BitLeft(bits, leftShift),*pdst);
-
-#define BodyEven(n) \
-bits1 = *--psrc; --pdst; \
-*pdst = MROP_SOLID(BitRight(bits, rightShift) | BitLeft(bits1, leftShift),*pdst);
-
-#define LoopReset   ;
-
-#endif
-
-		    PackedLoop
-
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-
-#else
-		    DuffL (nl, label4,
-			bits1 = BitRight(bits, rightShift);
-			bits = *--psrc;
-			--pdst;
-			*pdst = MROP_SOLID(bits1 | BitLeft(bits, leftShift),*pdst);
-		    )
-#endif
-
-		    if (startmask)
-		    {
-			bits1 = BitRight(bits, rightShift);
-			if (BitRight (startmask, leftShift))
-			{
-			    bits = *--psrc;
-			    bits1 |= BitLeft(bits, leftShift);
-			}
-			--pdst;
-			*pdst = MROP_MASK(bits1, *pdst, startmask);
-		    }
-		}
-	    }
-#endif  /* PSZ == 24 && MROP == 0 */
-#endif
-	    }
-	}
-	pbox++;
-	pptSrc++;
-    }
-    if (pboxNew2)
-    {
-	xfree(pptNew2);
-	xfree(pboxNew2);
-    }
-    if (pboxNew1)
-    {
-	xfree(pptNew1);
-	xfree(pboxNew1);
-    }
-}
diff --git a/cfb/cfbbres.c b/cfb/cfbbres.c
deleted file mode 100644
index fa1ee13..0000000
--- a/cfb/cfbbres.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include "misc.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "servermd.h"
-#include "miline.h"
-
-/* Solid bresenham line */
-/* NOTES
-   e2 is used less often than e1, so it's not in a register
-*/
-
-void
-cfbBresS(rop, and, xor, addrl, nlwidth, signdx, signdy, axis, x1, y1, e, e1,
-	 e2, len)
-    int		    rop;
-    CfbBits   and, xor;
-    CfbBits   *addrl;		/* pointer to base of bitmap */
-    int		    nlwidth;		/* width in longwords of bitmap */
-    register int    signdx;
-    int		    signdy;		/* signs of directions */
-    int		    axis;		/* major axis (Y_AXIS or X_AXIS) */
-    int		    x1, y1;		/* initial point */
-    register int    e;			/* error accumulator */
-    register int    e1;			/* bresenham increments */
-    int		    e2;
-    int		    len;		/* length of line */
-{
-    register int	e3 = e2-e1;
-#if PSZ == 24
-    CfbBits piQxelXor[3],piQxelAnd[3];
-    char *addrb;
-    int nlwidth3, signdx3;
-#endif
-#ifdef PIXEL_ADDR
-    register PixelType	*addrp;		/* Pixel pointer */
-
-    if (len == 0)
-    	return;
-    /* point to first point */
-    nlwidth <<= PWSH;
-#if PSZ == 24
-    addrp = (PixelType *)(addrl) + (y1 * nlwidth);
-    addrb = (char *)addrp + x1 * 3;
-
-    piQxelXor[0] = (xor << 24) | xor;
-    piQxelXor[1] = (xor << 16)| (xor >> 8);
-    piQxelXor[2] = (xor << 8) | (xor >> 16);
-    piQxelAnd[0] = (and << 24) | and;
-    piQxelAnd[1] = (and << 16)| (and >> 8);
-    piQxelAnd[2] = (and << 8) | (and >> 16);
-#else
-    addrp = (PixelType *)(addrl) + (y1 * nlwidth) + x1;
-#endif
-    if (signdy < 0)
-    	nlwidth = -nlwidth;
-    e = e-e1;			/* to make looping easier */
-#if PSZ == 24
-    nlwidth3 = nlwidth * sizeof (CfbBits);
-    signdx3 = signdx * 3;
-#endif
-    
-    if (axis == Y_AXIS)
-    {
-	int	t;
-
-	t = nlwidth;
-	nlwidth = signdx;
-	signdx = t;
-#if PSZ == 24
-	t = nlwidth3;
-	nlwidth3 = signdx3;
-	signdx3 = t;
-#endif
-    }
-    if (rop == GXcopy)
-    {
-	--len;
-#if PSZ == 24
-#define body_copy \
-	    addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	    switch((unsigned long)addrb & 3){ \
-	    case 0: \
-	      *addrp = ((*addrp)&0xFF000000)|(piQxelXor[0] & 0xFFFFFF); \
-	      break; \
-	    case 1: \
-	      *addrp = ((*addrp)&0xFF)|(piQxelXor[2] & 0xFFFFFF00); \
-	      break; \
-	    case 3: \
-	      *addrp = ((*addrp)&0xFFFFFF)|(piQxelXor[0] & 0xFF000000); \
-	      *(addrp+1) = ((*(addrp+1))&0xFFFF0000)|(piQxelXor[1] & 0xFFFF); \
-	      break; \
-	    case 2: \
-	      *addrp = ((*addrp)&0xFFFF)|(piQxelXor[1] & 0xFFFF0000); \
-	      *(addrp+1) = ((*(addrp+1))&0xFFFFFF00)|(piQxelXor[2] & 0xFF); \
-	      break; \
-	    }
-#define body {\
-	    body_copy \
-	    addrb += signdx3; \
-	    e += e1; \
-	    if (e >= 0) \
-	    { \
-		addrb += nlwidth3; \
-		e += e3; \
-	     } \
-	    }
-#else /* PSZ == 24 */
-#define body {\
-	    *addrp = xor; \
-	    addrp += signdx; \
-	    e += e1; \
-	    if (e >= 0) \
-	    { \
-		addrp += nlwidth; \
-		e += e3; \
-	    } \
-	}
-#endif /* PSZ == 24 */
-	while (len >= 4)
-	{
-	    body body body body
-	    len -= 4;
-	}
-	switch (len)
-	{
-	case  3: body case  2: body case  1: body
-	}
-#undef body
-#if PSZ == 24
-	body_copy
-# undef body_copy
-#else
-	*addrp = xor;
-#endif
-    }
-    else /* not GXcopy */
-    {
-	while(len--)
-	{ 
-#if PSZ == 24
-	    addrp = (PixelType *)((unsigned long)addrb & ~0x03);
-	    switch((unsigned long)addrb & 3){
-	    case 0:
-	      *addrp = (*addrp & (piQxelAnd[0]|0xFF000000))
-			^ (piQxelXor[0] & 0xFFFFFF);
-	      break;
-	    case 1:
-	      *addrp = (*addrp & (piQxelAnd[2]|0xFF))
-			^ (piQxelXor[2] & 0xFFFFFF00);
-	      break;
-	    case 3:
-	      *addrp = (*addrp & (piQxelAnd[0]|0xFFFFFF))
-			^ (piQxelXor[0] & 0xFF000000);
-	      *(addrp+1) = (*(addrp+1) & (piQxelAnd[1]|0xFFFF0000))
-			^ (piQxelXor[1] & 0xFFFF);
-	      break;
-	    case 2:
-	      *addrp = (*addrp & (piQxelAnd[1]|0xFFFF))
-			^ (piQxelXor[1] & 0xFFFF0000);
-	      *(addrp+1) = (*(addrp+1) & (piQxelAnd[2]|0xFFFFFF00))
-			^ (piQxelXor[2] & 0xFF);
-	      break;
-	    }
-	    e += e1;
-	    if (e >= 0)
-	    {
-		addrb += nlwidth3;
-		e += e3;
-	    }
-	    addrb += signdx3;
-#else /* PSZ == 24 */
-	    *addrp = DoRRop (*addrp, and, xor);
-	    e += e1;
-	    if (e >= 0)
-	    {
-		addrp += nlwidth;
-		e += e3;
-	    }
-	    addrp += signdx;
-#endif /* PSZ == 24 */
-	}
-    }
-#else /* !PIXEL_ADDR */
-    register CfbBits   tmp, bit;
-    CfbBits leftbit, rightbit;
-
-    /* point to longword containing first point */
-#if PSZ == 24
-    addrl = (addrl + (y1 * nlwidth) + ((x1 * 3) >>2);
-#else
-    addrl = (addrl + (y1 * nlwidth) + (x1 >> PWSH));
-#endif
-    if (signdy < 0)
-	    nlwidth = -nlwidth;
-    e = e-e1;			/* to make looping easier */
-
-    leftbit = cfbmask[0];
-#if PSZ == 24
-    rightbit = cfbmask[(PPW-1)<<1];
-    bit = cfbmask[(x1 & 3)<<1];
-#else
-    rightbit = cfbmask[PPW-1];
-    bit = cfbmask[x1 & PIM];
-#endif
-
-    if (axis == X_AXIS)
-    {
-	if (signdx > 0)
-	{
-	    while (len--)
-	    { 
-		*addrl = DoMaskRRop (*addrl, and, xor, bit);
-		bit = SCRRIGHT(bit,1);
-		e += e1;
-		if (e >= 0)
-		{
-		    addrl += nlwidth;
-		    e += e3;
-		}
-		if (!bit)
-		{
-		    bit = leftbit;
-		    addrl++;
-		}
-	    }
-	}
-	else
-	{
-	    while (len--)
-	    { 
-		*addrl = DoMaskRRop (*addrl, and, xor, bit);
-		e += e1;
-		bit = SCRLEFT(bit,1);
-		if (e >= 0)
-		{
-		    addrl += nlwidth;
-		    e += e3;
-		}
-		if (!bit)
-		{
-		    bit = rightbit;
-		    addrl--;
-		}
-	    }
-	}
-    } /* if X_AXIS */
-    else
-    {
-	if (signdx > 0)
-	{
-	    while(len--)
-	    {
-		*addrl = DoMaskRRop (*addrl, and, xor, bit);
-		e += e1;
-		if (e >= 0)
-		{
-		    bit = SCRRIGHT(bit,1);
-		    if (!bit)
-		    {
-			bit = leftbit;
-			addrl++;
-		    }
-		    e += e3;
-		}
-		addrl += nlwidth;
-	    }
-	}
-	else
-	{
-	    while(len--)
-	    {
-		*addrl = DoMaskRRop (*addrl, and, xor, bit);
-		e += e1;
-		if (e >= 0)
-		{
-		    bit = SCRLEFT(bit,1);
-		    if (!bit)
-		    {
-			bit = rightbit;
-			addrl--;
-		    }
-		    e += e3;
-		}
-		addrl += nlwidth;
-	    }
-	}
-    } /* else Y_AXIS */
-#endif
-}
diff --git a/cfb/cfbbresd.c b/cfb/cfbbresd.c
deleted file mode 100644
index ee48a74..0000000
--- a/cfb/cfbbresd.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include "misc.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "miline.h"
-
-/* Dashed bresenham line */
-
-void
-cfbBresD(rrops,
-	 pdashIndex, pDash, numInDashList, pdashOffset, isDoubleDash,
-	 addrl, nlwidth,
-	 signdx, signdy, axis, x1, y1, e, e1, e2, len)
-    cfbRRopPtr	    rrops;
-    int		    *pdashIndex;	/* current dash */
-    unsigned char   *pDash;		/* dash list */
-    int		    numInDashList;	/* total length of dash list */
-    int		    *pdashOffset;	/* offset into current dash */
-    int		    isDoubleDash;
-    CfbBits   *addrl;		/* pointer to base of bitmap */
-    int		    nlwidth;		/* width in longwords of bitmap */
-    int		    signdx, signdy;	/* signs of directions */
-    int		    axis;		/* major axis (Y_AXIS or X_AXIS) */
-    int		    x1, y1;		/* initial point */
-    register int    e;			/* error accumulator */
-    register int    e1;			/* bresenham increments */
-    int		    e2;
-    int		    len;		/* length of line */
-{
-#ifdef PIXEL_ADDR
-    register PixelType	*addrp;
-#endif
-    register		int e3 = e2-e1;
-    int			dashIndex;
-    int			dashOffset;
-    int			dashRemaining;
-    CfbBits	xorFg, andFg, xorBg, andBg;
-    Bool		isCopy;
-    int			thisDash;
-#if PSZ == 24
-    CfbBits xorPiQxlFg[3], andPiQxlFg[3], xorPiQxlBg[3], andPiQxlBg[3]; 
-    char *addrb;
-    int signdx3, signdy3;
-#endif
-
-    dashOffset = *pdashOffset;
-    dashIndex = *pdashIndex;
-    isCopy = (rrops[0].rop == GXcopy && rrops[1].rop == GXcopy);
-#if PSZ == 24
-    xorFg = rrops[0].xor & 0xffffff;
-    andFg = rrops[0].and & 0xffffff;
-    xorBg = rrops[1].xor & 0xffffff;
-    andBg = rrops[1].and & 0xffffff;
-    xorPiQxlFg[0] = xorFg | (xorFg << 24);
-    xorPiQxlFg[1] = (xorFg >> 8) | (xorFg << 16);
-    xorPiQxlFg[2] = (xorFg >> 16) | (xorFg << 8);
-    andPiQxlFg[0] = andFg | (andFg << 24);
-    andPiQxlFg[1] = (andFg >> 8) | (andFg << 16);
-    andPiQxlFg[2] = (andFg >> 16) | (andFg << 8);
-    xorPiQxlBg[0] = xorBg | (xorBg << 24);
-    xorPiQxlBg[1] = (xorBg >> 8) | (xorBg << 16);
-    xorPiQxlBg[2] = (xorBg >> 16) | (xorBg << 8);
-    andPiQxlBg[0] = andBg | (andBg << 24);
-    andPiQxlBg[1] = (andBg >> 8) | (andBg << 16);
-    andPiQxlBg[2] = (andFg >> 16) | (andBg << 8);
-#else
-    xorFg = rrops[0].xor;
-    andFg = rrops[0].and;
-    xorBg = rrops[1].xor;
-    andBg = rrops[1].and;
-#endif
-    dashRemaining = pDash[dashIndex] - dashOffset;
-    if ((thisDash = dashRemaining) >= len)
-    {
-	thisDash = len;
-	dashRemaining -= len;
-    }
-    e = e-e1;			/* to make looping easier */
-
-#define BresStep(minor,major) {if ((e += e1) >= 0) { e += e3; minor; } major;}
-
-#define NextDash {\
-    dashIndex++; \
-    if (dashIndex == numInDashList) \
-	dashIndex = 0; \
-    dashRemaining = pDash[dashIndex]; \
-    if ((thisDash = dashRemaining) >= len) \
-    { \
-	dashRemaining -= len; \
-	thisDash = len; \
-    } \
-}
-
-#ifdef PIXEL_ADDR
-
-#if PSZ == 24
-#define Loop(store) while (thisDash--) {\
-			store; \
- 			BresStep(addrb+=signdy3,addrb+=signdx3) \
-		    }
-    /* point to first point */
-    nlwidth <<= PWSH;
-    addrp = (PixelType *)(addrl) + (y1 * nlwidth);
-    addrb = (char *)addrp + x1 * 3;
-
-#else
-#define Loop(store) while (thisDash--) {\
-			store; \
- 			BresStep(addrp+=signdy,addrp+=signdx) \
-		    }
-    /* point to first point */
-    nlwidth <<= PWSH;
-    addrp = (PixelType *)(addrl) + (y1 * nlwidth) + x1;
-#endif
-    signdy *= nlwidth;
-#if PSZ == 24
-    signdx3 = signdx * 3;
-    signdy3 = signdy * sizeof (CfbBits);
-#endif
-    if (axis == Y_AXIS)
-    {
-	int t;
-
-	t = signdx;
-	signdx = signdy;
-	signdy = t;
-#if PSZ == 24
-	t = signdx3;
-	signdx3 = signdy3;
-	signdy3 = t;
-#endif
-    }
-
-    if (isCopy)
-    {
-#if PSZ == 24
-#define body_copy(pix) { \
-	addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	switch((unsigned long)addrb & 3){ \
-	case 0: \
-	  *addrp = (*addrp & 0xFF000000)|((pix)[0] & 0xFFFFFF); \
-	  break; \
-	case 1: \
-	  *addrp = (*addrp & 0xFF)|((pix)[2] & 0xFFFFFF00); \
-	  break; \
-	case 3: \
-	  *addrp = (*addrp & 0xFFFFFF)|((pix)[0] & 0xFF000000); \
-	  *(addrp+1) = (*(addrp+1) & 0xFFFF0000)|((pix)[1] & 0xFFFF); \
-	  break; \
-	case 2: \
-	  *addrp = (*addrp & 0xFFFF)|((pix)[1] & 0xFFFF0000); \
-	  *(addrp+1) = (*(addrp+1) & 0xFFFFFF00)|((pix)[2] & 0xFF); \
-	  break; \
-	} \
-}
-#endif /* PSZ == 24 */
-		    
-	for (;;)
-	{ 
-	    len -= thisDash;
-	    if (dashIndex & 1) {
-		if (isDoubleDash) {
-#if PSZ == 24
-		    Loop(body_copy(xorPiQxlBg))
-#else
-		    Loop(*addrp = xorBg)
-#endif
-		} else {
-		    Loop(;)
-		}
-	    } else {
-#if PSZ == 24
-		Loop(body_copy(xorPiQxlFg))
-#else
-		Loop(*addrp = xorFg)
-#endif
-	    }
-	    if (!len)
-		break;
-	    NextDash
-	}
-#undef body_copy
-    }
-    else
-    {
-#define body_set(and, xor) { \
-	addrp = (PixelType *)((unsigned long)addrb & ~0x03); \
-	switch((unsigned long)addrb & 3){ \
-	case 0: \
-	  *addrp = (*addrp & ((and)[0]|0xFF000000)) ^ ((xor)[0] & 0xFFFFFF); \
-	  break; \
-	case 1: \
-	  *addrp = (*addrp & ((and)[2]|0xFF)) ^ ((xor)[2] & 0xFFFFFF00); \
-	  break; \
-	case 3: \
-	  *addrp = (*addrp & ((and)[0]|0xFFFFFF)) ^ ((xor)[0] & 0xFF000000); \
-	  *(addrp+1)=(*(addrp+1)&((and)[1]|0xFFFF0000)) ^ ((xor)[1]&0xFFFF); \
-	  break; \
-	case 2: \
-	  *addrp = (*addrp & ((and)[1]|0xFFFF)) ^ ((xor)[1] & 0xFFFF0000); \
-	  *(addrp+1)=(*(addrp+1)&((and)[2]|0xFFFFFF00)) ^ ((xor)[2] & 0xFF); \
-	  break; \
-	} \
-}
-
-	for (;;)
-	{ 
-	    len -= thisDash;
-	    if (dashIndex & 1) {
-		if (isDoubleDash) {
-#if PSZ == 24
-		    Loop(body_set(andPiQxlBg, xorPiQxlBg))
-#else
-		    Loop(*addrp = DoRRop(*addrp,andBg, xorBg))
-#endif
-		} else {
-		    Loop(;)
-		}
-	    } else {
-#if PSZ == 24
-		Loop(body_set(andPiQxlFg, xorPiQxlFg))
-#else
-		Loop(*addrp = DoRRop(*addrp,andFg, xorFg))
-#endif
-	    }
-	    if (!len)
-		break;
-	    NextDash
-	}
-#undef body_set
-    }
-#else /* !PIXEL_ADDR */
-    {
-    	register CfbBits	tmp;
-	CfbBits		startbit, bit;
-
-    	/* point to longword containing first point */
-#if PSZ == 24
-    	addrl = (addrl + (y1 * nlwidth) + ((x1*3) >> 2);
-#else
-    	addrl = (addrl + (y1 * nlwidth) + (x1 >> PWSH));
-#endif
-    	signdy = signdy * nlwidth;
-
-	if (signdx > 0)
-	    startbit = cfbmask[0];
-	else
-#if PSZ == 24
-	    startbit = cfbmask[(PPW-1)<<1];
-    	bit = cfbmask[(x1 & 3)<<1];
-#else
-	    startbit = cfbmask[PPW-1];
-    	bit = cfbmask[x1 & PIM];
-#endif
-
-#if PSZ == 24
-#define X_Loop(store)	while(thisDash--) {\
-			    store; \
-		    	    BresStep(addrl += signdy, \
-		    	     	     if (signdx > 0) \
-		    	     	     	 bit = SCRRIGHT(bit,1); \
-		    	     	     else \
-		    	     	     	 bit = SCRLEFT(bit,1); \
-		    	     	     if (!bit) \
-		    	     	     { \
-		    	     	     	 bit = startbit; \
-		    	     	     	 addrl += signdx; \
-		    	     	     }) \
-			}
-#define Y_Loop(store)	while(thisDash--) {\
-			    store; \
-		    	    BresStep(if (signdx > 0) \
-		    	     	     	 bit = SCRRIGHT(bit,1); \
-		    	     	     else \
-		    	     	     	 bit = SCRLEFT(bit,1); \
-		    	     	     if (!bit) \
-		    	     	     { \
-		    	     	     	 bit = startbit; \
-		    	     	     	 addrl += signdx; \
-		    	     	     }, \
-				     addrl += signdy) \
-			}
-#else
-#define X_Loop(store)	while(thisDash--) {\
-			    store; \
-		    	    BresStep(addrl += signdy, \
-		    	     	     if (signdx > 0) \
-		    	     	     	 bit = SCRRIGHT(bit,1); \
-		    	     	     else \
-		    	     	     	 bit = SCRLEFT(bit,1); \
-		    	     	     if (!bit) \
-		    	     	     { \
-		    	     	     	 bit = startbit; \
-		    	     	     	 addrl += signdx; \
-		    	     	     }) \
-			}
-#define Y_Loop(store)	while(thisDash--) {\
-			    store; \
-		    	    BresStep(if (signdx > 0) \
-		    	     	     	 bit = SCRRIGHT(bit,1); \
-		    	     	     else \
-		    	     	     	 bit = SCRLEFT(bit,1); \
-		    	     	     if (!bit) \
-		    	     	     { \
-		    	     	     	 bit = startbit; \
-		    	     	     	 addrl += signdx; \
-		    	     	     }, \
-				     addrl += signdy) \
-			}
-#endif
-
-    	if (axis == X_AXIS)
-    	{
-	    for (;;)
-	    {
-	    	len -= thisDash;
-	    	if (dashIndex & 1) {
-		    if (isDoubleDash) {
-		    	X_Loop(*addrl = DoMaskRRop(*addrl, andBg, xorBg, bit));
-		    } else {
-		    	X_Loop(;)
-		    }
-	    	} else {
-		    X_Loop(*addrl = DoMaskRRop(*addrl, andFg, xorFg, bit));
-	    	}
-	    	if (!len)
-		    break;
-	    	NextDash
-	    }
-    	} /* if X_AXIS */
-    	else
-    	{
-	    for (;;)
-	    {
-	    	len -= thisDash;
-	    	if (dashIndex & 1) {
-		    if (isDoubleDash) {
-		    	Y_Loop(*addrl = DoMaskRRop(*addrl, andBg, xorBg, bit));
-		    } else {
-		    	Y_Loop(;)
-		    }
-	    	} else {
-		    Y_Loop(*addrl = DoMaskRRop(*addrl, andFg, xorFg, bit));
-	    	}
-	    	if (!len)
-		    break;
-	    	NextDash
-	    }
-    	} /* else Y_AXIS */
-    }
-#endif
-    *pdashIndex = dashIndex;
-    *pdashOffset = pDash[dashIndex] - dashRemaining;
-}
diff --git a/cfb/cfbcmap.c b/cfb/cfbcmap.c
deleted file mode 100644
index b96f671..0000000
--- a/cfb/cfbcmap.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/************************************************************
-Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
-
-                    All Rights Reserved
-
-Permission  to  use,  copy,  modify,  and  distribute   this
-software  and  its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright no-
-tice  appear  in all copies and that both that copyright no-
-tice and this permission notice appear in  supporting  docu-
-mentation,  and  that the names of Sun or The Open Group
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and The Open Group make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
-implied warranty.
-
-SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
-NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
-ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
-PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xproto.h>
-#include "scrnintstr.h"
-#include "colormapst.h"
-#include "resource.h"
-#include "micmap.h"
-#include "cfb.h"
-
-int
-cfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
-{
-    return miListInstalledColormaps(pScreen, pmaps);
-}
-
-void
-cfbInstallColormap(ColormapPtr pmap)
-{
-    miInstallColormap(pmap);
-}
-
-void
-cfbUninstallColormap(ColormapPtr pmap)
-{
-    miUninstallColormap(pmap);
-}
-
-void
-cfbResolveColor(unsigned short *pred, 
-		unsigned short *pgreen,
-		unsigned short *pblue,
-		VisualPtr	pVisual)
-{
-    miResolveColor(pred, pgreen, pblue, pVisual);
-}
-
-Bool
-cfbInitializeColormap(ColormapPtr pmap)
-{
-    return miInitializeColormap(pmap);
-}
-
-int
-cfbExpandDirectColors (ColormapPtr pmap, int ndef, 
-		       xColorItem *indefs, xColorItem *outdefs)
-{
-    return miExpandDirectColors(pmap, ndef, indefs, outdefs);
-}
-
-Bool
-cfbCreateDefColormap(ScreenPtr pScreen)
-{
-    return miCreateDefColormap(pScreen);
-}
-
-void
-cfbClearVisualTypes(void)
-{
-    miClearVisualTypes();
-}
-
-Bool
-cfbSetVisualTypes (int depth, int visuals, int bitsPerRGB)
-{
-    return miSetVisualTypes(depth, visuals, bitsPerRGB, -1);
-}
-
-/*
- * Given a list of formats for a screen, create a list
- * of visuals and depths for the screen which coorespond to
- * the set which can be used with this version of cfb.
- */
-
-Bool
-cfbInitVisuals (VisualPtr   *visualp,
-		DepthPtr    *depthp,
-		int	    *nvisualp,
-		int	    *ndepthp,
-		int	    *rootDepthp,
-		VisualID    *defaultVisp,
-		unsigned long	sizes,
-		int	    bitsPerRGB)
-{
-    return miInitVisuals(visualp, depthp, nvisualp, ndepthp, rootDepthp,
-			 defaultVisp, sizes, bitsPerRGB, -1);
-}
diff --git a/cfb/cfbcppl.c b/cfb/cfbcppl.c
deleted file mode 100644
index 00714cb..0000000
--- a/cfb/cfbcppl.c
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <string.h>
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "gcstruct.h"
-#include "window.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-#include "cfb.h"
-#if PSZ == 8
-#undef   PSZ /* for maskbits.h */
-#include "maskbits.h"
-#define PSZ 8
-#include "mergerop.h"
-#endif
-
-
-void
-cfbCopyImagePlane(
-    DrawablePtr pSrcDrawable,
-    DrawablePtr pDstDrawable,
-    int	rop,
-    RegionPtr prgnDst,
-    DDXPointPtr pptSrc,
-    unsigned long planemask)
-{
-    /* note: there must be some sort of trick behind,
-       passing a planemask value with all bits set
-       whilst using the current planemask for the bitPlane value. */
-#if PSZ == 8
-    cfbCopyPlane8to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
-		      (unsigned long) ~0L, planemask);
-#endif
-#if PSZ == 16
-    cfbCopyPlane16to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
-		      (unsigned long) ~0L, planemask);
-#endif
-#if PSZ == 24
-    cfbCopyPlane24to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
-		      (unsigned long) ~0L, planemask);
-#endif
-#if PSZ == 32
-    cfbCopyPlane32to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
-		      (unsigned long) ~0L, planemask);
-#endif
-}
-
-#if PSZ == 8
-
-#if BITMAP_BIT_ORDER == MSBFirst
-#define LeftMost    (MFB_PPW-1)
-#define StepBit(bit, inc)  ((bit) -= (inc))
-#else
-#define LeftMost    0
-#define StepBit(bit, inc)  ((bit) += (inc))
-#endif
-
-#define GetBits(psrc, nBits, curBit, bitPos, bits) {\
-    bits = 0; \
-    while (nBits--) \
-    { \
-	bits |= (PixelType)(((*psrc++ >> bitPos) & 1)) << curBit; \
-	StepBit (curBit, 1); \
-    } \
-}
-
-void
-cfbCopyPlane8to1(
-    DrawablePtr pSrcDrawable,
-    DrawablePtr pDstDrawable,
-    int	rop,
-    RegionPtr prgnDst,
-    DDXPointPtr pptSrc,
-    unsigned long planemask,
-    unsigned long bitPlane)
-{
-    int			    srcx, srcy, dstx, dsty, width, height;
-    unsigned char	    *psrcBase;
-    PixelType		    *pdstBase;
-    int			    widthSrc, widthDst;
-    unsigned char	    *psrcLine;
-    PixelType		    *pdstLine;
-    register unsigned char  *psrc;
-    register int	    i;
-    register int	    curBit;
-    register int	    bitPos;
-    register CfbBits  bits;
-    register PixelType	    *pdst;
-    PixelType		    startmask, endmask;
-    int			    niStart = 0, niEnd = 0;
-    int			    bitStart = 0, bitEnd = 0;
-    int			    nl, nlMiddle;
-    int			    nbox;
-    BoxPtr		    pbox;
-    MROP_DECLARE()
-
-    if (!(planemask & 1))
-	return;
-
-    if (rop != GXcopy)
-	MROP_INITIALIZE (rop, planemask);
-
-    cfbGetByteWidthAndPointer (pSrcDrawable, widthSrc, psrcBase)
-
-    mfbGetPixelWidthAndPointer (pDstDrawable, widthDst, pdstBase)
-
-    bitPos = ffs (bitPlane) - 1;
-
-    nbox = REGION_NUM_RECTS(prgnDst);
-    pbox = REGION_RECTS(prgnDst);
-    while (nbox--)
-    {
-	dstx = pbox->x1;
-	dsty = pbox->y1;
-	srcx = pptSrc->x;
-	srcy = pptSrc->y;
-	width = pbox->x2 - pbox->x1;
-	height = pbox->y2 - pbox->y1;
-	pbox++;
-	pptSrc++;
-	psrcLine = psrcBase + srcy * widthSrc + srcx;
-	pdstLine = mfbScanline(pdstBase, dstx, dsty, widthDst);
-	dstx &= MFB_PIM;
-	if (dstx + width <= MFB_PPW)
-	{
-	    maskpartialbits(dstx, width, startmask);
-	    nlMiddle = 0;
-	    endmask = 0;
-	}
-	else
-	{
-	    maskbits (dstx, width, startmask, endmask, nlMiddle);
-	}
-	if (startmask)
-	{
-	    niStart = min(MFB_PPW - dstx, width);
-	    bitStart = LeftMost;
-	    StepBit (bitStart, dstx);
-	}
-	if (endmask)
-	{
-	    niEnd = (dstx + width) & MFB_PIM;
-	    bitEnd = LeftMost;
-	}
-	if (rop == GXcopy)
-	{
-	    while (height--)
-	    {
-	    	psrc = psrcLine;
-	    	pdst = pdstLine;
-	    	psrcLine += widthSrc;
-	    	mfbScanlineInc(pdstLine, widthDst);
-	    	if (startmask)
-	    	{
-		    i = niStart;
-		    curBit = bitStart;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-		    *pdst = (*pdst & ~startmask) | bits;
-		    pdst++;
-	    	}
-	    	nl = nlMiddle;
-	    	while (nl--)
-	    	{
-		    i = MFB_PPW;
-		    curBit = LeftMost;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-		    *pdst++ = bits;
-	    	}
-	    	if (endmask)
-	    	{
-		    i = niEnd;
-		    curBit = bitEnd;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-		    *pdst = (*pdst & ~endmask) | bits;
-	    	}
-	    }
-	}
-	else
-	{
-	    while (height--)
-	    {
-	    	psrc = psrcLine;
-	    	pdst = pdstLine;
-	    	psrcLine += widthSrc;
-	    	mfbScanlineInc(pdstLine, widthDst);
-	    	if (startmask)
-	    	{
-		    i = niStart;
-		    curBit = bitStart;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-		    *pdst = MROP_MASK(bits, *pdst, startmask);
-		    pdst++;
-	    	}
-	    	nl = nlMiddle;
-	    	while (nl--)
-	    	{
-		    i = MFB_PPW;
-		    curBit = LeftMost;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-		    *pdst = MROP_SOLID(bits, *pdst);
-		    pdst++;
-	    	}
-	    	if (endmask)
-	    	{
-		    i = niEnd;
-		    curBit = bitEnd;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-		    *pdst = MROP_MASK (bits, *pdst, endmask);
-	    	}
-	    }
-	}
-    }
-}
-
-#else /*  PSZ == 8 */
-
-#define mfbmaskbits(x, w, startmask, endmask, nlw) \
-    startmask = mfbGetstarttab((x)&0x1f); \
-    endmask = mfbGetendtab(((x)+(w)) & 0x1f); \
-    if (startmask) \
-	nlw = (((w) - (32 - ((x)&0x1f))) >> 5); \
-    else \
-	nlw = (w) >> 5;
-
-#define mfbmaskpartialbits(x, w, mask) \
-    mask = mfbGetpartmasks((x)&0x1f,(w)&0x1f);
-
-#define LeftMost    0
-#define StepBit(bit, inc)  ((bit) += (inc))
-
-
-#if PSZ == 24
-#define GetBits(psrc, nBits, curBit, bitPos, bits) {\
-    bits = 0; \
-    while (nBits--) \
-    { \
-	if (bitPos < 8) \
-        { \
-	    bits |= ((*psrc++ >> bitPos) & 1) << curBit; \
-	    psrc += 2; \
-        } \
-	else if (bitPos < 16) \
-        { \
-	    psrc++; \
-	    bits |= ((*psrc++ >> (bitPos - 8)) & 1) << curBit; \
-	    psrc++; \
-        } \
-	else \
-        { \
-	    psrc += 2; \
-	    bits |= ((*psrc++ >> (bitPos - 16)) & 1) << curBit; \
-        } \
-	StepBit (curBit, 1); \
-    } \
-}
-#else
-#define GetBits(psrc, nBits, curBit, bitPos, bits) {\
-    bits = 0; \
-    while (nBits--) \
-    { \
-	bits |= ((*psrc++ >> bitPos) & 1) << curBit; \
-	StepBit (curBit, 1); \
-    } \
-}
-#endif
-
-void
-#if PSZ == 16
-cfbCopyPlane16to1
-#endif
-#if PSZ == 24
-cfbCopyPlane24to1
-#endif
-#if PSZ == 32
-cfbCopyPlane32to1
-#endif
-(
-    DrawablePtr pSrcDrawable,
-    DrawablePtr pDstDrawable,
-    int	rop,
-    RegionPtr prgnDst,
-    DDXPointPtr pptSrc,
-    unsigned long planemask,
-    unsigned long bitPlane)
-{
-    int			    srcx, srcy, dstx, dsty, width, height;
-    CfbBits	    *psrcBase;
-    CfbBits	    *pdstBase;
-    int			    widthSrc, widthDst;
-#if PSZ == 16
-    unsigned short	    *psrcLine;
-    register unsigned short *psrc;
-#endif
-#if PSZ == 24
-    unsigned char	    *psrcLine;
-    register unsigned char  *psrc;
-#endif
-#if PSZ == 32
-    unsigned int	    *psrcLine;
-    register unsigned int   *psrc;
-#endif
-    unsigned int	    *pdstLine;
-    register unsigned int   *pdst;
-    register int	    i;
-    register int	    curBit;
-    register int	    bitPos;
-    register unsigned int   bits;
-    unsigned int	    startmask = 0, endmask = 0;
-    int			    niStart = 0, niEnd = 0;
-    int			    bitStart = 0, bitEnd = 0;
-    int			    nl, nlMiddle;
-    int			    nbox;
-    BoxPtr		    pbox;
-    int result;
-
-
-    if (!(planemask & 1))
-	return;
-
-    /* must explicitly ask for "int" widths, as code below expects it */
-    /* on some machines (Alpha), "long" and "int" are not the same size */
-    cfbGetTypedWidthAndPointer (pSrcDrawable, widthSrc, psrcBase, int, CfbBits)
-    cfbGetTypedWidthAndPointer (pDstDrawable, widthDst, pdstBase, int, CfbBits)
-
-#if PSZ == 16
-    widthSrc <<= 1;
-#endif
-#if PSZ == 24
-    widthSrc <<= 2;
-#endif
-
-    bitPos = ffs (bitPlane) - 1;
-
-    nbox = REGION_NUM_RECTS(prgnDst);
-    pbox = REGION_RECTS(prgnDst);
-    while (nbox--)
-    {
-	dstx = pbox->x1;
-	dsty = pbox->y1;
-	srcx = pptSrc->x;
-	srcy = pptSrc->y;
-	width = pbox->x2 - pbox->x1;
-	height = pbox->y2 - pbox->y1;
-	pbox++;
-	pptSrc++;
-#if PSZ == 16
-	psrcLine = (unsigned short *)psrcBase + srcy * widthSrc + srcx;
-#endif
-#if PSZ == 24
-	psrcLine = (unsigned char *)psrcBase + srcy * widthSrc + srcx * 3;
-#endif
-#if PSZ == 32
-	psrcLine = (unsigned int *)psrcBase + srcy * widthSrc + srcx;
-#endif
-	pdstLine = (unsigned int *)pdstBase + dsty * widthDst + (dstx >> 5);
-	if (dstx + width <= 32)
-	{
-	    mfbmaskpartialbits(dstx, width, startmask);
-	    nlMiddle = 0;
-	    endmask = 0;
-	}
-	else
-	{
-	    mfbmaskbits (dstx, width, startmask, endmask, nlMiddle);
-	}
-	if (startmask)
-	{
-	    niStart = 32 - (dstx & 0x1f);
-	    bitStart = LeftMost;
-	    StepBit (bitStart, (dstx & 0x1f));
-	}
-	if (endmask)
-	{
-	    niEnd = (dstx + width) & 0x1f;
-	    bitEnd = LeftMost;
-	}
-	if (rop == GXcopy)
-	{
-	    while (height--)
-	    {
-	    	psrc = psrcLine;
-	    	pdst = pdstLine;
-	    	psrcLine += widthSrc;
-	    	pdstLine += widthDst;
-	    	if (startmask)
-	    	{
-		    i = niStart;
-		    curBit = bitStart;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-
-		    *pdst = (*pdst & ~startmask) | bits;
-		    pdst++;
-	    	}
-	    	nl = nlMiddle;
-	    	while (nl--)
-	    	{
-		    i = 32;
-		    curBit = LeftMost;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-		    *pdst++ = bits;
-	    	}
-	    	if (endmask)
-	    	{
-		    i = niEnd;
-		    curBit = bitEnd;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-
-		    *pdst = (*pdst & ~endmask) | bits;
-	    	}
-	    }
-	}
-	else
-	{
-	    while (height--)
-	    {
-	    	psrc = psrcLine;
-	    	pdst = pdstLine;
-	    	psrcLine += widthSrc;
-	    	pdstLine += widthDst;
-	    	if (startmask)
-	    	{
-		    i = niStart;
-		    curBit = bitStart;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-                    DoRop (result, rop, bits, *pdst);
-
-		    *pdst = (*pdst & ~startmask) | 
-			    (result & startmask);
-		    pdst++;
-	    	}
-	    	nl = nlMiddle;
- 	    	while (nl--)
-	    	{
-		    i = 32;
-		    curBit = LeftMost;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-                    DoRop (result, rop, bits, *pdst);
-		    *pdst = result;
-		    ++pdst;
-	    	}
-	    	if (endmask)
-	    	{
-		    i = niEnd;
-		    curBit = bitEnd;
-		    GetBits (psrc, i, curBit, bitPos, bits);
-                    DoRop (result, rop, bits, *pdst);
-
-		    *pdst = (*pdst & ~endmask) |
-			    (result & endmask);
-	    	}
-	    }
-	}
-    }
-}
-
-#endif  /* PSZ == 8 */
diff --git a/cfb/cfbfillarc.c b/cfb/cfbfillarc.c
deleted file mode 100644
index 0eb5ff4..0000000
--- a/cfb/cfbfillarc.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/************************************************************
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-********************************************************/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <limits.h>
-
-#include <X11/X.h>
-#include <X11/Xprotostr.h>
-#include "regionstr.h"
-#include "gcstruct.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "mifillarc.h"
-#include "cfbrrop.h"
-#include "mi.h"
-
-/* gcc 1.35 is stupid */
-#if defined(__GNUC__) && __GNUC__ < 2 && defined(mc68020)
-#define STUPID volatile
-#else
-#define STUPID
-#endif
-
-static void
-RROP_NAME(cfbFillEllipseSolid)(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    xArc *arc)
-{
-    STUPID int x, y, e;
-    STUPID int yk, xk, ym, xm, dx, dy, xorg, yorg;
-    miFillArcRec info;
-#if PSZ == 24
-    unsigned char *addrlt, *addrlb;
-#else
-    CfbBits *addrlt, *addrlb;
-#endif
-    register CfbBits *addrl;
-    register int n;
-    int nlwidth;
-    RROP_DECLARE
-    register int xpos;
-    register int slw;
-    CfbBits startmask, endmask;
-    int	nlmiddle;
-#if PSZ == 24
-    register int pidx;
-    int xpos3;
-#endif
-
-#if PSZ == 24
-    cfbGetByteWidthAndPointer (pDraw, nlwidth, addrlt)
-#else
-    cfbGetLongWidthAndPointer (pDraw, nlwidth, addrlt)
-#endif
-
-    RROP_FETCH_GC(pGC);
-    miFillArcSetup(arc, &info);
-    MIFILLARCSETUP();
-    xorg += pDraw->x;
-    yorg += pDraw->y;
-    addrlb = addrlt;
-    addrlt += nlwidth * (yorg - y);
-    addrlb += nlwidth * (yorg + y + dy);
-    while (y)
-    {
-	addrlt += nlwidth;
-	addrlb -= nlwidth;
-	MIFILLARCSTEP(slw);
-	if (!slw)
-	    continue;
-	xpos = xorg - x;
-#if PSZ == 24
-	xpos3 = (xpos * 3) & ~0x03;
-	addrl = (CfbBits *)((char *)addrlt + xpos3);
-	if (slw == 1){
-	  RROP_SOLID24(addrl, xpos);
-	  if (miFillArcLower(slw)){
-	    addrl = (CfbBits *)((char *)addrlb + xpos3);
-	    RROP_SOLID24(addrl, xpos);
-          }
-	  continue;
-	}
-	maskbits(xpos, slw, startmask, endmask, nlmiddle);
-	xpos &= 3;
-	pidx = xpos;
-	if (startmask){
-	  RROP_SOLID_MASK(addrl, startmask, pidx-1);
-	  addrl++;
-	  if (pidx == 3)
-	    pidx = 0;
-	}
-	n = nlmiddle;
-	while (--n >= 0){
-	  RROP_SOLID(addrl, pidx);
-	  addrl++;
-	  if (++pidx == 3)
-	    pidx = 0;
-	}
-	if (endmask)
-	  RROP_SOLID_MASK(addrl, endmask, pidx);
-	if (!miFillArcLower(slw))
-	  continue;
-	addrl = (CfbBits *)((char *)addrlb + xpos3);
-	pidx = xpos;
-	if (startmask){
-	  RROP_SOLID_MASK(addrl, startmask, pidx-1);
-	  addrl++;
-	  if (pidx == 3)
-	    pidx = 0;
-	}
-	n = nlmiddle;
-	while (--n >= 0){
-	  RROP_SOLID(addrl, pidx);
-	  addrl++;
-	  if (++pidx == 3)
-	    pidx = 0;
-	}
-	if (endmask)
-	  RROP_SOLID_MASK(addrl, endmask, pidx);
-#else /* PSZ == 24 */
-	addrl = addrlt + (xpos >> PWSH);
-	if (((xpos & PIM) + slw) <= PPW)
-	{
-	    maskpartialbits(xpos, slw, startmask);
-	    RROP_SOLID_MASK(addrl,startmask);
-	    if (miFillArcLower(slw))
-	    {
-		addrl = addrlb + (xpos >> PWSH);
-		RROP_SOLID_MASK(addrl, startmask);
-	    }
-	    continue;
-	}
-	maskbits(xpos, slw, startmask, endmask, nlmiddle);
-	if (startmask)
-	{
-	    RROP_SOLID_MASK(addrl, startmask);
-	    addrl++;
-	}
-	n = nlmiddle;
-	RROP_SPAN(addrl,n)
-
-	if (endmask)
-	    RROP_SOLID_MASK(addrl, endmask);
-	if (!miFillArcLower(slw))
-	    continue;
-	addrl = addrlb + (xpos >> PWSH);
-	if (startmask)
-	{
-	    RROP_SOLID_MASK(addrl, startmask);
-	    addrl++;
-	}
-	n = nlmiddle;
-	RROP_SPAN(addrl, n);
-	if (endmask)
-	    RROP_SOLID_MASK(addrl, endmask);
-#endif /* PSZ == 24 */
-    }
-    RROP_UNDECLARE
-}
-
-#if PSZ == 24
-#define FILLSPAN(xl,xr,addr) \
-    if (xr >= xl){ \
-	n = xr - xl + 1; \
-	addrl = (CfbBits *)((char *)addr + ((xl * 3) & ~0x03)); \
-	if (n <= 1){ \
-          if (n) \
-            RROP_SOLID24(addrl, xl); \
-	} else { \
-	  maskbits(xl, n, startmask, endmask, n); \
-          pidx = xl & 3; \
-	  if (startmask){ \
-	    RROP_SOLID_MASK(addrl, startmask, pidx-1); \
-	    addrl++; \
-	    if (pidx == 3) \
-	      pidx = 0; \
-	  } \
-	  while (--n >= 0){ \
-	    RROP_SOLID(addrl, pidx); \
-	    addrl++; \
-	    if (++pidx == 3) \
-	      pidx = 0; \
-	  } \
-	  if (endmask) \
-	    RROP_SOLID_MASK(addrl, endmask, pidx); \
-	} \
-    }
-#else /* PSZ == 24 */
-#define FILLSPAN(xl,xr,addr) \
-    if (xr >= xl) \
-    { \
-	n = xr - xl + 1; \
-	addrl = addr + (xl >> PWSH); \
-	if (((xl & PIM) + n) <= PPW) \
-	{ \
-	    maskpartialbits(xl, n, startmask); \
-	    RROP_SOLID_MASK(addrl, startmask); \
-	} \
-	else \
-	{ \
-	    maskbits(xl, n, startmask, endmask, n); \
-	    if (startmask) \
-	    { \
-		RROP_SOLID_MASK(addrl, startmask); \
-		addrl++; \
-	    } \
-	    while (n--) \
-	    { \
-		RROP_SOLID(addrl); \
-		++addrl; \
-	    } \
-	    if (endmask) \
-		RROP_SOLID_MASK(addrl, endmask); \
-	} \
-    }
-#endif /* PSZ == 24 */
-
-#define FILLSLICESPANS(flip,addr) \
-    if (!flip) \
-    { \
-	FILLSPAN(xl, xr, addr); \
-    } \
-    else \
-    { \
-	xc = xorg - x; \
-	FILLSPAN(xc, xr, addr); \
-	xc += slw - 1; \
-	FILLSPAN(xl, xc, addr); \
-    }
-
-static void
-RROP_NAME(cfbFillArcSliceSolid)(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    xArc *arc)
-{
-    int yk, xk, ym, xm, dx, dy, xorg, yorg, slw;
-    register int x, y, e;
-    miFillArcRec info;
-    miArcSliceRec slice;
-    int xl, xr, xc;
-#if PSZ == 24
-    unsigned char *addrlt, *addrlb;
-#else
-    CfbBits *addrlt, *addrlb;
-#endif
-    register CfbBits *addrl;
-    register int n;
-    int nlwidth;
-    RROP_DECLARE
-    CfbBits startmask, endmask;
-#if PSZ == 24
-    register int pidx;
-#endif /* PSZ == 24 */
-
-#if PSZ == 24
-    cfbGetByteWidthAndPointer (pDraw, nlwidth, addrlt)
-#else
-    cfbGetLongWidthAndPointer (pDraw, nlwidth, addrlt)
-#endif
-
-    RROP_FETCH_GC(pGC);
-    miFillArcSetup(arc, &info);
-    miFillArcSliceSetup(arc, &slice, pGC);
-    MIFILLARCSETUP();
-    xorg += pDraw->x;
-    yorg += pDraw->y;
-    addrlb = addrlt;
-    addrlt += nlwidth * (yorg - y);
-    addrlb += nlwidth * (yorg + y + dy);
-    slice.edge1.x += pDraw->x;
-    slice.edge2.x += pDraw->x;
-    while (y > 0)
-    {
-	addrlt += nlwidth;
-	addrlb -= nlwidth;
-	MIFILLARCSTEP(slw);
-	MIARCSLICESTEP(slice.edge1);
-	MIARCSLICESTEP(slice.edge2);
-	if (miFillSliceUpper(slice))
-	{
-	    MIARCSLICEUPPER(xl, xr, slice, slw);
-	    FILLSLICESPANS(slice.flip_top, addrlt);
-	}
-	if (miFillSliceLower(slice))
-	{
-	    MIARCSLICELOWER(xl, xr, slice, slw);
-	    FILLSLICESPANS(slice.flip_bot, addrlb);
-	}
-    }
-    RROP_UNDECLARE
-}
-
-void
-RROP_NAME(cfbPolyFillArcSolid) (pDraw, pGC, narcs, parcs)
-    DrawablePtr	pDraw;
-    GCPtr	pGC;
-    int		narcs;
-    xArc	*parcs;
-{
-    register xArc *arc;
-    register int i;
-    int x2, y2;
-    BoxRec box;
-    RegionPtr cclip;
-
-    cclip = cfbGetCompositeClip(pGC);
-    for (arc = parcs, i = narcs; --i >= 0; arc++)
-    {
-	if (miFillArcEmpty(arc))
-	    continue;
-	if (miCanFillArc(arc))
-	{
-	    box.x1 = arc->x + pDraw->x;
-	    box.y1 = arc->y + pDraw->y;
- 	    /*
- 	     * Because box.x2 and box.y2 get truncated to 16 bits, and the
- 	     * RECT_IN_REGION test treats the resulting number as a signed
- 	     * integer, the RECT_IN_REGION test alone can go the wrong way.
- 	     * This can result in a server crash because the rendering
- 	     * routines in this file deal directly with cpu addresses
- 	     * of pixels to be stored, and do not clip or otherwise check
- 	     * that all such addresses are within their respective pixmaps.
- 	     * So we only allow the RECT_IN_REGION test to be used for
- 	     * values that can be expressed correctly in a signed short.
- 	     */
- 	    x2 = box.x1 + (int)arc->width + 1;
- 	    box.x2 = x2;
- 	    y2 = box.y1 + (int)arc->height + 1;
- 	    box.y2 = y2;
- 	    if ( (x2 <= SHRT_MAX) && (y2 <= SHRT_MAX) &&
- 		    (RECT_IN_REGION(pDraw->pScreen, cclip, &box) == rgnIN) )
-	    {
-		if ((arc->angle2 >= FULLCIRCLE) ||
-		    (arc->angle2 <= -FULLCIRCLE))
-		    RROP_NAME(cfbFillEllipseSolid)(pDraw, pGC, arc);
-		else
-		    RROP_NAME(cfbFillArcSliceSolid)(pDraw, pGC, arc);
-		continue;
-	    }
-	}
-	miPolyFillArc(pDraw, pGC, 1, arc);
-    }
-}
diff --git a/cfb/cfbfillrct.c b/cfb/cfbfillrct.c
deleted file mode 100644
index fc2d31b..0000000
--- a/cfb/cfbfillrct.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Fill rectangles.
- */
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-*/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "gcstruct.h"
-#include "window.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-#include "mi.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "mergerop.h"
-
-
-void
-cfbFillBoxTileOdd (pDrawable, n, rects, tile, xrot, yrot)
-    DrawablePtr	pDrawable;
-    int		n;
-    BoxPtr	rects;
-    PixmapPtr	tile;
-    int		xrot, yrot;
-{
-#if PSZ == 24
-    if (tile->drawable.width & 3)
-#else
-    if (tile->drawable.width & PIM)
-#endif
-	cfbFillBoxTileOddCopy (pDrawable, n, rects, tile, xrot, yrot, GXcopy, ~0L);
-    else
-	cfbFillBoxTile32sCopy (pDrawable, n, rects, tile, xrot, yrot, GXcopy, ~0L);
-}
-
-void
-cfbFillRectTileOdd (pDrawable, pGC, nBox, pBox)
-    DrawablePtr	pDrawable;
-    GCPtr	pGC;
-    int		nBox;
-    BoxPtr	pBox;
-{
-    int	xrot, yrot;
-    void    (*fill)(DrawablePtr, int, BoxPtr, PixmapPtr, int, int, int, unsigned long);
-
-    xrot = pDrawable->x + pGC->patOrg.x;
-    yrot = pDrawable->y + pGC->patOrg.y;
-#if PSZ == 24
-    if (pGC->tile.pixmap->drawable.width & 3)
-#else
-    if (pGC->tile.pixmap->drawable.width & PIM)
-#endif
-    {
-    	fill = cfbFillBoxTileOddGeneral;
-    	if ((pGC->planemask & PMSK) == PMSK)
-    	{
-	    if (pGC->alu == GXcopy)
-	    	fill = cfbFillBoxTileOddCopy;
-    	}
-    }
-    else
-    {
-    	fill = cfbFillBoxTile32sGeneral;
-    	if ((pGC->planemask & PMSK) == PMSK)
-    	{
-	    if (pGC->alu == GXcopy)
-	    	fill = cfbFillBoxTile32sCopy;
-    	}
-    }
-    (*fill) (pDrawable, nBox, pBox, pGC->tile.pixmap, xrot, yrot, pGC->alu, pGC->planemask);
-}
-
-#define NUM_STACK_RECTS	1024
-
-void
-cfbPolyFillRect(pDrawable, pGC, nrectFill, prectInit)
-    DrawablePtr pDrawable;
-    register GCPtr pGC;
-    int		nrectFill; 	/* number of rectangles to fill */
-    xRectangle	*prectInit;  	/* Pointer to first rectangle to fill */
-{
-    xRectangle	    *prect;
-    RegionPtr	    prgnClip;
-    register BoxPtr pbox;
-    register BoxPtr pboxClipped;
-    BoxPtr	    pboxClippedBase;
-    BoxPtr	    pextent;
-    BoxRec	    stackRects[NUM_STACK_RECTS];
-    cfbPrivGC	    *priv;
-    int		    numRects;
-    void	    (*BoxFill)(DrawablePtr, GCPtr, int, BoxPtr);
-    int		    n;
-    int		    xorg, yorg;
-
-#if PSZ != 8
-    if ((pGC->fillStyle == FillStippled) ||
-	(pGC->fillStyle == FillOpaqueStippled)) {
-       miPolyFillRect(pDrawable, pGC, nrectFill, prectInit);
-       return;
-    }
-#endif
-
-    priv = cfbGetGCPrivate(pGC);
-    prgnClip = pGC->pCompositeClip;
-
-    BoxFill = 0;
-    switch (pGC->fillStyle)
-    {
-    case FillSolid:
-	switch (priv->rop) {
-	case GXcopy:
-	    BoxFill = cfbFillRectSolidCopy;
-	    break;
-	case GXxor:
-	    BoxFill = cfbFillRectSolidXor;
-	    break;
-	default:
-	    BoxFill = cfbFillRectSolidGeneral;
-	    break;
-	}
-	break;
-    case FillTiled:
-	if (!pGC->pRotatedPixmap)
-	    BoxFill = cfbFillRectTileOdd;
-	else
-	{
-	    if (pGC->alu == GXcopy && (pGC->planemask & PMSK) == PMSK)
-		BoxFill = cfbFillRectTile32Copy;
-	    else
-		BoxFill = cfbFillRectTile32General;
-	}
-	break;
-#if PSZ == 8
-    case FillStippled:
-	if (!pGC->pRotatedPixmap)
-	    BoxFill = cfb8FillRectStippledUnnatural;
-	else
-	    BoxFill = cfb8FillRectTransparentStippled32;
-	break;
-    case FillOpaqueStippled:
-	if (!pGC->pRotatedPixmap)
-	    BoxFill = cfb8FillRectStippledUnnatural;
-	else
-	    BoxFill = cfb8FillRectOpaqueStippled32;
-	break;
-#endif
-    }
-    prect = prectInit;
-    xorg = pDrawable->x;
-    yorg = pDrawable->y;
-    if (xorg || yorg)
-    {
-	prect = prectInit;
-	n = nrectFill;
-	while(n--)
-	{
-	    prect->x += xorg;
-	    prect->y += yorg;
-	    prect++;
-	}
-    }
-
-    prect = prectInit;
-
-    numRects = REGION_NUM_RECTS(prgnClip) * nrectFill;
-    if (numRects > NUM_STACK_RECTS)
-    {
-	pboxClippedBase = (BoxPtr)xalloc(numRects * sizeof(BoxRec));
-	if (!pboxClippedBase)
-	    return;
-    }
-    else
-	pboxClippedBase = stackRects;
-
-    pboxClipped = pboxClippedBase;
-	
-    if (REGION_NUM_RECTS(prgnClip) == 1)
-    {
-	int x1, y1, x2, y2, bx2, by2;
-
-	pextent = REGION_RECTS(prgnClip);
-	x1 = pextent->x1;
-	y1 = pextent->y1;
-	x2 = pextent->x2;
-	y2 = pextent->y2;
-    	while (nrectFill--)
-    	{
-	    if ((pboxClipped->x1 = prect->x) < x1)
-		pboxClipped->x1 = x1;
-    
-	    if ((pboxClipped->y1 = prect->y) < y1)
-		pboxClipped->y1 = y1;
-    
-	    bx2 = (int) prect->x + (int) prect->width;
-	    if (bx2 > x2)
-		bx2 = x2;
-	    pboxClipped->x2 = bx2;
-    
-	    by2 = (int) prect->y + (int) prect->height;
-	    if (by2 > y2)
-		by2 = y2;
-	    pboxClipped->y2 = by2;
-
-	    prect++;
-	    if ((pboxClipped->x1 < pboxClipped->x2) &&
-		(pboxClipped->y1 < pboxClipped->y2))
-	    {
-		pboxClipped++;
-	    }
-    	}
-    }
-    else
-    {
-	int x1, y1, x2, y2, bx2, by2;
-
-	pextent = REGION_EXTENTS(pGC->pScreen, prgnClip);
-	x1 = pextent->x1;
-	y1 = pextent->y1;
-	x2 = pextent->x2;
-	y2 = pextent->y2;
-    	while (nrectFill--)
-    	{
-	    BoxRec box;
-    
-	    if ((box.x1 = prect->x) < x1)
-		box.x1 = x1;
-    
-	    if ((box.y1 = prect->y) < y1)
-		box.y1 = y1;
-    
-	    bx2 = (int) prect->x + (int) prect->width;
-	    if (bx2 > x2)
-		bx2 = x2;
-	    box.x2 = bx2;
-    
-	    by2 = (int) prect->y + (int) prect->height;
-	    if (by2 > y2)
-		by2 = y2;
-	    box.y2 = by2;
-    
-	    prect++;
-    
-	    if ((box.x1 >= box.x2) || (box.y1 >= box.y2))
-	    	continue;
-    
-	    n = REGION_NUM_RECTS (prgnClip);
-	    pbox = REGION_RECTS(prgnClip);
-    
-	    /* clip the rectangle to each box in the clip region
-	       this is logically equivalent to calling Intersect()
-	    */
-	    while(n--)
-	    {
-		pboxClipped->x1 = max(box.x1, pbox->x1);
-		pboxClipped->y1 = max(box.y1, pbox->y1);
-		pboxClipped->x2 = min(box.x2, pbox->x2);
-		pboxClipped->y2 = min(box.y2, pbox->y2);
-		pbox++;
-
-		/* see if clipping left anything */
-		if(pboxClipped->x1 < pboxClipped->x2 && 
-		   pboxClipped->y1 < pboxClipped->y2)
-		{
-		    pboxClipped++;
-		}
-	    }
-    	}
-    }
-    if (pboxClipped != pboxClippedBase)
-	(*BoxFill) (pDrawable, pGC,
-		    pboxClipped-pboxClippedBase, pboxClippedBase);
-    if (pboxClippedBase != stackRects)
-    	xfree(pboxClippedBase);
-}
diff --git a/cfb/cfbfillsp.c b/cfb/cfbfillsp.c
deleted file mode 100644
index 36710b6..0000000
--- a/cfb/cfbfillsp.c
+++ /dev/null
@@ -1,1004 +0,0 @@
-/************************************************************
-Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
-
-                    All Rights Reserved
-
-Permission  to  use,  copy,  modify,  and  distribute   this
-software  and  its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright no-
-tice  appear  in all copies and that both that copyright no-
-tice and this permission notice appear in  supporting  docu-
-mentation,  and  that the names of Sun or The Open Group
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and The Open Group make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
-implied warranty.
-
-SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
-NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
-ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
-PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "gcstruct.h"
-#include "window.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-
-#include "mergerop.h"
-
-#if PSZ == 8
-#include "cfb8bit.h"
-#endif
-
-#define MFB_CONSTS_ONLY
-#include "maskbits.h"
-
-#include "mi.h"
-#include "mispans.h"
-
-/* scanline filling for color frame buffer
-   written by drewry, oct 1986 modified by smarks
-   changes for compatibility with Little-endian systems Jul 1987; MIT:yba.
-
-   these routines all clip.  they assume that anything that has called
-them has already translated the points (i.e. pGC->miTranslate is
-non-zero, which is howit gets set in cfbCreateGC().)
-
-   the number of new scnalines created by clipping ==
-MaxRectsPerBand * nSpans.
-
-    FillSolid is overloaded to be used for OpaqueStipple as well,
-if fgPixel == bgPixel.  
-Note that for solids, PrivGC.rop == PrivGC.ropOpStip
-
-
-    FillTiled is overloaded to be used for OpaqueStipple, if
-fgPixel != bgPixel.  based on the fill style, it uses
-{RotatedTile, gc.alu} or {RotatedStipple, PrivGC.ropOpStip}
-*/
-
-#ifdef	notdef
-#include	<stdio.h>
-static
-dumpspans(n, ppt, pwidth)
-    int	n;
-    DDXPointPtr ppt;
-    int *pwidth;
-{
-    fprintf(stderr,"%d spans\n", n);
-    while (n--) {
-	fprintf(stderr, "[%d,%d] %d\n", ppt->x, ppt->y, *pwidth);
-	ppt++;
-	pwidth++;
-    }
-    fprintf(stderr, "\n");
-}
-#endif
-
-/* Fill spans with tiles that aren't 32 bits wide */
-void
-cfbUnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted)
-DrawablePtr pDrawable;
-GC		*pGC;
-int		nInit;		/* number of spans to fill */
-DDXPointPtr pptInit;		/* pointer to list of start points */
-int *pwidthInit;		/* pointer to list of n widths */
-int fSorted;
-{
-    int n;			/* number of spans to fill */
-    register DDXPointPtr ppt;	/* pointer to list of start points */
-    register int *pwidth;	/* pointer to list of n widths */
-    void    (*fill)(DrawablePtr, int, DDXPointPtr, int *, PixmapPtr, int, int, int, unsigned long);
-    int	xrot, yrot;
-
-    if (!(pGC->planemask))
-	return;
-
-#if PSZ == 24
-    if (pGC->tile.pixmap->drawable.width & 3)
-#else
-    if (pGC->tile.pixmap->drawable.width & PIM)
-#endif
-    {
-    	fill = cfbFillSpanTileOddGeneral;
-    	if ((pGC->planemask & PMSK) == PMSK)
-    	{
-	    if (pGC->alu == GXcopy)
-	    	fill = cfbFillSpanTileOddCopy;
-    	}
-    }
-    else
-    {
-	fill = cfbFillSpanTile32sGeneral;
-    	if ((pGC->planemask & PMSK) == PMSK)
-    	{
-	    if (pGC->alu == GXcopy)
-		fill = cfbFillSpanTile32sCopy;
-	}
-    }
-    n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) );
-    if ( n == 0 )
-	return;
-    pwidth = (int *)xalloc(n * sizeof(int));
-    ppt = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec));
-    if(!ppt || !pwidth)
-    {
-	if (ppt) xfree(ppt);
-	if (pwidth) xfree(pwidth);
-	return;
-    }
-    n = miClipSpans( cfbGetCompositeClip(pGC),
-		     pptInit, pwidthInit, nInit, 
-		     ppt, pwidth, fSorted);
-
-    xrot = pDrawable->x + pGC->patOrg.x;
-    yrot = pDrawable->y + pGC->patOrg.y;
-
-    (*fill) (pDrawable, n, ppt, pwidth, pGC->tile.pixmap, xrot, yrot, pGC->alu, pGC->planemask);
-
-    xfree(ppt);
-    xfree(pwidth);
-}
-
-#if PSZ == 8
-
-void
-cfbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted)
-DrawablePtr pDrawable;
-GC		*pGC;
-int		nInit;		/* number of spans to fill */
-DDXPointPtr pptInit;		/* pointer to list of start points */
-int *pwidthInit;		/* pointer to list of n widths */
-int fSorted;
-{
-				/* next three parameters are post-clip */
-    int		    n;		/* number of spans to fill */
-    DDXPointPtr	    ppt;	/* pointer to list of start points */
-    int		    *pwidth;	/* pointer to list of n widths */
-    int		    *pwidthFree;/* copies of the pointers to free */
-    DDXPointPtr	    pptFree;
-    CfbBits   *pdstBase;	/* pointer to start of bitmap */
-    int		    nlwDst;	/* width in longwords of bitmap */
-    register CfbBits    *pdst;	/* pointer to current word in bitmap */
-    PixmapPtr	    pStipple;	/* pointer to stipple we want to fill with */
-    int		    nlw;
-    int		    x, y, w, xrem, xSrc, ySrc;
-    int		    stwidth, stippleWidth;
-    int		    stippleHeight;
-    register CfbBits  bits, inputBits;
-    register int    partBitsLeft;
-    int		    nextPartBits;
-    int		    bitsLeft, bitsWhole;
-    CfbBits   *srcTemp, *srcStart;
-    CfbBits   *psrcBase;
-    CfbBits   startmask, endmask;
-
-    if (pGC->fillStyle == FillStippled)
-	cfb8CheckStipple (pGC->alu, pGC->fgPixel, pGC->planemask);
-    else
-	cfb8CheckOpaqueStipple (pGC->alu, pGC->fgPixel, pGC->bgPixel, pGC->planemask);
-
-    if (cfb8StippleRRop == GXnoop)
-	return;
-
-    n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) );
-    if ( n == 0 )
-	return;
-    pwidthFree = (int *)xalloc(n * sizeof(int));
-    pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec));
-    if(!pptFree || !pwidthFree)
-    {
-	if (pptFree) xfree(pptFree);
-	if (pwidthFree) xfree(pwidthFree);
-	return;
-    }
-
-    pwidth = pwidthFree;
-    ppt = pptFree;
-    n = miClipSpans( cfbGetCompositeClip(pGC),
-		     pptInit, pwidthInit, nInit, 
-		     ppt, pwidth, fSorted);
-
-    /*
-     *  OK,  so what's going on here?  We have two Drawables:
-     *
-     *  The Stipple:
-     *		Depth = 1
-     *		Width = stippleWidth
-     *		Words per scanline = stwidth
-     *		Pointer to pixels = pStipple->devPrivate.ptr
-     */
-
-    pStipple = pGC->stipple;
-
-    stwidth = pStipple->devKind >> PWSH;
-    stippleWidth = pStipple->drawable.width;
-    stippleHeight = pStipple->drawable.height;
-    psrcBase = (CfbBits *) pStipple->devPrivate.ptr;
-
-    /*
-     *	The Target:
-     *		Depth = PSZ
-     *		Width = determined from *pwidth
-     *		Words per scanline = nlwDst
-     *		Pointer to pixels = addrlBase
-     */
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pdstBase)
-
-    /* this replaces rotating the stipple. Instead we just adjust the offset
-     * at which we start grabbing bits from the stipple.
-     * Ensure that ppt->x - xSrc >= 0 and ppt->y - ySrc >= 0,
-     * so that iline and xrem always stay within the stipple bounds.
-     */
-
-    modulus (pGC->patOrg.x, stippleWidth, xSrc);
-    xSrc += pDrawable->x - stippleWidth;
-    modulus (pGC->patOrg.y, stippleHeight, ySrc);
-    ySrc += pDrawable->y - stippleHeight;
-
-    bitsWhole = stippleWidth;
-
-    while (n--)
-    {
-	x = ppt->x;
-	y = ppt->y;
-	ppt++;
-	w = *pwidth++;
-	pdst = pdstBase + y * nlwDst + (x >> PWSH);
-	y = (y - ySrc) % stippleHeight;
-	srcStart = psrcBase + y * stwidth;
-	xrem = ((x & ~(PGSZB-1)) - xSrc) % stippleWidth;
-	srcTemp = srcStart + (xrem >> MFB_PWSH);
-	bitsLeft = stippleWidth - (xrem & ~MFB_PIM);
-	xrem &= MFB_PIM;
-	NextUnnaturalStippleWord
-	if (partBitsLeft < xrem)
-	    FatalError ("cfbUnnaturalStippleFS bad partBitsLeft %d xrem %d",
-			partBitsLeft, xrem);
-	NextSomeBits (inputBits, xrem);
-	partBitsLeft -= xrem;
-	if (((x & PIM) + w) <= PPW)
-	{
-	    maskpartialbits (x, w, startmask)
-	    NextUnnaturalStippleBits
-	    *pdst = MaskRRopPixels(*pdst,bits,startmask);
-	}
-	else
-	{
-	    maskbits (x, w, startmask, endmask, nlw);
-	    nextPartBits = (x & (PGSZB-1)) + w;
-	    if (nextPartBits < partBitsLeft)
-	    {
-		if (startmask)
-		{
-		    MaskRRopBitGroup(pdst,GetBitGroup(inputBits),startmask)
-		    pdst++;
-		    NextBitGroup (inputBits);
-		}
-		while (nlw--)
-		{
-		    RRopBitGroup (pdst, GetBitGroup (inputBits));
-		    pdst++;
-		    NextBitGroup (inputBits);
-		}
-		if (endmask)
-		{
-		    MaskRRopBitGroup(pdst,GetBitGroup(inputBits),endmask)
-		}
-	    }
-	    else if (bitsLeft != bitsWhole && nextPartBits < partBitsLeft + bitsLeft)
-	    {
-	    	NextUnnaturalStippleBitsFast
-	    	if (startmask)
-	    	{
-		    *pdst = MaskRRopPixels(*pdst,bits,startmask);
-		    pdst++;
-	    	    NextUnnaturalStippleBitsFast
-	    	}
-	    	while (nlw--)
-	    	{
-		    *pdst = RRopPixels(*pdst,bits);
-		    pdst++;
-	    	    NextUnnaturalStippleBitsFast
-	    	}
-	    	if (endmask)
-		    *pdst = MaskRRopPixels (*pdst,bits,endmask);
-	    }
-	    else
-	    {
-	    	NextUnnaturalStippleBits
-	    	if (startmask)
-	    	{
-		    *pdst = MaskRRopPixels(*pdst,bits,startmask);
-		    pdst++;
-	    	    NextUnnaturalStippleBits
-	    	}
-	    	while (nlw--)
-	    	{
-		    *pdst = RRopPixels(*pdst,bits);
-		    pdst++;
-	    	    NextUnnaturalStippleBits
-	    	}
-	    	if (endmask)
-		    *pdst = MaskRRopPixels(*pdst,bits,endmask);
-	    }
-	}
-    }
-    xfree(pptFree);
-    xfree(pwidthFree);
-}
-
-#else /* PSZ != 8 */
-
-/* Fill spans with stipples that aren't 32 bits wide */
-void
-cfbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted)
-DrawablePtr pDrawable;
-GC		*pGC;
-int		nInit;		/* number of spans to fill */
-DDXPointPtr pptInit;		/* pointer to list of start points */
-int *pwidthInit;		/* pointer to list of n widths */
-int fSorted;
-{
-				/* next three parameters are post-clip */
-    int			    n;		/* number of spans to fill */
-    register DDXPointPtr    ppt;	/* pointer to list of start points */
-    register int	    *pwidth;	/* pointer to list of n widths */
-    int			    iline;	/* first line of tile to use */
-    CfbBits	    *addrlBase;	/* pointer to start of bitmap */
-    int			    nlwidth;	/* width in longwords of bitmap */
-    register CfbBits  *pdst;	/* pointer to current word in bitmap */
-    PixmapPtr		    pStipple;	/* pointer to stipple we want to fill with */
-    register int	    w;
-    int			    width,  x, xrem, xSrc, ySrc;
-    CfbBits	    tmpSrc, tmpDst1, tmpDst2;
-    int			    stwidth, stippleWidth;
-    CfbBits	    *psrcS;
-    int			    rop, stiprop = 0;
-    int			    stippleHeight;
-    int			    *pwidthFree;    /* copies of the pointers to free */
-    DDXPointPtr		    pptFree;
-    CfbBits	    fgfill, bgfill;
-
-    if (!(pGC->planemask))
-	return;
-
-    n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) );
-    if ( n == 0 )
-	return;
-    pwidthFree = (int *)xalloc(n * sizeof(int));
-    pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec));
-    if(!pptFree || !pwidthFree)
-    {
-	if (pptFree) xfree(pptFree);
-	if (pwidthFree) xfree(pwidthFree);
-	return;
-    }
-    pwidth = pwidthFree;
-    ppt = pptFree;
-    n = miClipSpans( cfbGetCompositeClip(pGC),
-		     pptInit, pwidthInit, nInit, 
-		     ppt, pwidth, fSorted);
-    rop = pGC->alu;
-    if (pGC->fillStyle == FillStippled) {
-	switch (rop) {
-	    case GXand:
-	    case GXcopy:
-	    case GXnoop:
-	    case GXor:
-		stiprop = rop;
-		break;
-	    default:
-		stiprop = rop;
-		rop = GXcopy;
-	}
-    }
-    fgfill = PFILL(pGC->fgPixel);
-    bgfill = PFILL(pGC->bgPixel);
-
-    /*
-     *  OK,  so what's going on here?  We have two Drawables:
-     *
-     *  The Stipple:
-     *		Depth = 1
-     *		Width = stippleWidth
-     *		Words per scanline = stwidth
-     *		Pointer to pixels = pStipple->devPrivate.ptr
-     */
-    pStipple = pGC->stipple;
-
-    stwidth = pStipple->devKind / PGSZB;
-    stippleWidth = pStipple->drawable.width;
-    stippleHeight = pStipple->drawable.height;
-
-    /*
-     *	The Target:
-     *		Depth = PSZ
-     *		Width = determined from *pwidth
-     *		Words per scanline = nlwidth
-     *		Pointer to pixels = addrlBase
-     */
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwidth, addrlBase)
-
-    /* this replaces rotating the stipple. Instead we just adjust the offset
-     * at which we start grabbing bits from the stipple.
-     * Ensure that ppt->x - xSrc >= 0 and ppt->y - ySrc >= 0,
-     * so that iline and xrem always stay within the stipple bounds.
-     */
-    modulus (pGC->patOrg.x, stippleWidth, xSrc);
-    xSrc += pDrawable->x - stippleWidth;
-    modulus (pGC->patOrg.y, stippleHeight, ySrc);
-    ySrc += pDrawable->y - stippleHeight;
-
-    while (n--)
-    {
-	iline = (ppt->y - ySrc) % stippleHeight;
-	x = ppt->x;
-	pdst = addrlBase + (ppt->y * nlwidth);
-        psrcS = (CfbBits *) pStipple->devPrivate.ptr + (iline * stwidth);
-
-	if (*pwidth)
-	{
-	    width = *pwidth;
-	    while(width > 0)
-	    {
-		int xtemp;
-#if PSZ != 32 || PPW != 1
-		int tmpx;
-#endif
-		register CfbBits *ptemp;
-		register CfbBits *pdsttmp;
-		/*
-		 *  Do a stripe through the stipple & destination w pixels
-		 *  wide.  w is not more than:
-		 *	-	the width of the destination
-		 *	-	the width of the stipple
-		 *	-	the distance between x and the next word 
-		 *		boundary in the destination
-		 *	-	the distance between x and the next word
-		 *		boundary in the stipple
-		 */
-
-		/* width of dest/stipple */
-                xrem = (x - xSrc) % stippleWidth;
-#if PSZ == 24
-		w = 1;
-#else
-	        w = min((stippleWidth - xrem), width);
-		/* dist to word bound in dest */
-		w = min(w, PPW - (x & PIM));
-		/* dist to word bound in stip */
-		w = min(w, MFB_PPW - (x & MFB_PIM));
-#endif
-
-	        xtemp = (xrem & MFB_PIM);
-	        ptemp = (CfbBits *)(psrcS + (xrem >> MFB_PWSH));
-#if PSZ == 24
-		tmpx = x & 3;
-		pdsttmp = pdst + ((x * 3)>>2);
-#else
-#if PSZ != 32 || PPW != 1
-		tmpx = x & PIM;
-#endif
-		pdsttmp = pdst + (x>>PWSH);
-#endif
-		switch ( pGC->fillStyle ) {
-		    case FillOpaqueStippled:
-#if PSZ == 24
-			getstipplepixels24(ptemp, xtemp, 0, &bgfill, &tmpDst1, xrem);
-			getstipplepixels24(ptemp, xtemp, 1, &fgfill, &tmpDst2, xrem);
-#else
-			getstipplepixels(ptemp, xtemp, w, 0, &bgfill, &tmpDst1);
-			getstipplepixels(ptemp, xtemp, w, 1, &fgfill, &tmpDst2);
-#endif
-			break;
-		    case FillStippled:
-			/* Fill tmpSrc with the source pixels */
-#if PSZ == 24
-			getbits24(pdsttmp, tmpSrc, x);
-			getstipplepixels24(ptemp, xtemp, 0, &tmpSrc, &tmpDst1, xrem);
-#else
-			getbits(pdsttmp, tmpx, w, tmpSrc);
-			getstipplepixels(ptemp, xtemp, w, 0, &tmpSrc, &tmpDst1);
-#endif
-			if (rop != stiprop) {
-#if PSZ == 24
-			    putbitsrop24(fgfill, 0, &tmpSrc, pGC->planemask, stiprop);
-#else
-			    putbitsrop(fgfill, 0, w, &tmpSrc, pGC->planemask, stiprop);
-#endif
-			} else {
-			    tmpSrc = fgfill;
-			}
-#if PSZ == 24
-			getstipplepixels24(ptemp, xtemp, 1, &tmpSrc, &tmpDst2, xrem);
-#else
-			getstipplepixels(ptemp, xtemp, w, 1, &tmpSrc, &tmpDst2);
-#endif
-			break;
-		}
-		tmpDst2 |= tmpDst1;
-#if PSZ == 24
-		putbitsrop24(tmpDst2, tmpx, pdsttmp, pGC->planemask, rop);
-#else
-		putbitsrop(tmpDst2, tmpx, w, pdsttmp, pGC->planemask, rop);
-#endif
-		x += w;
-		width -= w;
-	    }
-	}
-	ppt++;
-	pwidth++;
-    }
-    xfree(pptFree);
-    xfree(pwidthFree);
-}
-
-#endif /* PSZ == 8 */
-
-#if PSZ == 8
-
-void
-cfb8Stipple32FS (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted)
-    DrawablePtr pDrawable;
-    GCPtr	pGC;
-    int		nInit;			/* number of spans to fill */
-    DDXPointPtr pptInit;		/* pointer to list of start points */
-    int		*pwidthInit;		/* pointer to list of n widths */
-    int 	fSorted;
-{
-				/* next three parameters are post-clip */
-    int		    n;			/* number of spans to fill */
-    DDXPointPtr	    ppt;		/* pointer to list of start points */
-    int		    *pwidth;		/* pointer to list of n widths */
-    CfbBits   *src;		/* pointer to bits in stipple, if needed */
-    int		    stippleHeight;	/* height of the stipple */
-    PixmapPtr	    stipple;
-
-    int		    nlwDst;		/* width in longwords of the dest pixmap */
-    int		    x,y,w;		/* current span */
-    CfbBits   startmask;
-    CfbBits   endmask;
-    register CfbBits *dst;	/* pointer to bits we're writing */
-    register int    nlw;
-    CfbBits   *dstTmp;
-    int		    nlwTmp;
-
-    CfbBits   *pbits;		/* pointer to start of pixmap */
-    register CfbBits  xor;
-    register CfbBits  mask;
-    register CfbBits  bits;	/* bits from stipple */
-    int		    wEnd;
-
-    int		    *pwidthFree;	/* copies of the pointers to free */
-    DDXPointPtr	    pptFree;
-    cfbPrivGCPtr    devPriv;
-
-    devPriv = cfbGetGCPrivate(pGC);
-    cfb8CheckStipple (pGC->alu, pGC->fgPixel, pGC->planemask);
-    n = nInit * miFindMaxBand(pGC->pCompositeClip);
-    if ( n == 0 )
-	return;
-    pwidthFree = (int *)xalloc(n * sizeof(int));
-    pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec));
-    if(!pptFree || !pwidthFree)
-    {
-	if (pptFree) xfree(pptFree);
-	if (pwidthFree) xfree(pwidthFree);
-	return;
-    }
-    pwidth = pwidthFree;
-    ppt = pptFree;
-    n = miClipSpans(pGC->pCompositeClip, pptInit, pwidthInit, nInit,
-		     ppt, pwidth, fSorted);
-
-    stipple = pGC->pRotatedPixmap;
-    src = (CfbBits *)stipple->devPrivate.ptr;
-    stippleHeight = stipple->drawable.height;
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pbits)
-
-    while (n--)
-    {
-    	w = *pwidth++;
-	x = ppt->x;
-    	y = ppt->y;
-	ppt++;
-    	dst = pbits + (y * nlwDst) + (x >> PWSH);
-	if (((x & PIM) + w) <= PPW)
-	{
-	    maskpartialbits(x, w, startmask);
-	    endmask = 0;
-	    nlw = 0;
-	}
-	else
-	{
-	    maskbits (x, w, startmask, endmask, nlw);
-	}
-	bits = src[y % stippleHeight];
-	RotBitsLeft (bits, (x & ((PGSZ-1) & ~PIM)));
-#if PPW == 4
-	if (cfb8StippleRRop == GXcopy)
-	{
-	    xor = devPriv->xor;
-	    if (w < (PGSZ*2))
-	    {
-		if (startmask)
-		{
-		    mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    *dst = (*dst & ~(mask & startmask)) |
-			   (xor & (mask & startmask));
-		    dst++;
-		    RotBitsLeft (bits, PGSZB);
-		}
-		while (nlw--)
-		{
-		    WriteBitGroup (dst,xor,GetBitGroup(bits))
-		    dst++;
-		    RotBitsLeft (bits, PGSZB);
-		}
-		if (endmask)
-		{
-		    mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    *dst = (*dst & ~(mask & endmask)) |
-			   (xor & (mask & endmask));
-		}
-	    }
-	    else
-	    { /* XXX constants probably not OK here */
-		wEnd = 7 - (nlw & 7);
-		nlw = (nlw >> 3) + 1;
-		dstTmp = dst;
-		nlwTmp = nlw;
-		if (startmask)
-		{
-		    mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    *dstTmp = (*dstTmp & ~(mask & startmask)) |
-			   (xor & (mask & startmask));
-		    dstTmp++;
-		    RotBitsLeft (bits, PGSZB);
-		}
-		w = 7 - wEnd;
-		while (w--)
-		{
-		    dst = dstTmp;
-		    dstTmp++;
-		    nlw = nlwTmp;
-#if defined(__GNUC__) && defined(mc68020)
-		    mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    xor = xor & mask;
-		    mask = ~mask;
-		    while (nlw--)
-		    {
-			*dst = (*dst & mask) | xor;
-			dst += 8;
-		    }
-		    xor = devPriv->xor;
-#else
-#define SwitchBitsLoop(body) \
-    while (nlw--)	\
-    {		\
-	body	\
-	dst += 8;	\
-    }
-		    SwitchBitGroup(dst, xor, GetBitGroup(bits));
-#undef SwitchBitsLoop
-#endif
-		    NextBitGroup (bits);
-		}
-		nlwTmp--;
-		w = wEnd + 1;
-		if (endmask)
-		{
-		    mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    dst = dstTmp + (nlwTmp << 3);
-		    *dst = (*dst & ~(mask & endmask)) |
-			   (xor &  (mask & endmask));
-		}
-		while (w--)
-		{
-		    nlw = nlwTmp;
-		    dst = dstTmp;
-		    dstTmp++;
-#if defined(__GNUC__) && defined(mc68020)
-		    mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    xor = xor & mask;
-		    mask = ~mask;
-		    while (nlw--)
-		    {
-			*dst = (*dst & mask) | xor;
-			dst += 8;
-		    }
-		    xor = devPriv->xor;
-#else
-#define SwitchBitsLoop(body) \
-	while (nlw--)	\
-	{		\
-	    body	\
-	    dst += 8;	\
-	}
-		    SwitchBitGroup(dst, xor, GetBitGroup(bits));
-#undef SwitchBitsLoop
-#endif
-		    NextBitGroup (bits);
-		}
-	    }
-	}
-	else
-#endif /* PPW == 4 */
-	{
-	    if (startmask)
-	    {
-		xor = GetBitGroup(bits);
-		*dst = MaskRRopPixels(*dst, xor, startmask);
-		dst++;
-		RotBitsLeft (bits, PGSZB);
-	    }
-	    while (nlw--)
-	    {
-		RRopBitGroup(dst, GetBitGroup(bits));
-		dst++;
-		RotBitsLeft (bits, PGSZB);
-	    }
-	    if (endmask)
-	    {
-		xor = GetBitGroup(bits);
-		*dst = MaskRRopPixels(*dst, xor, endmask);
-	    }
-	}
-    }
-    xfree(pptFree);
-    xfree(pwidthFree);
-}
-
-void
-cfb8OpaqueStipple32FS (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted)
-    DrawablePtr pDrawable;
-    GCPtr	pGC;
-    int		nInit;			/* number of spans to fill */
-    DDXPointPtr pptInit;		/* pointer to list of start points */
-    int		*pwidthInit;		/* pointer to list of n widths */
-    int 	fSorted;
-{
-				/* next three parameters are post-clip */
-    int		    n;			/* number of spans to fill */
-    DDXPointPtr	    ppt;		/* pointer to list of start points */
-    int		    *pwidth;		/* pointer to list of n widths */
-    CfbBits   *src;		/* pointer to bits in stipple, if needed */
-    int		    stippleHeight;	/* height of the stipple */
-    PixmapPtr	    stipple;
-
-    int		    nlwDst;		/* width in longwords of the dest pixmap */
-    int		    x,y,w;		/* current span */
-    CfbBits   startmask;
-    CfbBits   endmask;
-    register CfbBits *dst;	/* pointer to bits we're writing */
-    register int    nlw;
-    CfbBits   *dstTmp;
-    int		    nlwTmp;
-
-    CfbBits   *pbits;		/* pointer to start of pixmap */
-    register CfbBits  xor;
-    register CfbBits  bits;	/* bits from stipple */
-    int		    wEnd;
-
-    int		    *pwidthFree;	/* copies of the pointers to free */
-    DDXPointPtr	    pptFree;
-    cfbPrivGCPtr    devPriv;
-
-    devPriv = cfbGetGCPrivate(pGC);
-
-    cfb8CheckOpaqueStipple(pGC->alu, pGC->fgPixel, pGC->bgPixel, pGC->planemask);
-
-    n = nInit * miFindMaxBand(pGC->pCompositeClip);
-    if ( n == 0 )
-	return;
-    pwidthFree = (int *)xalloc(n * sizeof(int));
-    pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec));
-    if(!pptFree || !pwidthFree)
-    {
-	if (pptFree) xfree(pptFree);
-	if (pwidthFree) xfree(pwidthFree);
-	return;
-    }
-    pwidth = pwidthFree;
-    ppt = pptFree;
-    n = miClipSpans(pGC->pCompositeClip, pptInit, pwidthInit, nInit,
-		     ppt, pwidth, fSorted);
-
-    stipple = pGC->pRotatedPixmap;
-    src = (CfbBits *)stipple->devPrivate.ptr;
-    stippleHeight = stipple->drawable.height;
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pbits)
-
-    while (n--)
-    {
-    	w = *pwidth++;
-	x = ppt->x;
-    	y = ppt->y;
-	ppt++;
-    	dst = pbits + (y * nlwDst) + (x >> PWSH);
-	if (((x & PIM) + w) <= PPW)
-	{
-	    maskpartialbits(x, w, startmask);
-	    endmask = 0;
-	    nlw = 0;
-	}
-	else
-	{
-	    maskbits (x, w, startmask, endmask, nlw);
-	}
-	bits = src[y % stippleHeight];
-	RotBitsLeft (bits, (x & ((PGSZ-1) & ~PIM)));
-#if PPW == 4
-	if (cfb8StippleRRop == GXcopy)
-	{
-	    xor = devPriv->xor;
-	    if (w < PGSZ*2)
-	    {
-		if (startmask)
-		{
-		    *dst = (*dst & ~startmask) |
-			   (GetPixelGroup (bits) & startmask);
-		    dst++;
-		    RotBitsLeft (bits, PGSZB);
-		}
-		while (nlw--)
-		{
-		    *dst++ = GetPixelGroup(bits);
-		    RotBitsLeft (bits, PGSZB);
-		}
-		if (endmask)
-		{
-		    *dst = (*dst & ~endmask) |
-			   (GetPixelGroup (bits) & endmask);
-		}
-	    }
-	    else
-	    { /* XXX consts probably not OK here */
-		wEnd = 7 - (nlw & 7);
-		nlw = (nlw >> 3) + 1;
-		dstTmp = dst;
-		nlwTmp = nlw;
-		if (startmask)
-		{
-		    *dstTmp = (*dstTmp & ~startmask) |
-			      (GetPixelGroup (bits) & startmask);
-		    dstTmp++;
-		    RotBitsLeft (bits, PGSZB);
-		}
-		w = 7 - wEnd;
-		while (w--)
-		{
-		    nlw = nlwTmp;
-		    dst = dstTmp;
-		    dstTmp++;
-		    xor = GetPixelGroup (bits);
-		    while (nlw--)
-		    {
-			*dst = xor;
-			dst += 8;
-		    }
-		    NextBitGroup (bits);
-		}
-		nlwTmp--;
-		w = wEnd + 1;
-		if (endmask)
-		{
-		    dst = dstTmp + (nlwTmp << 3);
-		    *dst = (*dst & ~endmask) |
-			   (GetPixelGroup (bits) & endmask);
-		}
-		while (w--)
-		{
-		    nlw = nlwTmp;
-		    dst = dstTmp;
-		    dstTmp++;
-		    xor = GetPixelGroup (bits);
-		    while (nlw--)
-		    {
-			*dst = xor;
-			dst += 8;
-		    }
-		    NextBitGroup (bits);
-		}
-	    }
-	}
-	else
-#endif /* PPW == 4 */
-	{
-	    if (startmask)
-	    {
-		xor = GetBitGroup(bits);
-		*dst = MaskRRopPixels(*dst, xor, startmask);
-		dst++;
-		RotBitsLeft (bits, PGSZB);
-	    }
-	    while (nlw--)
-	    {
-		RRopBitGroup(dst, GetBitGroup(bits));
-		dst++;
-		RotBitsLeft (bits, PGSZB);
-	    }
-	    if (endmask)
-	    {
-		xor = GetBitGroup(bits);
-		*dst = MaskRRopPixels(*dst, xor, endmask);
-	    }
-	}
-    }
-    xfree(pptFree);
-    xfree(pwidthFree);
-}
-
-#endif /* PSZ == 8 */
diff --git a/cfb/cfbgc.c b/cfb/cfbgc.c
deleted file mode 100644
index a74c28c..0000000
--- a/cfb/cfbgc.c
+++ /dev/null
@@ -1,799 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include <X11/Xproto.h>
-#include "cfb.h"
-#include <X11/fonts/fontstruct.h>
-#include "dixfontstr.h"
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "region.h"
-
-#include "mistruct.h"
-#include "mibstore.h"
-#include "migc.h"
-
-#include "cfbmskbits.h"
-#include "cfb8bit.h"
-
-#if PSZ == 8
-# define useTEGlyphBlt  cfbTEGlyphBlt8
-#else
-# ifdef WriteBitGroup
-#  define useTEGlyphBlt	cfbImageGlyphBlt8
-# else
-#  define useTEGlyphBlt	cfbTEGlyphBlt
-# endif
-#endif
-
-#ifdef WriteBitGroup
-# define useImageGlyphBlt	cfbImageGlyphBlt8
-# define usePolyGlyphBlt	cfbPolyGlyphBlt8
-#else
-# define useImageGlyphBlt	miImageGlyphBlt
-# define usePolyGlyphBlt	miPolyGlyphBlt
-#endif
-
-static void cfbUnPushPixels (GCPtr, PixmapPtr, DrawablePtr, int, int, int, int);
-
-#ifdef FOUR_BIT_CODE
-# define usePushPixels	cfbPushPixels8
-#else
-# define usePushPixels	cfbUnPushPixels
-#endif
-
-#ifdef PIXEL_ADDR
-# define ZeroPolyArc	cfbZeroPolyArcSS8Copy
-#else
-# define ZeroPolyArc	miZeroPolyArc
-#endif
-
-GCFuncs cfbGCFuncs = {
-    cfbValidateGC,
-    miChangeGC,
-    miCopyGC,
-    miDestroyGC,
-    miChangeClip,
-    miDestroyClip,
-    miCopyClip,
-};
-
-GCOps	cfbTEOps1Rect = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-#ifdef PIXEL_ADDR
-    cfb8LineSS1Rect,
-    cfb8SegmentSS1Rect,
-#else
-    cfbLineSS,
-    cfbSegmentSS,
-#endif
-    miPolyRectangle,
-    ZeroPolyArc,
-    cfbFillPoly1RectCopy,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useTEGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-GCOps	cfbNonTEOps1Rect = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-#ifdef PIXEL_ADDR
-    cfb8LineSS1Rect,
-    cfb8SegmentSS1Rect,
-#else
-    cfbLineSS,
-    cfbSegmentSS,
-#endif
-    miPolyRectangle,
-    ZeroPolyArc,
-    cfbFillPoly1RectCopy,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useImageGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-GCOps	cfbTEOps = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-    cfbLineSS,
-    cfbSegmentSS,
-    miPolyRectangle,
-    ZeroPolyArc,
-    miFillPolygon,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useTEGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-GCOps	cfbNonTEOps = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-    cfbLineSS,
-    cfbSegmentSS,
-    miPolyRectangle,
-#ifdef PIXEL_ADDR
-    cfbZeroPolyArcSS8Copy,
-#else
-    miZeroPolyArc,
-#endif
-    miFillPolygon,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useImageGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-GCOps *
-cfbMatchCommon (pGC, devPriv)
-    GCPtr	    pGC;
-    cfbPrivGCPtr    devPriv;
-{
-    if (pGC->lineWidth != 0)
-	return 0;
-    if (pGC->lineStyle != LineSolid)
-	return 0;
-    if (pGC->fillStyle != FillSolid)
-	return 0;
-    if (devPriv->rop != GXcopy)
-	return 0;
-    if (pGC->font &&
-	FONTMAXBOUNDS(pGC->font,rightSideBearing) -
-        FONTMINBOUNDS(pGC->font,leftSideBearing) <= 32 &&
-	FONTMINBOUNDS(pGC->font,characterWidth) >= 0)
-    {
-	if (TERMINALFONT(pGC->font)
-#ifdef FOUR_BIT_CODE
-	    && FONTMAXBOUNDS(pGC->font,characterWidth) >= PGSZB
-#endif
-	)
-#ifdef NO_ONE_RECT
-            return &cfbTEOps1Rect;
-#else
-	    if (devPriv->oneRect)
-		return &cfbTEOps1Rect;
-	    else
-		return &cfbTEOps;
-#endif
-	else
-#ifdef NO_ONE_RECT
-	    return &cfbNonTEOps1Rect;
-#else
-	    if (devPriv->oneRect)
-		return &cfbNonTEOps1Rect;
-	    else
-		return &cfbNonTEOps;
-#endif
-    }
-    return 0;
-}
-
-Bool
-cfbCreateGC(pGC)
-    register GCPtr pGC;
-{
-    cfbPrivGC  *pPriv;
-
-    if (PixmapWidthPaddingInfo[pGC->depth].padPixelsLog2 == LOG2_BITMAP_PAD)
-	return (mfbCreateGC(pGC));
-    pGC->clientClip = NULL;
-    pGC->clientClipType = CT_NONE;
-
-    if (cfbNonTEOps.PushPixels == cfbUnPushPixels)
-    {
-        cfbTEOps1Rect.PushPixels    = mfbPushPixelsWeak();
-        cfbNonTEOps1Rect.PushPixels = mfbPushPixelsWeak();
-        cfbTEOps.PushPixels         = mfbPushPixelsWeak();
-        cfbNonTEOps.PushPixels      = mfbPushPixelsWeak();		    
-    }
-
-    /*
-     * some of the output primitives aren't really necessary, since they
-     * will be filled in ValidateGC because of dix/CreateGC() setting all
-     * the change bits.  Others are necessary because although they depend
-     * on being a color frame buffer, they don't change 
-     */
-
-    pGC->ops = &cfbNonTEOps;
-    pGC->funcs = &cfbGCFuncs;
-
-    /* cfb wants to translate before scan conversion */
-    pGC->miTranslate = 1;
-
-    pPriv = cfbGetGCPrivate(pGC);
-    pPriv->rop = pGC->alu;
-    pPriv->oneRect = FALSE;
-    pGC->fExpose = TRUE;
-    pGC->freeCompClip = FALSE;
-    pGC->pRotatedPixmap = (PixmapPtr) NULL;
-    return TRUE;
-}
-
-/* Clipping conventions
-	if the drawable is a window
-	    CT_REGION ==> pCompositeClip really is the composite
-	    CT_other ==> pCompositeClip is the window clip region
-	if the drawable is a pixmap
-	    CT_REGION ==> pCompositeClip is the translated client region
-		clipped to the pixmap boundary
-	    CT_other ==> pCompositeClip is the pixmap bounding box
-*/
-
-void
-cfbValidateGC(pGC, changes, pDrawable)
-    register GCPtr  pGC;
-    unsigned long   changes;
-    DrawablePtr	    pDrawable;
-{
-    int         mask;		/* stateChanges */
-    int         index;		/* used for stepping through bitfields */
-    int		new_rrop;
-    int         new_line, new_text, new_fillspans, new_fillarea;
-    int		new_rotate;
-    int		xrot, yrot;
-    /* flags for changing the proc vector */
-    cfbPrivGCPtr devPriv;
-    int		oneRect;
-
-    new_rotate = pGC->lastWinOrg.x != pDrawable->x ||
-		 pGC->lastWinOrg.y != pDrawable->y;
-
-    pGC->lastWinOrg.x = pDrawable->x;
-    pGC->lastWinOrg.y = pDrawable->y;
-    devPriv = cfbGetGCPrivate(pGC);
-
-    new_rrop = FALSE;
-    new_line = FALSE;
-    new_text = FALSE;
-    new_fillspans = FALSE;
-    new_fillarea = FALSE;
-
-    /*
-     * if the client clip is different or moved OR the subwindowMode has
-     * changed OR the window's clip has changed since the last validation
-     * we need to recompute the composite clip 
-     */
-
-    if ((changes & (GCClipXOrigin|GCClipYOrigin|GCClipMask|GCSubwindowMode)) ||
-	(pDrawable->serialNumber != (pGC->serialNumber & DRAWABLE_SERIAL_BITS))
-	)
-    {
-	miComputeCompositeClip (pGC, pDrawable);
-#ifdef NO_ONE_RECT
-	devPriv->oneRect = FALSE;
-#else
-	oneRect = REGION_NUM_RECTS(pGC->pCompositeClip) == 1;
-	if (oneRect != devPriv->oneRect)
-	    new_line = TRUE;
-	devPriv->oneRect = oneRect;
-#endif
-    }
-
-    mask = changes;
-    while (mask) {
-	index = lowbit (mask);
-	mask &= ~index;
-
-	/*
-	 * this switch acculmulates a list of which procedures might have
-	 * to change due to changes in the GC.  in some cases (e.g.
-	 * changing one 16 bit tile for another) we might not really need
-	 * a change, but the code is being paranoid. this sort of batching
-	 * wins if, for example, the alu and the font have been changed,
-	 * or any other pair of items that both change the same thing. 
-	 */
-	switch (index) {
-	case GCFunction:
-	case GCForeground:
-	    new_rrop = TRUE;
-	    break;
-	case GCPlaneMask:
-	    new_rrop = TRUE;
-	    new_text = TRUE;
-	    break;
-	case GCBackground:
-	    break;
-	case GCLineStyle:
-	case GCLineWidth:
-	    new_line = TRUE;
-	    break;
-	case GCJoinStyle:
-	case GCCapStyle:
-	    break;
-	case GCFillStyle:
-	    new_text = TRUE;
-	    new_fillspans = TRUE;
-	    new_line = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-	case GCFillRule:
-	    break;
-	case GCTile:
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-
-	case GCStipple:
-	    if (pGC->stipple)
-	    {
-		int width = pGC->stipple->drawable.width;
-		PixmapPtr nstipple;
-
-		if ((width <= PGSZ) && !(width & (width - 1)) &&
-		    (nstipple = cfbCopyPixmap(pGC->stipple)))
-		{
-		    cfbPadPixmap(nstipple);
-		    (*pGC->pScreen->DestroyPixmap)(pGC->stipple);
-		    pGC->stipple = nstipple;
-		}
-	    }
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-
-	case GCTileStipXOrigin:
-	    new_rotate = TRUE;
-	    break;
-
-	case GCTileStipYOrigin:
-	    new_rotate = TRUE;
-	    break;
-
-	case GCFont:
-	    new_text = TRUE;
-	    break;
-	case GCSubwindowMode:
-	    break;
-	case GCGraphicsExposures:
-	    break;
-	case GCClipXOrigin:
-	    break;
-	case GCClipYOrigin:
-	    break;
-	case GCClipMask:
-	    break;
-	case GCDashOffset:
-	    break;
-	case GCDashList:
-	    break;
-	case GCArcMode:
-	    break;
-	default:
-	    break;
-	}
-    }
-
-    /*
-     * If the drawable has changed,  ensure suitable
-     * entries are in the proc vector. 
-     */
-    if (pDrawable->serialNumber != (pGC->serialNumber & (DRAWABLE_SERIAL_BITS))) {
-	new_fillspans = TRUE;	/* deal with FillSpans later */
-    }
-
-    if (new_rotate || new_fillspans)
-    {
-	Bool new_pix = FALSE;
-
-	xrot = pGC->patOrg.x + pDrawable->x;
-	yrot = pGC->patOrg.y + pDrawable->y;
-
-	switch (pGC->fillStyle)
-	{
-	case FillTiled:
-	    if (!pGC->tileIsPixel)
-	    {
-		int width = pGC->tile.pixmap->drawable.width * PSZ;
-
-		if ((width <= PGSZ) && !(width & (width - 1)))
-		{
-		    cfbCopyRotatePixmap(pGC->tile.pixmap, &pGC->pRotatedPixmap,
-					xrot, yrot);
-		    new_pix = TRUE;
-		}
-	    }
-	    break;
-#ifdef FOUR_BIT_CODE
-	case FillStippled:
-	case FillOpaqueStippled:
-	    {
-		int width = pGC->stipple->drawable.width;
-
-		if ((width <= PGSZ) && !(width & (width - 1)))
-		{
-		    mfbCopyRotatePixmap(pGC->stipple, &pGC->pRotatedPixmap,
-					xrot, yrot);
-		    new_pix = TRUE;
-		}
-	    }
-	    break;
-#endif
-	}
-	if (!new_pix && pGC->pRotatedPixmap)
-	{
-	    (*pGC->pScreen->DestroyPixmap)(pGC->pRotatedPixmap);
-	    pGC->pRotatedPixmap = (PixmapPtr) NULL;
-	}
-    }
-
-    if (new_rrop)
-    {
-	int old_rrop;
-
-	old_rrop = devPriv->rop;
-	devPriv->rop = cfbReduceRasterOp (pGC->alu, pGC->fgPixel,
-					   pGC->planemask,
-					   &devPriv->and, &devPriv->xor);
-	if (old_rrop == devPriv->rop)
-	    new_rrop = FALSE;
-	else
-	{
-#ifdef PIXEL_ADDR
-	    new_line = TRUE;
-#endif
-#ifdef WriteBitGroup
-	    new_text = TRUE;
-#endif
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	}
-    }
-
-    if (new_rrop || new_fillspans || new_text || new_fillarea || new_line)
-    {
-	GCOps	*newops;
-
-	if ((newops = cfbMatchCommon (pGC, devPriv)))
- 	{
-	    if (pGC->ops->devPrivate.val)
-		miDestroyGCOps (pGC->ops);
-	    pGC->ops = newops;
-	    new_rrop = new_line = new_fillspans = new_text = new_fillarea = 0;
-	}
- 	else
- 	{
-	    if (!pGC->ops->devPrivate.val)
-	    {
-		pGC->ops = miCreateGCOps (pGC->ops);
-		pGC->ops->devPrivate.val = 1;
-	    }
-	}
-    }
-
-    /* deal with the changes we've collected */
-    if (new_line)
-    {
-	pGC->ops->FillPolygon = miFillPolygon;
-#ifdef NO_ONE_RECT
-	if (pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillPolygon = cfbFillPoly1RectCopy;
-		break;
-	    default:
-		pGC->ops->FillPolygon = cfbFillPoly1RectGeneral;
-		break;
-	    }
-	}
-#else
-	if (devPriv->oneRect && pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillPolygon = cfbFillPoly1RectCopy;
-		break;
-	    default:
-		pGC->ops->FillPolygon = cfbFillPoly1RectGeneral;
-		break;
-	    }
-	}
-#endif
-	if (pGC->lineWidth == 0)
-	{
-#ifdef PIXEL_ADDR
-	    if ((pGC->lineStyle == LineSolid) && (pGC->fillStyle == FillSolid))
-	    {
-		switch (devPriv->rop)
-		{
-		case GXxor:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8Xor;
-		    break;
-		case GXcopy:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8Copy;
-		    break;
-		default:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8General;
-		    break;
-		}
-	    }
-	    else
-#endif
-		pGC->ops->PolyArc = miZeroPolyArc;
-	}
-	else
-	    pGC->ops->PolyArc = miPolyArc;
-	pGC->ops->PolySegment = miPolySegment;
-	switch (pGC->lineStyle)
-	{
-	case LineSolid:
-	    if(pGC->lineWidth == 0)
-	    {
-		if (pGC->fillStyle == FillSolid)
-		{
-#if defined(PIXEL_ADDR) && !defined(NO_ONE_RECT)
-		    if (devPriv->oneRect &&
-			((pDrawable->x >= pGC->pScreen->width - 32768) &&
-			 (pDrawable->y >= pGC->pScreen->height - 32768)))
-		    {
-			pGC->ops->Polylines = cfb8LineSS1Rect;
-			pGC->ops->PolySegment = cfb8SegmentSS1Rect;
-		    } else
-#endif
-#ifdef NO_ONE_RECT
-		    {
-			pGC->ops->Polylines = cfb8LineSS1Rect;
-			pGC->ops->PolySegment = cfb8SegmentSS1Rect;
-		    }
-#else
-		    {
-		    	pGC->ops->Polylines = cfbLineSS;
-		    	pGC->ops->PolySegment = cfbSegmentSS;
-		    }
-#endif
-		}
- 		else
-		    pGC->ops->Polylines = miZeroLine;
-	    }
-	    else
-		pGC->ops->Polylines = miWideLine;
-	    break;
-	case LineOnOffDash:
-	case LineDoubleDash:
-	    if (pGC->lineWidth == 0 && pGC->fillStyle == FillSolid)
-	    {
-		pGC->ops->Polylines = cfbLineSD;
-		pGC->ops->PolySegment = cfbSegmentSD;
-	    } else
-		pGC->ops->Polylines = miWideDash;
-	    break;
-	}
-    }
-
-    if (new_text && (pGC->font))
-    {
-        if (FONTMAXBOUNDS(pGC->font,rightSideBearing) -
-            FONTMINBOUNDS(pGC->font,leftSideBearing) > 32 ||
-	    FONTMINBOUNDS(pGC->font,characterWidth) < 0)
-        {
-            pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-            pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
-        }
-        else
-        {
-#ifdef WriteBitGroup
-	    if (pGC->fillStyle == FillSolid)
-	    {
-		if (devPriv->rop == GXcopy)
-		    pGC->ops->PolyGlyphBlt = cfbPolyGlyphBlt8;
-		else
-#ifdef FOUR_BIT_CODE
-		    pGC->ops->PolyGlyphBlt = cfbPolyGlyphRop8;
-#else
-		    pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-#endif
-	    }
-	    else
-#endif
-		pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-            /* special case ImageGlyphBlt for terminal emulator fonts */
-#if !defined(WriteBitGroup) || PSZ == 8
-	    if (TERMINALFONT(pGC->font) &&
-		(pGC->planemask & PMSK) == PMSK
-#ifdef FOUR_BIT_CODE
-		&& FONTMAXBOUNDS(pGC->font,characterWidth) >= PGSZB
-#endif
-		)
-	    {
-		pGC->ops->ImageGlyphBlt = useTEGlyphBlt;
-	    }
-            else
-#endif
-	    {
-#ifdef WriteBitGroup
-		if (devPriv->rop == GXcopy &&
-		    pGC->fillStyle == FillSolid &&
-		    (pGC->planemask & PMSK) == PMSK)
-		    pGC->ops->ImageGlyphBlt = cfbImageGlyphBlt8;
-		else
-#endif
-		    pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
-	    }
-        }
-    }    
-
-
-    if (new_fillspans) {
-	switch (pGC->fillStyle) {
-	case FillSolid:
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillSpans = cfbSolidSpansCopy;
-		break;
-	    case GXxor:
-		pGC->ops->FillSpans = cfbSolidSpansXor;
-		break;
-	    default:
-		pGC->ops->FillSpans = cfbSolidSpansGeneral;
-		break;
-	    }
-	    break;
-	case FillTiled:
-	    if (pGC->pRotatedPixmap)
-	    {
-		if (pGC->alu == GXcopy && (pGC->planemask & PMSK) == PMSK)
-		    pGC->ops->FillSpans = cfbTile32FSCopy;
-		else
-		    pGC->ops->FillSpans = cfbTile32FSGeneral;
-	    }
-	    else
-		pGC->ops->FillSpans = cfbUnnaturalTileFS;
-	    break;
-	case FillStippled:
-#ifdef FOUR_BIT_CODE
-	    if (pGC->pRotatedPixmap)
-		pGC->ops->FillSpans = cfb8Stipple32FS;
-	    else
-#endif
-		pGC->ops->FillSpans = cfbUnnaturalStippleFS;
-	    break;
-	case FillOpaqueStippled:
-#ifdef FOUR_BIT_CODE
-	    if (pGC->pRotatedPixmap)
-		pGC->ops->FillSpans = cfb8OpaqueStipple32FS;
-	    else
-#endif
-		pGC->ops->FillSpans = cfbUnnaturalStippleFS;
-	    break;
-	default:
-	    FatalError("cfbValidateGC: illegal fillStyle\n");
-	}
-    } /* end of new_fillspans */
-
-    if (new_fillarea) {
-#ifndef FOUR_BIT_CODE
-	pGC->ops->PolyFillRect = miPolyFillRect;
-	if (pGC->fillStyle == FillSolid || pGC->fillStyle == FillTiled)
-	{
-	    pGC->ops->PolyFillRect = cfbPolyFillRect;
-	}
-#endif
-#ifdef FOUR_BIT_CODE
-	pGC->ops->PushPixels = mfbPushPixelsWeak();
-	if (pGC->fillStyle == FillSolid && devPriv->rop == GXcopy)
-	    pGC->ops->PushPixels = cfbPushPixels8;
-#endif
-	pGC->ops->PolyFillArc = miPolyFillArc;
-	if (pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop)
-	    {
-	    case GXcopy:
-		pGC->ops->PolyFillArc = cfbPolyFillArcSolidCopy;
-		break;
-	    default:
-		pGC->ops->PolyFillArc = cfbPolyFillArcSolidGeneral;
-		break;
-	    }
-	}
-    }
-}
-
-/*
- * this is never called, it just exists to have its address
- * taken in mfbCreateGC.
- */
-static void
-cfbUnPushPixels (pGC, pBitmap, pDrawable, dx, dy, xOrg, yOrg)
-    GCPtr       pGC;
-    PixmapPtr   pBitmap;
-    DrawablePtr pDrawable;
-    int         dx, dy, xOrg, yOrg;
-{
-    return;
-}
diff --git a/cfb/cfbgetsp.c b/cfb/cfbgetsp.c
deleted file mode 100644
index 672196a..0000000
--- a/cfb/cfbgetsp.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-
-#include "misc.h"
-#include "region.h"
-#include "gc.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-
-/* GetSpans -- for each span, gets bits from drawable starting at ppt[i]
- * and continuing for pwidth[i] bits
- * Each scanline returned will be server scanline padded, i.e., it will come
- * out to an integral number of words.
- */
-void
-cfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pchardstStart)
-    DrawablePtr		pDrawable;	/* drawable from which to get bits */
-    int			wMax;		/* largest value of all *pwidths */
-    register DDXPointPtr ppt;		/* points to start copying from */
-    int			*pwidth;	/* list of number of bits to copy */
-    int			nspans;		/* number of scanlines to copy */
-    char		*pchardstStart; /* where to put the bits */
-{
-    PixelGroup	*pdstStart = (PixelGroup *)pchardstStart;
-    register PixelGroup	*pdst;		/* where to put the bits */
-    register PixelGroup	*psrc;		/* where to get the bits */
-    register PixelGroup	tmpSrc;		/* scratch buffer for bits */
-    PixelGroup		*psrcBase;	/* start of src bitmap */
-    int			widthSrc;	/* width of pixmap in bytes */
-    register DDXPointPtr pptLast;	/* one past last point to get */
-    int         	xEnd;		/* last pixel to copy from */
-    int			nl, srcBit;
-    int			w;
-    PixelGroup		*pdstNext;
-#if PSZ == 24
-    register char *psrcb, *pdstb;
-    register int xIndex = 0;
-#else
-    register int	nstart; 
-#if PSZ != 32 || PPW != 1
-    int	 		nend; 
-#endif
-    PixelGroup		startmask, endmask;
-    int			nlMiddle;
-#endif
-
-    switch (pDrawable->bitsPerPixel) {
-	case 1:
-	    mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pchardstStart);
-	    return;
-	case PSZ:
-	    break;
-	default:
-	    FatalError("cfbGetSpans: invalid depth\n");
-    }
-
-    /*
-     * XFree86 DDX empties the root borderClip when the VT is
-     * switched away; this checks for that case
-     */
-    if (!cfbDrawableEnabled(pDrawable))
-	return;
-    
-    cfbGetLongWidthAndPointer (pDrawable, widthSrc, psrcBase)
-
-#ifdef PIXEL_ADDR
-# if PSZ != 24
-    if ((nspans == 1) && (*pwidth == 1))
-    {
-	tmpSrc = *((PixelType *)(psrcBase + (ppt->y * widthSrc))
-		   + ppt->x);
-#if BITMAP_BIT_ORDER == MSBFirst
-	tmpSrc <<= (sizeof (CfbBits) - sizeof (PixelType)) * 8;
-#endif
-	*pdstStart = tmpSrc;
-	return;
-    }
-# endif /* PSZ != 24 */
-#endif
-    pdst = pdstStart;
-    pptLast = ppt + nspans;
-    while(ppt < pptLast)
-    {
-#if PSZ == 24
-	xEnd = min(ppt->x + *pwidth, widthSrc * sizeof(CfbBits) / 3);
-	w = xEnd - ppt->x;
-	psrc = psrcBase + ppt->y * widthSrc;
-	srcBit = ppt->x;
-	psrcb = (char *)psrc + (ppt->x * 3);
-	xIndex = 0;
-	pdstb = (char *)pdst;
-    	pdstNext = pdst + ((w * 3 + 3) >> 2);
-#else
-	xEnd = min(ppt->x + *pwidth, widthSrc << PWSH);
-	w = xEnd - ppt->x;
-	psrc = psrcBase + ppt->y * widthSrc + (ppt->x >> PWSH); 
-	srcBit = ppt->x & PIM;
-    	pdstNext = pdst + ((w + PPW - 1) >> PWSH);
-#endif
-
-#if PSZ == 24
-	if (w < 0)
-	  FatalError("cfb24GetSpans: Internal error (w < 0)\n");
-	nl = w;
-	while (nl--){ 
-	  psrc = (PixelGroup *)((unsigned long)psrcb & ~0x03);
-	  getbits24(psrc, tmpSrc, srcBit);
-	  pdst = (PixelGroup *)((unsigned long)pdstb & ~0x03);
-	  putbits24(tmpSrc, PPW, pdst, ~((CfbBits)0), xIndex);
-	  srcBit++;
-	  psrcb += 3;
-	  xIndex++;
-	  pdstb += 3;
-	} 
-	pdst = pdstNext;
-#else /* PSZ == 24 */
-	if (srcBit + w <= PPW) 
-	{ 
-	    getbits(psrc, srcBit, w, tmpSrc);
-	    putbits(tmpSrc, 0, w, pdst, ~((CfbBits)0)); 
-	    pdst++;
-	} 
-	else 
-	{ 
-	    maskbits(ppt->x, w, startmask, endmask, nlMiddle);
-	    nstart = 0; 
-	    if (startmask) 
-	    { 
-		nstart = PPW - srcBit; 
-		getbits(psrc, srcBit, nstart, tmpSrc);
-		putbits(tmpSrc, 0, nstart, pdst, ~((CfbBits)0));
-		if(srcBit + nstart >= PPW)
-		    psrc++;
-	    } 
-	    nl = nlMiddle; 
-	    while (nl--) 
-	    { 
-		tmpSrc = *psrc;
-		putbits(tmpSrc, nstart, PPW, pdst, ~((CfbBits)0));
-		psrc++;
-		pdst++;
-	    } 
-	    if (endmask) 
-	    { 
-#if PSZ != 32 || PPW != 1
-		nend = xEnd & PIM; 
-#endif
-		getbits(psrc, 0, nend, tmpSrc);
-		putbits(tmpSrc, nstart, nend, pdst, ~((CfbBits)0));
-	    } 
-	    pdst = pdstNext;
-	} 
-#endif /* PSZ == 24 */
-        ppt++;
-	pwidth++;
-    }
-}
diff --git a/cfb/cfbglblt8.c b/cfb/cfbglblt8.c
deleted file mode 100644
index 4d964b3..0000000
--- a/cfb/cfbglblt8.c
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-*/
-
-/*
- * Poly glyph blt.  Accepts an arbitrary font <= 32 bits wide, in Copy mode
- * only.
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"cfb.h"
-#include	<X11/fonts/fontstruct.h>
-#include	"dixfontstr.h"
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"cfbmskbits.h"
-#include	"cfb8bit.h"
-
-#define BOX_OVERLAP(box1, box2, xoffset, yoffset) \
- 	((box1)->x1 <= ((int) (box2)->x2 + (xoffset)) && \
- 	 ((int) (box2)->x1 + (xoffset)) <= (box1)->x2 && \
-	 (box1)->y1 <= ((int) (box2)->y2 + (yoffset)) && \
- 	 ((int) (box2)->y1 + (yoffset)) <= (box1)->y2)
-
-#define BOX_CONTAINS(box1, box2, xoffset, yoffset) \
- 	((box1)->x1 <= ((int) (box2)->x1 + (xoffset)) && \
- 	 ((int) (box2)->x2 + (xoffset)) <= (box1)->x2 && \
-	 (box1)->y1 <= ((int) (box2)->y1 + (yoffset)) && \
- 	 ((int) (box2)->y2 + (yoffset)) <= (box1)->y2)
-
-#if defined(FOUR_BIT_CODE) || defined(WriteBitGroup) && !defined(GLYPHROP)
-
-#if GLYPHPADBYTES != 4
-#define USE_LEFTBITS
-#endif
-
-#ifdef USE_LEFTBITS
-typedef	unsigned char	*glyphPointer;
-
-#define GlyphBits(bits,width,dst)	getleftbits(bits,width,dst); \
-					(dst) &= widthMask; \
-					(bits) += widthGlyph;
-#define GlyphBitsS(bits,width,dst,off)	GlyphBits(bits,width,dst); \
-					dst = BitRight (dst, off);
-#else
-typedef CARD32	*glyphPointer;
-
-#define GlyphBits(bits,width,dst)	dst = *bits++;
-#define GlyphBitsS(bits,width,dst,off)	dst = BitRight(*bits++, off);
-#endif
-
-#ifdef GLYPHROP
-#define cfbPolyGlyphBlt8	cfbPolyGlyphRop8
-#define cfbPolyGlyphBlt8Clipped	cfbPolyGlyphRop8Clipped
-
-#undef WriteBitGroup
-#define WriteBitGroup(dst,pixel,bits)	RRopBitGroup(dst,bits)
-
-#endif
-
-static void cfbPolyGlyphBlt8Clipped(
-    DrawablePtr pDrawable,
-    GCPtr	pGC,
-    int 	x,
-    int         y,
-    unsigned int nglyph,
-    CharInfoPtr *ppci,		/* array of character info */
-    unsigned char *pglyphBase); /* start of array of glyphs */
-
-#if defined(HAS_STIPPLE_CODE) && !defined(GLYPHROP) && !defined(USE_LEFTBITS)
-#define USE_STIPPLE_CODE
-#endif
-
-#if defined(__GNUC__) && !defined(GLYPHROP) && (defined(mc68020) || defined(mc68000) || defined(__mc68000__)) && PSZ == 8 && !defined(USE_LEFTBITS)
-#ifdef USE_STIPPLE_CODE
-#undef USE_STIPPLE_CODE
-#endif
-#include "stip68kgnu.h"
-#endif
-
-#if PSZ == 24
-#define DST_INC	    3
-#else
-#define DST_INC	    (PGSZB >> PWSH)
-#endif
-
-/*  cfbStippleStack/cfbStippleStackTE are coded in assembly language.
- *  They are only provided on some architecures.
- */
-#ifdef USE_STIPPLE_CODE
-extern void		cfbStippleStack (), cfbStippleStackTE ();
-#endif
-
-void
-cfbPolyGlyphBlt8 (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase)
-    DrawablePtr pDrawable;
-    GCPtr	pGC;
-    int 	x, y;
-    unsigned int nglyph;
-    CharInfoPtr *ppci;		/* array of character info */
-    pointer	pglyphBase;	/* start of array of glyphs */
-{
-#ifndef GLYPHROP
-    register CfbBits  pixel;
-#endif
-#if !defined(STIPPLE) && !defined(USE_STIPPLE_CODE)
-    register CfbBits  c;
-    register CfbBits  *dst;
-#endif
-    register glyphPointer   glyphBits;
-    register int	    xoff;
-
-    FontPtr		pfont = pGC->font;
-    CharInfoPtr		pci;
-    CfbBits	*dstLine;
-    CfbBits	*pdstBase;
-    int			hTmp;
-    int			bwidthDst;
-    int			widthDst;
-    int			h;
-    BoxRec		bbox;		/* for clipping */
-    int			w;
-    RegionPtr		clip;
-    BoxPtr		extents;
-#ifdef USE_LEFTBITS
-    int			widthGlyph;
-    CfbBits	widthMask;
-#endif
-#ifndef STIPPLE
-#ifdef USE_STIPPLE_CODE
-    void		(*stipple)();
-
-    stipple = cfbStippleStack;
-    if (FONTCONSTMETRICS(pfont))
-	stipple = cfbStippleStackTE;
-#endif
-#endif
-    
-    x += pDrawable->x;
-    y += pDrawable->y;
-
-    /* compute an approximate (but covering) bounding box */
-    bbox.x1 = 0;
-    if ((ppci[0]->metrics.leftSideBearing < 0))
-	bbox.x1 = ppci[0]->metrics.leftSideBearing;
-    h = nglyph - 1;
-    w = ppci[h]->metrics.rightSideBearing;
-    while (--h >= 0)
-	w += ppci[h]->metrics.characterWidth;
-    bbox.x2 = w;
-    bbox.y1 = -FONTMAXBOUNDS(pfont,ascent);
-    bbox.y2 = FONTMAXBOUNDS(pfont,descent);
-
-    clip = cfbGetCompositeClip(pGC);
-    extents = &clip->extents;
-
-    if (!clip->data) 
-    {
-	if (!BOX_CONTAINS(extents, &bbox, x, y))
-	{
-	    if (BOX_OVERLAP (extents, &bbox, x, y))
-		cfbPolyGlyphBlt8Clipped(pDrawable, pGC, x, y,
-					nglyph, ppci, pglyphBase);
-	    return;
-	}
-    }
-    else
-    {
-    	/* check to make sure some of the text appears on the screen */
-    	if (!BOX_OVERLAP (extents, &bbox, x, y))
-	    return;
-    
-    	bbox.x1 += x;
-    	bbox.x2 += x;
-    	bbox.y1 += y;
-    	bbox.y2 += y;
-    
-    	switch (RECT_IN_REGION(pGC->pScreen, clip, &bbox))
-    	{
-      	  case rgnPART:
-	    cfbPolyGlyphBlt8Clipped(pDrawable, pGC, x, y,
-				    nglyph, ppci, pglyphBase);
-      	  case rgnOUT:
-	    return;
-    	}
-    }
-
-#ifdef GLYPHROP
-    cfb8CheckStipple (pGC->alu, pGC->fgPixel, pGC->planemask);
-#else
-    pixel = cfbGetGCPrivate(pGC)->xor;
-#endif
-
-    cfbGetTypedWidthAndPointer (pDrawable, bwidthDst, pdstBase, char, CfbBits)
-
-    widthDst = bwidthDst / PGSZB;
-    while (nglyph--)
-    {
-	pci = *ppci++;
-	glyphBits = (glyphPointer) FONTGLYPHBITS(pglyphBase,pci);
-	xoff = x + pci->metrics.leftSideBearing;
-#if PSZ == 24
-	dstLine = pdstBase + (y - pci->metrics.ascent) * widthDst +((xoff>> 2)*3);
-#else
-	dstLine = pdstBase +
-	          (y - pci->metrics.ascent) * widthDst + (xoff >> PWSH);
-#endif
-	x += pci->metrics.characterWidth;
-	if ((hTmp = pci->metrics.descent + pci->metrics.ascent))
-	{
-#if PSZ == 24
-	    xoff &= 0x03;
-#else
-	    xoff &= PIM;
-#endif /* PSZ == 24 */
-#ifdef STIPPLE
-	    STIPPLE(dstLine,glyphBits,pixel,bwidthDst,hTmp,xoff);
-#else
-#ifdef USE_STIPPLE_CODE
-	    (*stipple)(dstLine,glyphBits,pixel,bwidthDst,hTmp,xoff);
-#else
-#ifdef USE_LEFTBITS
-	    w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
-	    widthGlyph = PADGLYPHWIDTHBYTES(w);
-	    widthMask = mfbGetendtab(w);
-#endif
-	    do {
-	    	dst = dstLine;
-	    	dstLine = (CfbBits *) (((char *) dstLine) + bwidthDst);
-	    	GlyphBits(glyphBits, w, c)
-	    	WriteBitGroup(dst, pixel, GetBitGroup(BitRight(c,xoff)));
-	    	dst += DST_INC;
-	    	c = BitLeft(c,PGSZB - xoff);
-	    	while (c)
-	    	{
-		    WriteBitGroup(dst, pixel, GetBitGroup(c));
-		    NextBitGroup(c);
-		    dst += DST_INC;
-	    	}
-	    } while (--hTmp);
-#endif /* USE_STIPPLE_CODE else */
-#endif /* STIPPLE else */
-	}
-    }
-}
-
-static void
-cfbPolyGlyphBlt8Clipped(
-    DrawablePtr pDrawable,
-    GCPtr	pGC,
-    int 	x,
-    int         y,
-    unsigned int nglyph,
-    CharInfoPtr *ppci,		/* array of character info */
-    unsigned char *pglyphBase)	/* start of array of glyphs */
-{
-#ifndef GLYPHROP
-    register CfbBits	pixel;
-#endif
-#if !defined(STIPPLE) && !defined(USE_STIPPLE_CODE)
-    register CfbBits	c;
-#endif
-    register glyphPointer   glyphBits;
-    register int	xoff;
-#if defined(USE_LEFTBITS) || (!defined(STIPPLE) && !defined(USE_STIPPLE_CODE))
-    register CfbBits	*dst;
-#endif
-
-    CharInfoPtr		pci;
-    FontPtr		pfont = pGC->font;
-    CfbBits		*dstLine;
-    CfbBits		*pdstBase;
-#ifdef USE_LEFTBITS
-    CARD32		*cTmp;
-#endif
-    CARD32		*clips;
-    int			maxAscent, maxDescent;
-    int			minLeftBearing;
-    int			hTmp;
-    int			widthDst;
-    int			bwidthDst;
-    int			xG, yG;
-    BoxPtr		pBox;
-    int			numRects;
-    int			w;
-    RegionPtr		pRegion;
-    int			yBand;
-#ifdef GLYPHROP
-    CfbBits		bits;
-#endif
-#ifdef USE_LEFTBITS
-    int			widthGlyph;
-    CfbBits		widthMask;
-#endif
-
-#ifdef GLYPHROP
-    cfb8CheckStipple (pGC->alu, pGC->fgPixel, pGC->planemask);
-#else
-    pixel = cfbGetGCPrivate(pGC)->xor;
-#endif
-    
-    cfbGetTypedWidthAndPointer (pDrawable, bwidthDst, pdstBase, char, CfbBits)
-
-    widthDst = bwidthDst / PGSZB;
-    maxAscent = FONTMAXBOUNDS(pfont,ascent);
-    maxDescent = FONTMAXBOUNDS(pfont,descent);
-    minLeftBearing = FONTMINBOUNDS(pfont,leftSideBearing);
-
-    pRegion = cfbGetCompositeClip(pGC);
-
-    pBox = REGION_RECTS(pRegion);
-    numRects = REGION_NUM_RECTS (pRegion);
-    while (numRects && pBox->y2 <= y - maxAscent)
-    {
-	++pBox;
-	--numRects;
-    }
-    if (!numRects || pBox->y1 >= y + maxDescent)
-	return;
-    yBand = pBox->y1;
-    while (numRects && pBox->y1 == yBand && pBox->x2 <= x + minLeftBearing)
-    {
-	++pBox;
-	--numRects;
-    }
-    if (!numRects)
-	return;
-    clips = (CARD32 *)xalloc ((maxAscent + maxDescent) *
-						sizeof (CARD32));
-    while (nglyph--)
-    {
-	pci = *ppci++;
-	glyphBits = (glyphPointer) FONTGLYPHBITS(pglyphBase,pci);
-	w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
-	xG = x + pci->metrics.leftSideBearing;
-	yG = y - pci->metrics.ascent;
-	x += pci->metrics.characterWidth;
-	if ((hTmp = pci->metrics.descent + pci->metrics.ascent))
-	{
-#if PSZ == 24
-	    dstLine = pdstBase + yG * widthDst + ((xG>> 2)*3);
-	    /* never use (xG*3)>>2 */
-#else
-	    dstLine = pdstBase + yG * widthDst + (xG >> PWSH);
-#endif
-#if PSZ == 24
-	    xoff = xG & 3;
-#else
-	    xoff = xG & PIM;
-#endif
-#ifdef USE_LEFTBITS
-	    w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing;
-	    widthGlyph = PADGLYPHWIDTHBYTES(w);
-	    widthMask = mfbGetendtab(w);
-#endif
-	    switch (cfb8ComputeClipMasks32 (pBox, numRects, xG, yG, w, hTmp, clips))
- 	    {
-	    case rgnPART:
-#ifdef USE_LEFTBITS
-	    	cTmp = clips;
-	    	do {
-	    	    dst = dstLine;
-	    	    dstLine = (CfbBits *) (((char *) dstLine) + bwidthDst);
-	    	    GlyphBits(glyphBits, w, c)
-		    c &= *cTmp++;
-		    if (c)
-		    {
-	    	    	WriteBitGroup(dst, pixel, GetBitGroup(BitRight(c,xoff)));
-	    	    	c = BitLeft(c,PGSZB - xoff); 
-	    	    	dst += DST_INC;
-	    	    	while (c)
-	    	    	{
-		    	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-		    	    NextBitGroup(c);
-		    	    dst += DST_INC;
-	    	    	}
-		    }
-	    	} while (--hTmp);
-	    	break;
-#else /* !USE_LEFTBITS */
-	    	{
-		    int h;
-    
-		    h = hTmp;
-		    do
-		    {
-			--h;
-		    	clips[h] = clips[h] & glyphBits[h];
-		    } while (h);
-	    	}
-	    	glyphBits = clips;
-	    	/* fall through */
-#endif /* USE_LEFTBITS */
-	    case rgnIN:
-#ifdef STIPPLE
-	    	STIPPLE(dstLine,glyphBits,pixel,bwidthDst,hTmp,xoff);
-#else
-#ifdef USE_STIPPLE_CODE
-	    	cfbStippleStackTE(dstLine,glyphBits,pixel,bwidthDst,hTmp,xoff);
-#else
-	    	do {
-	    	    dst = dstLine;
-	    	    dstLine = (CfbBits *) (((char *) dstLine) + bwidthDst);
-	    	    GlyphBits(glyphBits, w, c)
-		    if (c)
-		    {
-		        /* This code originally could read memory locations
-			 * that were not mapped. Hence we have to check the
-			 * trailing bits to see whether they are zero and if
-			 * then skip them correctly. This is no problem for
-			 * the GXcopy case, since there only the pixels that
-			 * are non-zero are written ...
-			 */
-#ifndef GLYPHROP
-	    	    	WriteBitGroup(dst, pixel, GetBitGroup(BitRight(c,xoff)));
-	    	    	c = BitLeft(c,PGSZB - xoff);
-	    	    	dst += DST_INC;
-#else /* GLYPHROP */
-                        if ((bits = GetBitGroup(BitRight(c,xoff))))
-	    	    	  WriteBitGroup(dst, pixel, bits);
-	    	    	c = BitLeft(c,PGSZB - xoff);
-	    	    	dst += DST_INC;
-
-			while (c && ((bits = GetBitGroup(c)) == 0))
-		        {
-		    	    NextBitGroup(c);
-		    	    dst += DST_INC;
-                        } 
-#endif /* GLYPHROP */
-	    	    	while (c)
-	    	    	{
-		    	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-		    	    NextBitGroup(c);
-		    	    dst += DST_INC;
-	    	    	}
-		    }
-	    	} while (--hTmp);
-#endif /* USE_STIPPLE_CODE else */
-#endif /* STIPPLE else */
-	    	break;
-	    }
-	}
-    }
-    xfree (clips);
-}
-
-#endif /* FOUR_BIT_CODE */
diff --git a/cfb/cfbhrzvert.c b/cfb/cfbhrzvert.c
deleted file mode 100644
index a6a7930..0000000
--- a/cfb/cfbhrzvert.c
+++ /dev/null
@@ -1,554 +0,0 @@
-/***********************************************************
-
-Copyright 1987,1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-
-#include "gc.h"
-#include "window.h"
-#include "pixmap.h"
-#include "region.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-
-/* horizontal solid line
-   abs(len) > 1
-*/
-void
-cfbHorzS(rop, and, xor, addrl, nlwidth, x1, y1, len)
-register int rop;
-register CfbBits and;
-register CfbBits xor;
-register CfbBits *addrl;	/* pointer to base of bitmap */
-int nlwidth;		/* width in longwords of bitmap */
-int x1;			/* initial point */ 
-int y1;
-int len;		/* length of line */
-{
-    register int nlmiddle;
-
-#if PSZ == 24
-
-    int leftIndex, rightIndex;
-    CfbBits piQxelAnd[3], piQxelXor[3];
-    piQxelAnd[0] = (and & 0xFFFFFF) | ((and<<24)  & 0xFF000000);
-    piQxelAnd[1] = ((and>>8)  & 0xFFFF)| ((and<<16) & 0xFFFF0000);
-    piQxelAnd[2] = ((and<<8) & 0xFFFFFF00) | ((and>>16) & 0xFF);
-
-    piQxelXor[0] = (xor & 0xFFFFFF) | ((xor<<24) & 0xFF000000);
-    piQxelXor[1] = ((xor>>8)  & 0xFFFF)| ((xor<<16) & 0xFFFF0000);
-    piQxelXor[2] = ((xor<<8) & 0xFFFFFF00) | ((xor>>16) & 0xFF);
-
-    leftIndex = x1 & 3;
-    rightIndex = ((x1 + len) < 5)?0:(x1 + len)&3;
-    nlmiddle = len;
-    if(leftIndex){
-      nlmiddle -= (4 - leftIndex);
-    }
-    if(rightIndex){
-      nlmiddle -= rightIndex;
-    }
-    if (nlmiddle < 0)
-      nlmiddle = 0;
-
-    nlmiddle >>= 2;
-
-    addrl += (y1 * nlwidth) + (x1 >> 2)*3 + (leftIndex?leftIndex-1:0);
-
-    switch(leftIndex+len){
-    case 4:
-      switch(leftIndex){
-      case 0:
-	*addrl = DoRRop (*addrl, piQxelAnd[0], piQxelXor[0]);
-	addrl++;
-	*addrl = DoRRop (*addrl, piQxelAnd[1], piQxelXor[1]);
-	addrl++;
-	*addrl = DoRRop (*addrl, piQxelAnd[2], piQxelXor[2]);
-	break;
-      case 1:
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[0], piQxelXor[0], 0xFF000000);
-	addrl++;
-	*addrl = DoRRop (*addrl, piQxelAnd[1], piQxelXor[1]);
-	addrl++;
-	*addrl = DoRRop (*addrl, piQxelAnd[2], piQxelXor[2]);
-	break;
-      case 2:
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-	addrl++;
-	*addrl = DoRRop (*addrl, piQxelAnd[2], piQxelXor[2]);
-	break;
-      case 3:
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);
-	break;
-      }
-      break;
-    case 3:
-      switch(leftIndex){
-      case 0:
-	*addrl = DoRRop (*addrl, piQxelAnd[0], piQxelXor[0]);
-	addrl++;
-	*addrl = DoRRop (*addrl, piQxelAnd[1], piQxelXor[1]);
-	addrl++;
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[2], piQxelXor[2], 0xFF);
-	break;
-      case 1:
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[0], piQxelXor[0], 0xFF000000);
-	addrl++;
-	*addrl = DoRRop (*addrl, piQxelAnd[1], piQxelXor[1]);
-	addrl++;
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[2], piQxelXor[2], 0xFF);
-	break;
-      case 2:
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-	addrl++;
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[2], piQxelXor[2], 0xFF);
-	break;
-      }
-      break;
-    case 2:
-      if(leftIndex){
-	*addrl = DoMaskRRop (*addrl, piQxelAnd[0], piQxelXor[0], 0xFF000000);
-	addrl++;
-      }
-      else{
-	*addrl = DoRRop (*addrl, piQxelAnd[0], piQxelXor[0]);
-	addrl++;
-      }
-      *addrl =  DoMaskRRop (*addrl, piQxelAnd[1], piQxelXor[1], 0xFFFF);
-      break;
-    case 1: /*only if leftIndex = 0 and w = 1*/
-      *addrl = DoMaskRRop (*addrl, piQxelAnd[0], piQxelXor[0], 0xFFFFFF);
-      break;
-    case 0: /*never*/
-      break;
-    default:
-      {
-	if (rop == GXcopy){
-	  switch(leftIndex){
-	  case 0:
-	    break;
-	  case 1:
-	    *addrl = ((*addrl) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-	    addrl++;
-	    *addrl++ = piQxelXor[1];
-	    *addrl++ = piQxelXor[2];
-	    break;
-	  case 2:
-	    *addrl = ((*addrl) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-	    addrl++;
-	    *addrl++ = piQxelXor[2];
-	    break;
-	  case 3:
-	    *addrl = ((*addrl) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-	    addrl++;
-	    break;
-	  }
-	  while(nlmiddle--){
-	    *addrl++ = piQxelXor[0];
-	    *addrl++ = piQxelXor[1];
-	    *addrl++ = piQxelXor[2];
-	  }
-	  switch(rightIndex){
-	  case 0:
-	    break;
-	  case 1:
-	    *addrl = ((*addrl) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);
-	    break;
-	  case 2:
-	    *addrl++ = piQxelXor[0];
-	    *addrl = ((*addrl) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-	    break;
-	  case 3:
-	    *addrl++ = piQxelXor[0];
-	    *addrl++ = piQxelXor[1];
-	    *addrl = ((*addrl) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-	    break;
-	  }
-	}
-	else{
-	  if(rop == GXxor){
-	  switch(leftIndex){
-	  case 0:
-	    break;
-	  case 1:
-	    *addrl++ ^= (piQxelXor[0]&0xFF000000);
-	    *addrl++ ^= piQxelXor[1];
-	    *addrl++ ^= piQxelXor[2];
-	    break;
-	  case 2:
-	    *addrl++ ^= (piQxelXor[1]& 0xFFFF0000);
-	    *addrl++ ^= piQxelXor[2];
-	    break;
-	  case 3:
-	    *addrl++ ^= (piQxelXor[2]& 0xFFFFFF00);
-	    break;
-	  }
-	  while(nlmiddle--){
-	    *addrl++ ^= piQxelXor[0];
-	    *addrl++ ^= piQxelXor[1];
-	    *addrl++ ^= piQxelXor[2];
-	  }
-	  switch(rightIndex){
-	  case 0:
-	    break;
-	  case 1:
-	    *addrl ^= (piQxelXor[0]& 0xFFFFFF);
-	    break;
-	  case 2:
-	    *addrl++ ^= piQxelXor[0];
-	    *addrl ^= (piQxelXor[1]&0xFFFF);
-	    break;
-	  case 3:
-	    *addrl++ ^= piQxelXor[0];
-	    *addrl++ ^= piQxelXor[1];
-	    *addrl ^= (piQxelXor[2]&0xFF);
-	    break;
-	  }
-	}
-	  else{
-	    switch(leftIndex){
-	    case 0:
-	      break;
-	    case 1:
-	      *addrl = DoMaskRRop (*addrl, piQxelAnd[0], piQxelXor[0], 0xFF000000);
-	      addrl++;
-	      *addrl = DoRRop (*addrl, piQxelAnd[1], piQxelXor[1]);
-	      addrl++;
-	      *addrl = DoRRop (*addrl, piQxelAnd[2], piQxelXor[2]);
-	      addrl++;
-	      break;
-	    case 2:
-	      *addrl = DoMaskRRop (*addrl, piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-	      addrl++;
-	      *addrl = DoRRop (*addrl, piQxelAnd[2], piQxelXor[2]);
-	      addrl++;
-	      break;
-	    case 3:
-	      *addrl = DoMaskRRop (*addrl, piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);
-	      addrl++;
-	      break;
-	  }
-	  while(nlmiddle--){
-	    *addrl = DoRRop (*addrl, piQxelAnd[0], piQxelXor[0]);
-	    addrl++;
-	    *addrl = DoRRop (*addrl, piQxelAnd[1], piQxelXor[1]);
-	    addrl++;
-	    *addrl = DoRRop (*addrl, piQxelAnd[2], piQxelXor[2]);
-	    addrl++;
-	  }
-	  switch(rightIndex){
-	  case 0:
-	    break;
-	  case 1:
-	    *addrl = DoMaskRRop (*addrl, piQxelAnd[0], piQxelXor[0], 0xFFFFFF);
-	    addrl++;
-	    break;
-	  case 2:
-	    *addrl = DoRRop (*addrl, piQxelAnd[0], piQxelXor[0]);
-	    addrl++;
-	    *addrl = DoMaskRRop (*addrl, piQxelAnd[1], piQxelXor[1], 0xFFFF);
-	    break;
-	  case 3:
-	    *addrl = DoRRop (*addrl, piQxelAnd[0], piQxelXor[0]);
-	    addrl++;
-	    *addrl = DoRRop (*addrl, piQxelAnd[1], piQxelXor[1]);
-	    addrl++;
-	    *addrl = DoMaskRRop (*addrl, piQxelAnd[2], piQxelXor[2], 0xFF);
-	    break;
-	  }
-
-	  }
-	}
-      }
-    }
-#else
-    register CfbBits startmask;
-    register CfbBits endmask;
-
-    addrl = addrl + (y1 * nlwidth) + (x1 >> PWSH);
-
-    /* all bits inside same longword */
-    if ( ((x1 & PIM) + len) < PPW)
-    {
-	maskpartialbits(x1, len, startmask);
-	*addrl = DoMaskRRop (*addrl, and, xor, startmask);
-    }
-    else
-    {
-	maskbits(x1, len, startmask, endmask, nlmiddle);
-	if (rop == GXcopy)
-	{
-	    if (startmask)
-	    {
-		*addrl = (*addrl & ~startmask) | (xor & startmask);
-		addrl++;
-	    }
-	    while (nlmiddle--)
-	    	*addrl++ = xor;
-	    if (endmask)
-		*addrl = (*addrl & ~endmask) | (xor & endmask);
-	}
-	else
-	{
-	    if (startmask)
-	    {
-		*addrl = DoMaskRRop (*addrl, and, xor, startmask);
-		addrl++;
-	    }
-	    if (rop == GXxor)
-	    {
-		while (nlmiddle--)
-		    *addrl++ ^= xor;
-	    }
-	    else
-	    {
-		while (nlmiddle--)
-		{
-		    *addrl = DoRRop (*addrl, and, xor);
-		    addrl++;
-		}
-	    }
-	    if (endmask)
-		*addrl = DoMaskRRop (*addrl, and, xor, endmask);
-	}
-    }
-#endif
-}
-
-/* vertical solid line */
-
-void
-cfbVertS(rop, and, xor, addrl, nlwidth, x1, y1, len)
-int rop;
-register CfbBits and, xor;
-register CfbBits *addrl;	/* pointer to base of bitmap */
-register int nlwidth;	/* width in longwords of bitmap */
-int x1, y1;		/* initial point */
-register int len;	/* length of line */
-{
-#if PSZ == 24
-    int xIdx;
-    CfbBits and2 = 0, xor2 = 0, mask = 0, mask2;
-#endif
-#ifdef PIXEL_ADDR
-    register PixelType    *bits = (PixelType *) addrl;
-
-#if PSZ == 24
-    nlwidth <<= PWSH;
-    xIdx = x1 & 3;
-    bits = (PixelType *)(addrl + (y1 * nlwidth) + ((x1*3) >> 2));
-#else
-    nlwidth <<= PWSH;
-    bits = bits + (y1 * nlwidth) + x1;
-#endif
-#if PSZ == 24
-    mask2 = 0;
-    switch(xIdx){
-      case 0:
-        mask = 0xFF000000;
-	xor &= 0xFFFFFF;
-	and |= 0xFF000000;
-	break;
-      case 3:
-	mask = 0xFF;
-	xor &= 0xFFFFFF;
-	xor <<= 8;
-	and <<= 8;
-	and |= 0xFF;
-	break;
-      case 1:
-	mask = 0xFFFFFF;
-	mask2 = 0xFFFF0000;
-	xor2 = (xor>>8) & 0xFFFF;
-	xor &= 0xFF;
-	xor <<= 24;
-	and2 = (and >> 8 ) | 0xFFFF0000;
-	and <<= 24;
-	and |= 0xFFFFFF;
-	break;
-      case 2:
-	mask = 0x0000FFFF;
-	mask2 = 0xFFFFFF00;
-	xor2 = (xor >> 16) & 0xFF;
-	xor <<= 16;
-	xor &= 0xFFFF0000;
-	and2 = (and >> 16) | 0xFFFFFF00;
-	and <<= 16;
-	and |= 0xFFFF;
-	break;
-      }
-#endif
-
-    /*
-     * special case copy and xor to avoid a test per pixel
-     */
-    if (rop == GXcopy)
-    {
-#if PSZ == 24
-      switch(xIdx){
-      case 0:
-      case 3:
-	while (len--){
-	  *bits = (*bits & mask)| xor;
-	  bits += nlwidth;
-	}
-	break;
-      case 1:
-      case 2:
-	while (len--){
-	  *bits = (*bits & mask)| xor;
-	  bits++;
-	  *bits = (*bits & mask2)| xor2;
-	  bits--;
-	  bits += nlwidth;
-	}
-	break;
-      }
-#else
-	while (len--)
-	{
-	    *bits = xor;
-	    bits += nlwidth;
-	}
-#endif
-    }
-    else if (rop == GXxor)
-    {
-#if PSZ == 24
-      switch(xIdx){
-      case 0:
-      case 3:
-	while (len--){
-	  *bits ^=  xor;
-	  bits += nlwidth;
-	}
-	break;
-      case 1:
-      case 2:
-	while (len--){
-	  *bits ^= xor;
-	  bits++;
-	  *bits ^= xor2;
-	  bits--;
-	  bits += nlwidth;
-	}
-	break;
-      }
-#else
-	while (len--)
-	{
-	    *bits ^= xor;
-	    bits += nlwidth;
-	}
-#endif
-    }
-    else
-    {
-#if PSZ == 24
-      switch(xIdx){
-      case 0:
-	while (len--){
-	  *bits = DoMaskRRop(*bits, and, xor, 0x00FFFFFF);
-	  bits += nlwidth;
-	}
-	break;
-      case 3:
-	while (len--){
-	  *bits = DoMaskRRop(*bits, and, xor, 0xFFFFFF00);
-	  bits += nlwidth;
-	}
-	break;
-      case 1:
-	while (len--){
-	  *bits = DoMaskRRop(*bits, and, xor, 0xFF000000);
-	  bits++;
-	  *bits = DoMaskRRop(*bits, and2, xor2, 0x0000FFFF);
-	  bits--;
-	  bits += nlwidth;
-	}
-	break;
-      case 2:
-	while (len--){
-	  *bits = DoMaskRRop(*bits, and, xor, 0xFFFF0000);
-	  bits++;
-	  *bits = DoMaskRRop(*bits, and2, xor2, 0x000000FF);
-	  bits--;
-	  bits += nlwidth;
-	}
-	break;
-      }
-#else
-	while (len--)
-	{
-	    *bits = DoRRop(*bits, and, xor);
-	    bits += nlwidth;
-	}
-#endif
-    }
-#else /* !PIXEL_ADDR */
-#if PSZ == 24
-    addrl = addrl + (y1 * nlwidth) + ((x1*3) >>2);
-
-    and |= ~cfbmask[(x1 & 3)<<1];
-    xor &= cfbmask[(x1 & 3)<<1];
-#else
-    addrl = addrl + (y1 * nlwidth) + (x1 >> PWSH);
-
-    and |= ~cfbmask[x1 & PIM];
-    xor &= cfbmask[x1 & PIM];
-#endif
-
-    while (len--)
-    {
-	*addrl = DoRRop (*addrl, and, xor);
-	addrl += nlwidth;
-    }
-#endif
-}
diff --git a/cfb/cfbigblt8.c b/cfb/cfbigblt8.c
deleted file mode 100644
index 1f1ce6f..0000000
--- a/cfb/cfbigblt8.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"mi.h"
-#include	"cfb.h"
-#include	<X11/fonts/fontstruct.h>
-#include	"dixfontstr.h"
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"cfbmskbits.h"
-#include	"cfb8bit.h"
-
-void
-cfbImageGlyphBlt8 (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase)
-    DrawablePtr	    pDrawable;
-    GCPtr	    pGC;
-    int		    x, y;
-    unsigned int    nglyph;
-    CharInfoPtr	    *ppci;
-    pointer	    pglyphBase;
-{
-    ExtentInfoRec info;		/* used by QueryGlyphExtents() */
-    xRectangle backrect;
-    int		fgPixel;
-    cfbPrivGC	*priv;
-
-    /*
-     * We can't avoid GC validations if calling mi functions.
-     */
-    if ((pGC->ops->PolyFillRect == miPolyFillRect) ||
-        (pGC->ops->PolyGlyphBlt == miPolyGlyphBlt))
-    {
-        miImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-        return;
-    }
-
-    QueryGlyphExtents(pGC->font, ppci, (unsigned long)nglyph, &info);
-
-    if (info.overallWidth >= 0)
-    {
-    	backrect.x = x;
-    	backrect.width = info.overallWidth;
-    }
-    else
-    {
-	backrect.x = x + info.overallWidth;
-	backrect.width = -info.overallWidth;
-    }
-    backrect.y = y - FONTASCENT(pGC->font);
-    backrect.height = FONTASCENT(pGC->font) + FONTDESCENT(pGC->font);
-
-    priv = cfbGetGCPrivate(pGC);
-
-    /* this code cheats by knowing that ValidateGC isn't
-     * necessary for PolyFillRect
-     */
-
-    fgPixel = pGC->fgPixel;
-
-    pGC->fgPixel = pGC->bgPixel;
-    priv->xor = PFILL(pGC->bgPixel);
-
-    (*pGC->ops->PolyFillRect) (pDrawable, pGC, 1, &backrect);
-
-    pGC->fgPixel = fgPixel;
-
-    priv->xor = PFILL(pGC->fgPixel);
-
-    (*pGC->ops->PolyGlyphBlt) (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-    
-}
diff --git a/cfb/cfbimage.c b/cfb/cfbimage.c
deleted file mode 100644
index 396e1fc..0000000
--- a/cfb/cfbimage.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <string.h>
-
-#include <X11/X.h>
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "gcstruct.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "servermd.h"
-#include "mi.h"
-
-void
-cfbPutImage(pDraw, pGC, depth, x, y, w, h, leftPad, format, pImage)
-    DrawablePtr pDraw;
-    GCPtr	pGC;
-    int		depth, x, y, w, h;
-    int		leftPad;
-    int		format;
-    char 	*pImage;
-{
-    PixmapPtr   pPixmap;
-
-    if ((w == 0) || (h == 0))
-	return;
-
-    if (format != XYPixmap)
-    {
-	pPixmap = GetScratchPixmapHeader(pDraw->pScreen, w+leftPad, h, depth,
-		      BitsPerPixel(depth), PixmapBytePad(w+leftPad, depth),
-		      (pointer)pImage);
-	if (!pPixmap)
-	    return;
-	
-    	pGC->fExpose = FALSE;
-	if (format == ZPixmap)
-	    (void)(*pGC->ops->CopyArea)((DrawablePtr)pPixmap, pDraw, pGC,
-					leftPad, 0, w, h, x, y);
-	else
-	    (void)(*pGC->ops->CopyPlane)((DrawablePtr)pPixmap, pDraw, pGC,
-					 leftPad, 0, w, h, x, y, 1);
-	pGC->fExpose = TRUE;
-        FreeScratchPixmapHeader(pPixmap);
-    }
-    else
-    {
-	CfbBits	oldFg, oldBg;
-	XID		gcv[3];
-	CfbBits	oldPlanemask;
-	unsigned long	i;
-	long		bytesPer;
-
-	depth = pGC->depth;
-	oldPlanemask = pGC->planemask;
-	oldFg = pGC->fgPixel;
-	oldBg = pGC->bgPixel;
-	gcv[0] = ~0L;
-	gcv[1] = 0;
-	DoChangeGC(pGC, GCForeground | GCBackground, gcv, 0);
-	bytesPer = (long)h * BitmapBytePad(w + leftPad);
-
-	for (i = 1 << (depth-1); i != 0; i >>= 1, pImage += bytesPer)
-	{
-	    if (i & oldPlanemask)
-	    {
-	        gcv[0] = i;
-	        DoChangeGC(pGC, GCPlaneMask, gcv, 0);
-	        ValidateGC(pDraw, pGC);
-	        (*pGC->ops->PutImage)(pDraw, pGC, 1, x, y, w, h, leftPad,
-			         XYBitmap, pImage);
-	    }
-	}
-	gcv[0] = oldPlanemask;
-	gcv[1] = oldFg;
-	gcv[2] = oldBg;
-	DoChangeGC(pGC, GCPlaneMask | GCForeground | GCBackground, gcv, 0);
-	ValidateGC(pDraw, pGC);
-    }
-}
-
-void
-cfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine)
-    DrawablePtr pDrawable;
-    int		sx, sy, w, h;
-    unsigned int format;
-    unsigned long planeMask;
-    char	*pdstLine;
-{
-    BoxRec box;
-    DDXPointRec ptSrc;
-    RegionRec rgnDst;
-    ScreenPtr pScreen;
-    PixmapPtr pPixmap;
-
-    if ((w == 0) || (h == 0))
-	return;
-    if (pDrawable->bitsPerPixel == 1)
-    {
-	mfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine);
-	return;
-    }
-    pScreen = pDrawable->pScreen;
-    /*
-     * XFree86 DDX empties the root borderClip when the VT is
-     * switched away; this checks for that case
-     */
-    if (!cfbDrawableEnabled (pDrawable))
-	return;
-    if (format == ZPixmap)
-    {
-	pPixmap = GetScratchPixmapHeader(pScreen, w, h, 
-			pDrawable->depth, pDrawable->bitsPerPixel,
-			PixmapBytePad(w,pDrawable->depth), (pointer)pdstLine);
-	if (!pPixmap)
-	    return;
-	if ((planeMask & PMSK) != PMSK)
-	    bzero((char *)pdstLine, pPixmap->devKind * h);
-        ptSrc.x = sx + pDrawable->x;
-        ptSrc.y = sy + pDrawable->y;
-        box.x1 = 0;
-        box.y1 = 0;
-        box.x2 = w;
-        box.y2 = h;
-        REGION_INIT(pScreen, &rgnDst, &box, 1);
-	cfbDoBitblt(pDrawable, (DrawablePtr)pPixmap, GXcopy, &rgnDst,
-		    &ptSrc, planeMask);
-        REGION_UNINIT(pScreen, &rgnDst);
-	FreeScratchPixmapHeader(pPixmap);
-    }
-    else
-    {
-
-#if IMAGE_BYTE_ORDER == LSBFirst
-
-	pPixmap = GetScratchPixmapHeader(pScreen, w, h,  /*depth*/ 1,
-			/*bpp*/ 1, BitmapBytePad(w), (pointer)pdstLine);
-	if (!pPixmap)
-	    return;
-
-        ptSrc.x = sx + pDrawable->x;
-        ptSrc.y = sy + pDrawable->y;
-        box.x1 = 0;
-        box.y1 = 0;
-        box.x2 = w;
-        box.y2 = h;
-        REGION_INIT(pScreen, &rgnDst, &box, 1);
-	cfbCopyImagePlane (pDrawable, (DrawablePtr)pPixmap, GXcopy, &rgnDst,
-		    &ptSrc, planeMask);
-        REGION_UNINIT(pScreen, &rgnDst);
-	FreeScratchPixmapHeader(pPixmap);
-#else
-	miGetImage (pDrawable, sx, sy, w, h, format, planeMask, pdstLine);
-#endif
-    }
-}
diff --git a/cfb/cfbline.c b/cfb/cfbline.c
deleted file mode 100644
index 84c089a..0000000
--- a/cfb/cfbline.c
+++ /dev/null
@@ -1,756 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <stdlib.h>
-#include <X11/X.h>
-
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "regionstr.h"
-#include "scrnintstr.h"
-#include "mistruct.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "miline.h"
-
-/* single-pixel lines on a color frame buffer
-
-   NON-SLOPED LINES
-   horizontal lines are always drawn left to right; we have to
-move the endpoints right by one after they're swapped.
-   horizontal lines will be confined to a single band of a
-region.  the code finds that band (giving up if the lower
-bound of the band is above the line we're drawing); then it
-finds the first box in that band that contains part of the
-line.  we clip the line to subsequent boxes in that band.
-   vertical lines are always drawn top to bottom (y-increasing.)
-this requires adding one to the y-coordinate of each endpoint
-after swapping.
-
-   SLOPED LINES
-   when clipping a sloped line, we bring the second point inside
-the clipping box, rather than one beyond it, and then add 1 to
-the length of the line before drawing it.  this lets us use
-the same box for finding the outcodes for both endpoints.  since
-the equation for clipping the second endpoint to an edge gives us
-1 beyond the edge, we then have to move the point towards the
-first point by one step on the major axis.
-   eventually, there will be a diagram here to explain what's going
-on.  the method uses Cohen-Sutherland outcodes to determine
-outsideness, and a method similar to Pike's layers for doing the
-actual clipping.
-
-*/
-
-void
-#ifdef POLYSEGMENT
-cfbSegmentSS (pDrawable, pGC, nseg, pSeg)
-    DrawablePtr	pDrawable;
-    GCPtr	pGC;
-    int		nseg;
-    register xSegment	*pSeg;
-#else
-cfbLineSS (pDrawable, pGC, mode, npt, pptInit)
-    DrawablePtr pDrawable;
-    GCPtr	pGC;
-    int		mode;		/* Origin or Previous */
-    int		npt;		/* number of points */
-    DDXPointPtr pptInit;
-#endif
-{
-    int nboxInit;
-    register int nbox;
-    BoxPtr pboxInit;
-    register BoxPtr pbox;
-#ifndef POLYSEGMENT
-    register DDXPointPtr ppt;	/* pointer to list of translated points */
-#endif
-
-    unsigned int oc1;		/* outcode of point 1 */
-    unsigned int oc2;		/* outcode of point 2 */
-
-    CfbBits *addrl;	/* address of destination pixmap */
-    int nlwidth;		/* width in longwords of destination pixmap */
-    int xorg, yorg;		/* origin of window */
-
-    int adx;		/* abs values of dx and dy */
-    int ady;
-    int signdx;		/* sign of dx and dy */
-    int signdy;
-    int e, e1, e2;		/* bresenham error and increments */
-    int len;			/* length of segment */
-    int axis;			/* major axis */
-    int octant;
-    unsigned int bias = miGetZeroLineBias(pDrawable->pScreen);
-
-				/* a bunch of temporaries */
-    int tmp;
-    register int y1, y2;
-    register int x1, x2;
-    RegionPtr cclip;
-    cfbPrivGCPtr    devPriv;
-    CfbBits   xor, and;
-    int		    alu;
-
-    devPriv = cfbGetGCPrivate(pGC);
-    cclip = pGC->pCompositeClip;
-    pboxInit = REGION_RECTS(cclip);
-    nboxInit = REGION_NUM_RECTS(cclip);
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwidth, addrl)
-
-    alu = devPriv->rop;
-    xor = devPriv->xor;
-    and = devPriv->and;
-    xorg = pDrawable->x;
-    yorg = pDrawable->y;
-#ifdef POLYSEGMENT
-    while (nseg--)
-#else
-    ppt = pptInit;
-    x2 = ppt->x + xorg;
-    y2 = ppt->y + yorg;
-    while(--npt)
-#endif
-    {
-	nbox = nboxInit;
-	pbox = pboxInit;
-
-#ifdef POLYSEGMENT
-	x1 = pSeg->x1 + xorg;
-	y1 = pSeg->y1 + yorg;
-	x2 = pSeg->x2 + xorg;
-	y2 = pSeg->y2 + yorg;
-	pSeg++;
-#else
-	x1 = x2;
-	y1 = y2;
-	++ppt;
-	if (mode == CoordModePrevious)
-	{
-	    xorg = x1;
-	    yorg = y1;
-	}
-	x2 = ppt->x + xorg;
-	y2 = ppt->y + yorg;
-#endif
-
-	if (x1 == x2)  /* vertical line */
-	{
-	    /* make the line go top to bottom of screen, keeping
-	       endpoint semantics
-	    */
-	    if (y1 > y2)
-	    {
-		register int tmp;
-
-		tmp = y2;
-		y2 = y1 + 1;
-		y1 = tmp + 1;
-#ifdef POLYSEGMENT
-		if (pGC->capStyle != CapNotLast)
-		    y1--;
-#endif
-	    }
-#ifdef POLYSEGMENT
-	    else if (pGC->capStyle != CapNotLast)
-		y2++;
-#endif
-	    /* get to first band that might contain part of line */
-	    while ((nbox) && (pbox->y2 <= y1))
-	    {
-		pbox++;
-		nbox--;
-	    }
-
-	    if (nbox)
-	    {
-		/* stop when lower edge of box is beyond end of line */
-		while((nbox) && (y2 >= pbox->y1))
-		{
-		    if ((x1 >= pbox->x1) && (x1 < pbox->x2))
-		    {
-			int y1t, y2t;
-			/* this box has part of the line in it */
-			y1t = max(y1, pbox->y1);
-			y2t = min(y2, pbox->y2);
-			if (y1t != y2t)
-			{
-			    cfbVertS (alu, and, xor,
-				      addrl, nlwidth, 
-				      x1, y1t, y2t-y1t);
-			}
-		    }
-		    nbox--;
-		    pbox++;
-		}
-	    }
-#ifndef POLYSEGMENT
-	    y2 = ppt->y + yorg;
-#endif
-	}
-	else if (y1 == y2)  /* horizontal line */
-	{
-	    /* force line from left to right, keeping
-	       endpoint semantics
-	    */
-	    if (x1 > x2)
-	    {
-		register int tmp;
-
-		tmp = x2;
-		x2 = x1 + 1;
-		x1 = tmp + 1;
-#ifdef POLYSEGMENT
-		if (pGC->capStyle != CapNotLast)
-		    x1--;
-#endif
-	    }
-#ifdef POLYSEGMENT
-	    else if (pGC->capStyle != CapNotLast)
-		x2++;
-#endif
-
-	    /* find the correct band */
-	    while( (nbox) && (pbox->y2 <= y1))
-	    {
-		pbox++;
-		nbox--;
-	    }
-
-	    /* try to draw the line, if we haven't gone beyond it */
-	    if ((nbox) && (pbox->y1 <= y1))
-	    {
-		/* when we leave this band, we're done */
-		tmp = pbox->y1;
-		while((nbox) && (pbox->y1 == tmp))
-		{
-		    int	x1t, x2t;
-
-		    if (pbox->x2 <= x1)
-		    {
-			/* skip boxes until one might contain start point */
-			nbox--;
-			pbox++;
-			continue;
-		    }
-
-		    /* stop if left of box is beyond right of line */
-		    if (pbox->x1 >= x2)
-		    {
-			nbox = 0;
-			break;
-		    }
-
-		    x1t = max(x1, pbox->x1);
-		    x2t = min(x2, pbox->x2);
-		    if (x1t != x2t)
-		    {
-			cfbHorzS (alu, and, xor,
-				  addrl, nlwidth, 
-				  x1t, y1, x2t-x1t);
-		    }
-		    nbox--;
-		    pbox++;
-		}
-	    }
-#ifndef POLYSEGMENT
-	    x2 = ppt->x + xorg;
-#endif
-	}
-	else	/* sloped line */
-	{
-	    CalcLineDeltas(x1, y1, x2, y2, adx, ady, signdx, signdy,
-			   1, 1, octant);
-
-	    if (adx > ady)
-	    {
-		axis = X_AXIS;
-		e1 = ady << 1;
-		e2 = e1 - (adx << 1);
-		e = e1 - adx;
- 	    }
-	    else
-	    {
-		axis = Y_AXIS;
-		e1 = adx << 1;
-		e2 = e1 - (ady << 1);
-		e = e1 - ady;
-		SetYMajorOctant(octant);
-	    }
-
-	    FIXUP_ERROR(e, octant, bias);
-
-	    /* we have bresenham parameters and two points.
-	       all we have to do now is clip and draw.
-	    */
-
-	    while(nbox--)
-	    {
-		oc1 = 0;
-		oc2 = 0;
-		OUTCODES(oc1, x1, y1, pbox);
-		OUTCODES(oc2, x2, y2, pbox);
-		if ((oc1 | oc2) == 0)
-		{
-		    if (axis == X_AXIS)
-			len = adx;
-		    else
-			len = ady;
-#ifdef POLYSEGMENT
-		    if (pGC->capStyle != CapNotLast)
-			len++;
-#endif
-		    cfbBresS (alu, and, xor,
-			  addrl, nlwidth,
-			  signdx, signdy, axis, x1, y1,
-			  e, e1, e2, len);
-		    break;
-		}
-		else if (oc1 & oc2)
-		{
-		    pbox++;
-		}
-		else
-		{
-		    int new_x1 = x1, new_y1 = y1, new_x2 = x2, new_y2 = y2;
-		    int clip1 = 0, clip2 = 0;
-		    int clipdx, clipdy;
-		    int err;
-		    
-		    if (miZeroClipLine(pbox->x1, pbox->y1, pbox->x2-1,
-				       pbox->y2-1,
-				       &new_x1, &new_y1, &new_x2, &new_y2,
-				       adx, ady, &clip1, &clip2,
-				       octant, bias, oc1, oc2) == -1)
-		    {
-			pbox++;
-			continue;
-		    }
-
-		    if (axis == X_AXIS)
-			len = abs(new_x2 - new_x1);
-		    else
-			len = abs(new_y2 - new_y1);
-#ifdef POLYSEGMENT
-		    if (clip2 != 0 || pGC->capStyle != CapNotLast)
-			len++;
-#else
-		    len += (clip2 != 0);
-#endif
-		    if (len)
-		    {
-			/* unwind bresenham error term to first point */
-			if (clip1)
-			{
-			    clipdx = abs(new_x1 - x1);
-			    clipdy = abs(new_y1 - y1);
-			    if (axis == X_AXIS)
-				err = e+((clipdy*e2) + ((clipdx-clipdy)*e1));
-			    else
-				err = e+((clipdx*e2) + ((clipdy-clipdx)*e1));
-			}
-			else
-			    err = e;
-			    cfbBresS(alu, and, xor,
-				     addrl, nlwidth,
-				     signdx, signdy, axis, new_x1, new_y1,
-				     err, e1, e2, len);
-		    }
-		    pbox++;
-		}
-	    } /* while (nbox--) */
-	} /* sloped line */
-    } /* while (nline--) */
-
-#ifndef POLYSEGMENT
-    /* paint the last point if the end style isn't CapNotLast.
-       (Assume that a projecting, butt, or round cap that is one
-        pixel wide is the same as the single pixel of the endpoint.)
-    */
-
-    if ((pGC->capStyle != CapNotLast) &&
-	((ppt->x + xorg != pptInit->x + pDrawable->x) ||
-	 (ppt->y + yorg != pptInit->y + pDrawable->y) ||
-	 (ppt == pptInit + 1)))
-    {
-	nbox = nboxInit;
-	pbox = pboxInit;
-	while (nbox--)
-	{
-	    if ((x2 >= pbox->x1) &&
-		(y2 >= pbox->y1) &&
-		(x2 <  pbox->x2) &&
-		(y2 <  pbox->y2))
-	    {
-		CfbBits mask;
-		CfbBits scrbits;
-
-#if PSZ == 24
-		mask = cfbmask[(x2 & 3)<<1];
-		addrl += (y2 * nlwidth) + ((x2*3) >> 2);
-#else
-		mask = cfbmask[x2 & PIM];
-		addrl += (y2 * nlwidth) + (x2 >> PWSH);
-#endif
-		scrbits = *addrl;
-		*addrl = (scrbits & ~mask) |
-			 (DoRRop (scrbits, and, xor) & mask);
-		break;
-	    }
-	    else
-		pbox++;
-	}
-    }
-#endif
-}
-
-/*
- * Draw dashed 1-pixel lines.
- */
-
-void
-#ifdef POLYSEGMENT
-cfbSegmentSD (pDrawable, pGC, nseg, pSeg)
-    DrawablePtr	pDrawable;
-    register GCPtr	pGC;
-    int		nseg;
-    register xSegment	*pSeg;
-#else
-cfbLineSD( pDrawable, pGC, mode, npt, pptInit)
-    DrawablePtr pDrawable;
-    register GCPtr pGC;
-    int mode;		/* Origin or Previous */
-    int npt;		/* number of points */
-    DDXPointPtr pptInit;
-#endif
-{
-    int nboxInit;
-    register int nbox;
-    BoxPtr pboxInit;
-    register BoxPtr pbox;
-#ifndef POLYSEGMENT
-    register DDXPointPtr ppt;	/* pointer to list of translated points */
-#endif
-
-    register unsigned int oc1;		/* outcode of point 1 */
-    register unsigned int oc2;		/* outcode of point 2 */
-
-    CfbBits *addrl;		/* address of destination pixmap */
-    int nlwidth;		/* width in longwords of destination pixmap */
-    int xorg, yorg;		/* origin of window */
-
-    int adx;		/* abs values of dx and dy */
-    int ady;
-    int signdx;		/* sign of dx and dy */
-    int signdy;
-    int e, e1, e2;		/* bresenham error and increments */
-    int len;			/* length of segment */
-    int axis;			/* major axis */
-    int octant;
-    unsigned int bias = miGetZeroLineBias(pDrawable->pScreen);
-    int x1, x2, y1, y2;
-    RegionPtr cclip;
-    cfbRRopRec	    rrops[2];
-    unsigned char   *pDash;
-    int		    dashOffset;
-    int		    numInDashList;
-    int		    dashIndex;
-    int		    isDoubleDash;
-    int		    dashIndexTmp, dashOffsetTmp;
-    int		    unclippedlen;
-    cfbPrivGCPtr    devPriv;
-
-    devPriv = cfbGetGCPrivate(pGC);
-    cclip = pGC->pCompositeClip;
-    rrops[0].rop = devPriv->rop;
-    rrops[0].and = devPriv->and;
-    rrops[0].xor = devPriv->xor;
-    if (pGC->alu == GXcopy)
-    {
-	rrops[1].rop = GXcopy;
-	rrops[1].and = 0;
-	rrops[1].xor = PFILL (pGC->bgPixel);
-    }
-    else
-    {
-    	rrops[1].rop = cfbReduceRasterOp (pGC->alu,
-					  pGC->bgPixel, pGC->planemask,
-					  &rrops[1].and, &rrops[1].xor);
-    }
-    pboxInit = REGION_RECTS(cclip);
-    nboxInit = REGION_NUM_RECTS(cclip);
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwidth, addrl)
-
-    /* compute initial dash values */
-     
-    pDash = (unsigned char *) pGC->dash;
-    numInDashList = pGC->numInDashList;
-    isDoubleDash = (pGC->lineStyle == LineDoubleDash);
-    dashIndex = 0;
-    dashOffset = 0;
-    miStepDash ((int)pGC->dashOffset, &dashIndex, pDash,
-		numInDashList, &dashOffset);
-
-    xorg = pDrawable->x;
-    yorg = pDrawable->y;
-#ifdef POLYSEGMENT
-    while (nseg--)
-#else
-    ppt = pptInit;
-    x2 = ppt->x + xorg;
-    y2 = ppt->y + yorg;
-    while(--npt)
-#endif
-    {
-	nbox = nboxInit;
-	pbox = pboxInit;
-
-#ifdef POLYSEGMENT
-	x1 = pSeg->x1 + xorg;
-	y1 = pSeg->y1 + yorg;
-	x2 = pSeg->x2 + xorg;
-	y2 = pSeg->y2 + yorg;
-	pSeg++;
-#else
-	x1 = x2;
-	y1 = y2;
-	++ppt;
-	if (mode == CoordModePrevious)
-	{
-	    xorg = x1;
-	    yorg = y1;
-	}
-	x2 = ppt->x + xorg;
-	y2 = ppt->y + yorg;
-#endif
-
-	CalcLineDeltas(x1, y1, x2, y2, adx, ady, signdx, signdy, 1, 1, octant);
-
-	if (adx > ady)
-	{
-	    axis = X_AXIS;
-	    e1 = ady << 1;
-	    e2 = e1 - (adx << 1);
-	    e = e1 - adx;
-	    unclippedlen = adx;
-	}
-	else
-	{
-	    axis = Y_AXIS;
-	    e1 = adx << 1;
-	    e2 = e1 - (ady << 1);
-	    e = e1 - ady;
-	    unclippedlen = ady;
-	    SetYMajorOctant(octant);
-	}
-
-	FIXUP_ERROR(e, octant, bias);
-
-	/* we have bresenham parameters and two points.
-	   all we have to do now is clip and draw.
-	*/
-
-	while(nbox--)
-	{
-	    oc1 = 0;
-	    oc2 = 0;
-	    OUTCODES(oc1, x1, y1, pbox);
-	    OUTCODES(oc2, x2, y2, pbox);
-	    if ((oc1 | oc2) == 0)
-	    {
-#ifdef POLYSEGMENT
-		if (pGC->capStyle != CapNotLast)
-		    unclippedlen++;
-		dashIndexTmp = dashIndex;
-		dashOffsetTmp = dashOffset;
-		cfbBresD (rrops,
-		      &dashIndexTmp, pDash, numInDashList,
-		      &dashOffsetTmp, isDoubleDash,
-		      addrl, nlwidth,
-		      signdx, signdy, axis, x1, y1,
-		      e, e1, e2, unclippedlen);
-		break;
-#else
-		cfbBresD (rrops,
-		      &dashIndex, pDash, numInDashList,
-		      &dashOffset, isDoubleDash,
-		      addrl, nlwidth,
-		      signdx, signdy, axis, x1, y1,
-		      e, e1, e2, unclippedlen);
-		goto dontStep;
-#endif
-	    }
-	    else if (oc1 & oc2)
-	    {
-		pbox++;
-	    }
-	    else /* have to clip */
-	    {
-		int new_x1 = x1, new_y1 = y1, new_x2 = x2, new_y2 = y2;
-		int clip1 = 0, clip2 = 0;
-		int clipdx, clipdy;
-		int err;
-		
-		if (miZeroClipLine(pbox->x1, pbox->y1, pbox->x2-1,
-				   pbox->y2-1,
-				   &new_x1, &new_y1, &new_x2, &new_y2,
-				   adx, ady, &clip1, &clip2,
-				   octant, bias, oc1, oc2) == -1)
-		{
-		    pbox++;
-		    continue;
-		}
-
-		dashIndexTmp = dashIndex;
-		dashOffsetTmp = dashOffset;
-
-		if (clip1)
-		{
-		    int dlen;
-    
-		    if (axis == X_AXIS)
-			dlen = abs(new_x1 - x1);
-		    else
-			dlen = abs(new_y1 - y1);
-		    miStepDash (dlen, &dashIndexTmp, pDash,
-				numInDashList, &dashOffsetTmp);
-		}
-		
-		if (axis == X_AXIS)
-		    len = abs(new_x2 - new_x1);
-		else
-		    len = abs(new_y2 - new_y1);
-#ifdef POLYSEGMENT
-		if (clip2 != 0 || pGC->capStyle != CapNotLast)
-		    len++;
-#else
-		len += (clip2 != 0);
-#endif
-		if (len)
-		{
-		    /* unwind bresenham error term to first point */
-		    if (clip1)
-		    {
-			clipdx = abs(new_x1 - x1);
-			clipdy = abs(new_y1 - y1);
-			if (axis == X_AXIS)
-			    err = e+((clipdy*e2) + ((clipdx-clipdy)*e1));
-			else
-			    err = e+((clipdx*e2) + ((clipdy-clipdx)*e1));
-		    }
-		    else
-			err = e;
-		    cfbBresD (rrops,
-			      &dashIndexTmp, pDash, numInDashList,
-			      &dashOffsetTmp, isDoubleDash,
-			      addrl, nlwidth,
-			      signdx, signdy, axis, new_x1, new_y1,
-			      err, e1, e2, len);
-		}
-		pbox++;
-	    }
-	} /* while (nbox--) */
-#ifndef POLYSEGMENT
-	/*
-	 * walk the dash list around to the next line
-	 */
-	miStepDash (unclippedlen, &dashIndex, pDash,
-		    numInDashList, &dashOffset);
-dontStep:	;
-#endif
-    } /* while (nline--) */
-
-#ifndef POLYSEGMENT
-    /* paint the last point if the end style isn't CapNotLast.
-       (Assume that a projecting, butt, or round cap that is one
-        pixel wide is the same as the single pixel of the endpoint.)
-    */
-
-    if ((pGC->capStyle != CapNotLast) &&
-        ((dashIndex & 1) == 0 || isDoubleDash) &&
-	((ppt->x + xorg != pptInit->x + pDrawable->x) ||
-	 (ppt->y + yorg != pptInit->y + pDrawable->y) ||
-	 (ppt == pptInit + 1)))
-    {
-	nbox = nboxInit;
-	pbox = pboxInit;
-	while (nbox--)
-	{
-	    if ((x2 >= pbox->x1) &&
-		(y2 >= pbox->y1) &&
-		(x2 <  pbox->x2) &&
-		(y2 <  pbox->y2))
-	    {
-		CfbBits	mask;
-		int		pix;
-
-		pix = 0;
-		if (dashIndex & 1)
-		    pix = 1;
-#if PSZ == 24
-		mask = cfbmask[(x2 & 3)<<1];
-		addrl += (y2 * nlwidth) + ((x2 *3)>> 2);
-#else
-		mask = cfbmask[x2 & PIM];
-		addrl += (y2 * nlwidth) + (x2 >> PWSH);
-#endif
-		*addrl = DoMaskRRop (*addrl, rrops[pix].and, rrops[pix].xor, mask);
-		break;
-	    }
-	    else
-		pbox++;
-	}
-    }
-#endif
-}
diff --git a/cfb/cfbmap.h b/cfb/cfbmap.h
deleted file mode 100644
index 16e4afc..0000000
--- a/cfb/cfbmap.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- *
-Copyright 1991, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-
-/*
- * Map names around so that multiple depths can be supported simultaneously
- */
-
-/* a losing vendor cpp dumps core if we define CFBNAME in terms of CATNAME */
-
-#if PSZ != 8
-
-#if PSZ == 32
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define CFBNAME(subname) cfb32##subname
-#else
-#define CFBNAME(subname) cfb32/**/subname
-#endif
-#endif
-
-#if PSZ == 24
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define CFBNAME(subname) cfb24##subname
-#else
-#define CFBNAME(subname) cfb24/**/subname
-#endif
-#endif
-
-#if PSZ == 16
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define CFBNAME(subname) cfb16##subname
-#else
-#define CFBNAME(subname) cfb16/**/subname
-#endif
-#endif
-
-#if PSZ == 4
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define CFBNAME(subname) cfb4##subname
-#else
-#define CFBNAME(subname) cfb4/**/subname
-#endif
-#endif
-
-#ifndef CFBNAME
-cfb can not hack PSZ yet
-#endif
-
-#undef CATNAME
-
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define CATNAME(prefix,subname) prefix##subname
-#else
-#define CATNAME(prefix,subname) prefix/**/subname
-#endif
-
-#define QuartetBitsTable CFBNAME(QuartetBitsTable)
-#define QuartetPixelMaskTable CFBNAME(QuartetPixelMaskTable)
-#define cfb8ClippedLineCopy CFBNAME(ClippedLineCopy)
-#define cfb8ClippedLineGeneral  CFBNAME(ClippedLineGeneral )
-#define cfb8ClippedLineXor CFBNAME(ClippedLineXor)
-#define cfb8LineSS1Rect CFBNAME(LineSS1Rect)
-#define cfb8LineSS1RectCopy CFBNAME(LineSS1RectCopy)
-#define cfb8LineSS1RectGeneral  CFBNAME(LineSS1RectGeneral )
-#define cfb8LineSS1RectPreviousCopy CFBNAME(LineSS1RectPreviousCopy)
-#define cfb8LineSS1RectXor CFBNAME(LineSS1RectXor)
-#define cfb8SegmentSS1Rect CFBNAME(SegmentSS1Rect)
-#define cfb8SegmentSS1RectCopy CFBNAME(SegmentSS1RectCopy)
-#define cfb8SegmentSS1RectGeneral  CFBNAME(SegmentSS1RectGeneral )
-#define cfb8SegmentSS1RectShiftCopy CFBNAME(SegmentSS1RectShiftCopy)
-#define cfb8SegmentSS1RectXor CFBNAME(SegmentSS1RectXor)
-#define cfbAllocatePrivates CFBNAME(AllocatePrivates)
-#define cfbBSFuncRec CFBNAME(BSFuncRec)
-#define cfbBitBlt CFBNAME(BitBlt)
-#define cfbBresD CFBNAME(BresD)
-#define cfbBresS CFBNAME(BresS)
-#define cfbChangeWindowAttributes CFBNAME(ChangeWindowAttributes)
-#define cfbClearVisualTypes CFBNAME(cfbClearVisualTypes)
-#define cfbCloseScreen CFBNAME(CloseScreen)
-#define cfbCreateDefColormap CFBNAME (cfbCreateDefColormap)
-#define cfbCopyArea CFBNAME(CopyArea)
-#define cfbCopyImagePlane CFBNAME(CopyImagePlane)
-#define cfbCopyPixmap CFBNAME(CopyPixmap)
-#define cfbCopyPlane CFBNAME(CopyPlane)
-#define cfbCopyPlaneReduce CFBNAME(CopyPlaneReduce)
-#define cfbCopyRotatePixmap CFBNAME(CopyRotatePixmap)
-#define cfbCopyWindow CFBNAME(CopyWindow)
-#define cfbCreateGC CFBNAME(CreateGC)
-#define cfbCreatePixmap CFBNAME(CreatePixmap)
-#define cfbCreateScreenResources CFBNAME(CreateScreenResources)
-#define cfbCreateWindow CFBNAME(CreateWindow)
-#define cfbDestroyPixmap CFBNAME(DestroyPixmap)
-#define cfbDestroyWindow CFBNAME(DestroyWindow)
-#define cfbDoBitblt CFBNAME(DoBitblt)
-#define cfbDoBitbltCopy CFBNAME(DoBitbltCopy)
-#define cfbDoBitbltGeneral CFBNAME(DoBitbltGeneral)
-#define cfbDoBitbltOr CFBNAME(DoBitbltOr)
-#define cfbDoBitbltXor CFBNAME(DoBitbltXor)
-#define cfbExpandDirectColors CFBNAME(cfbExpandDirectColors)
-#define cfbFillBoxTile32sCopy CFBNAME(FillBoxTile32sCopy)
-#define cfbFillBoxTile32sGeneral CFBNAME(FillBoxTile32sGeneral)
-#define cfbFillBoxTileOdd CFBNAME(FillBoxTileOdd)
-#define cfbFillBoxTileOddCopy CFBNAME(FillBoxTileOddCopy)
-#define cfbFillBoxTileOddGeneral CFBNAME(FillBoxTileOddGeneral)
-#define cfbFillPoly1RectCopy CFBNAME(FillPoly1RectCopy)
-#define cfbFillPoly1RectGeneral CFBNAME(FillPoly1RectGeneral)
-#define cfbFillRectSolidCopy CFBNAME(FillRectSolidCopy)
-#define cfbFillRectSolidGeneral CFBNAME(FillRectSolidGeneral)
-#define cfbFillRectSolidXor CFBNAME(FillRectSolidXor)
-#define cfbFillRectTile32Copy CFBNAME(FillRectTile32Copy)
-#define cfbFillRectTile32General CFBNAME(FillRectTile32General)
-#define cfbFillRectTileOdd CFBNAME(FillRectTileOdd)
-#define cfbFillSpanTile32sCopy CFBNAME(FillSpanTile32sCopy)
-#define cfbFillSpanTile32sGeneral CFBNAME(FillSpanTile32sGeneral)
-#define cfbFillSpanTileOddCopy CFBNAME(FillSpanTileOddCopy)
-#define cfbFillSpanTileOddGeneral CFBNAME(FillSpanTileOddGeneral)
-#define cfbFinishScreenInit CFBNAME(FinishScreenInit)
-#define cfbGCFuncs CFBNAME(GCFuncs)
-#define cfbGCPrivateKey CFBNAME(GCPrivateKey)
-#define cfbGetImage CFBNAME(GetImage)
-#define cfbGetScreenPixmap CFBNAME(GetScreenPixmap)
-#define cfbGetSpans CFBNAME(GetSpans)
-#define cfbHorzS CFBNAME(HorzS)
-#define cfbImageGlyphBlt8 CFBNAME(ImageGlyphBlt8)
-#define cfbInitializeColormap CFBNAME(InitializeColormap)
-#define cfbInitVisuals CFBNAME(cfbInitVisuals)
-#define cfbInstallColormap CFBNAME(InstallColormap)
-#define cfbLineSD CFBNAME(LineSD)
-#define cfbLineSS CFBNAME(LineSS)
-#define cfbListInstalledColormaps CFBNAME(ListInstalledColormaps)
-#define cfbMapWindow CFBNAME(MapWindow)
-#define cfbMatchCommon CFBNAME(MatchCommon)
-#define cfbNonTEOps CFBNAME(NonTEOps)
-#define cfbNonTEOps1Rect CFBNAME(NonTEOps1Rect)
-#define cfbPadPixmap CFBNAME(PadPixmap)
-#define cfbPolyFillArcSolidCopy CFBNAME(PolyFillArcSolidCopy)
-#define cfbPolyFillArcSolidGeneral CFBNAME(PolyFillArcSolidGeneral)
-#define cfbPolyFillRect CFBNAME(PolyFillRect)
-#define cfbPolyGlyphBlt8 CFBNAME(PolyGlyphBlt8)
-#define cfbPolyGlyphRop8 CFBNAME(PolyGlyphRop8)
-#define cfbPolyPoint CFBNAME(PolyPoint)
-#define cfbPositionWindow CFBNAME(PositionWindow)
-#define cfbPutImage CFBNAME(PutImage)
-#define cfbReduceRasterOp CFBNAME(ReduceRasterOp)
-#define cfbResolveColor CFBNAME(ResolveColor)
-#define cfbRestoreAreas CFBNAME(RestoreAreas)
-#define cfbSaveAreas CFBNAME(SaveAreas)
-#define cfbScreenInit CFBNAME(ScreenInit)
-#define cfbScreenPrivateKey CFBNAME(ScreenPrivateKey)
-#define cfbSegmentSD CFBNAME(SegmentSD)
-#define cfbSegmentSS CFBNAME(SegmentSS)
-#define cfbSetScanline CFBNAME(SetScanline)
-#define cfbSetScreenPixmap CFBNAME(SetScreenPixmap)
-#define cfbSetSpans CFBNAME(SetSpans)
-#define cfbSetVisualTypes CFBNAME(cfbSetVisualTypes)
-#define cfbSetupScreen CFBNAME(SetupScreen)
-#define cfbSolidSpansCopy CFBNAME(SolidSpansCopy)
-#define cfbSolidSpansGeneral CFBNAME(SolidSpansGeneral)
-#define cfbSolidSpansXor CFBNAME(SolidSpansXor)
-#define cfbStippleStack CFBNAME(StippleStack)
-#define cfbStippleStackTE CFBNAME(StippleStackTE)
-#define cfbTEGlyphBlt CFBNAME(TEGlyphBlt)
-#define cfbTEOps CFBNAME(TEOps)
-#define cfbTEOps1Rect CFBNAME(TEOps1Rect)
-#define cfbTile32FSCopy CFBNAME(Tile32FSCopy)
-#define cfbTile32FSGeneral CFBNAME(Tile32FSGeneral)
-#define cfbUninstallColormap CFBNAME(UninstallColormap)
-#define cfbUnmapWindow CFBNAME(UnmapWindow)
-#define cfbUnnaturalStippleFS CFBNAME(UnnaturalStippleFS)
-#define cfbUnnaturalTileFS CFBNAME(UnnaturalTileFS)
-#define cfbValidateGC CFBNAME(ValidateGC)
-#define cfbVertS CFBNAME(VertS)
-#define cfbWindowPrivateKey CFBNAME(WindowPrivateKey)
-#define cfbXRotatePixmap CFBNAME(XRotatePixmap)
-#define cfbYRotatePixmap CFBNAME(YRotatePixmap)
-#define cfbZeroPolyArcSS8Copy CFBNAME(ZeroPolyArcSSCopy)
-#define cfbZeroPolyArcSS8General CFBNAME(ZeroPolyArcSSGeneral)
-#define cfbZeroPolyArcSS8Xor CFBNAME(ZeroPolyArcSSXor)
-#define cfbendpartial CFBNAME(endpartial)
-#define cfbendtab CFBNAME(endtab)
-#define cfbmask CFBNAME(mask)
-#define cfbrmask CFBNAME(rmask)
-#define cfbstartpartial CFBNAME(startpartial)
-#define cfbstarttab CFBNAME(starttab)
-
-#endif /* PSZ != 8 */
diff --git a/cfb/cfbmskbits.c b/cfb/cfbmskbits.c
deleted file mode 100644
index 915ea35..0000000
--- a/cfb/cfbmskbits.c
+++ /dev/null
@@ -1,1400 +0,0 @@
-/************************************************************
-Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
-
-                    All Rights Reserved
-
-Permission  to  use,  copy,  modify,  and  distribute   this
-software  and  its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright no-
-tice  appear  in all copies and that both that copyright no-
-tice and this permission notice appear in  supporting  docu-
-mentation,  and  that the names of Sun or The Open Group
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and The Open Group make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
-implied warranty.
-
-SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
-NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
-ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
-PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-
-/*
- * ==========================================================================
- * Converted to Color Frame Buffer by smarks at sun, April-May 1987.  The "bit 
- * numbering" in the doc below really means "byte numbering" now.
- * ==========================================================================
- */
-
-/*
-   these tables are used by several macros in the cfb code.
-
-   the vax numbers everything left to right, so bit indices on the
-screen match bit indices in longwords.  the pc-rt and Sun number
-bits on the screen the way they would be written on paper,
-(i.e. msb to the left), and so a bit index n on the screen is
-bit index 32-n in a longword
-
-   see also cfbmskbits.h
-*/
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<servermd.h>
-#include	"cfb.h"
-#include	"cfbmskbits.h"
-
-#define _cfbBits(a) (PixelGroup)(a)
-
-#if	(BITMAP_BIT_ORDER == MSBFirst)
-#define cfbBits(v)	_cfbBits(v)
-#else /* BITMAP_BIT_ORDER == LSBFirst */
-#define cfbFlip2(a)	((((a) & 0x1) << 1) | (((a) & 0x2) >> 1))
-#define cfbFlip4(a)	((cfbFlip2(a) << 2) | cfbFlip2(a >> 2))
-#define cfbFlip8(a)	((cfbFlip4(a) << 4) | cfbFlip4(a >> 4))
-#define cfbFlip16(a)	((cfbFlip8(a) << 8) | cfbFlip8(a >> 8))
-#define cfbFlip32(a)	((cfbFlip16(a) << 16) | cfbFlip16(a >> 16))
-#if PGSZ == 32
-#define cfbBits(a)	cfbFlip32(_cfbBits(a))
-#else /* PGSZ == 64 */
-#define cfbFlip64(a)	((cfbFlip32(a) << 32) | cfbFlip32(a >> 32))
-#define cfbBits(a)	cfbFlip64(_cfbBits(a))
-#endif /* PGSZ */
-#endif /* BITMAP_BIT_ORDER */
-
-/* NOTE:
-the first element in starttab could be 0xffffffff.  making it 0
-lets us deal with a full first word in the middle loop, rather
-than having to do the multiple reads and masks that we'd
-have to do if we thought it was partial.
-*/
-#if PSZ == 4
-#if PGSZ == 32
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x00000000),
-	cfbBits(0x0FFFFFFF),
-	cfbBits(0x00FFFFFF),
-	cfbBits(0x000FFFFF),
-	cfbBits(0x0000FFFF),
-	cfbBits(0x00000FFF),
-	cfbBits(0x000000FF),
-	cfbBits(0x0000000F)
-    };
-PixelGroup cfbendtab[] =
-    {
-	cfbBits(0x00000000),
-	cfbBits(0xF0000000),
-	cfbBits(0xFF000000),
-	cfbBits(0xFFF00000),
-	cfbBits(0xFFFF0000),
-	cfbBits(0xFFFFF000),
-	cfbBits(0xFFFFFF00),
-	cfbBits(0xFFFFFFF0)
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0x0FFFFFFFFFFFFFFF),
-	cfbBits(0x00FFFFFFFFFFFFFF),
-	cfbBits(0x000FFFFFFFFFFFFF),
-	cfbBits(0x0000FFFFFFFFFFFF),
-	cfbBits(0x00000FFFFFFFFFFF),
-	cfbBits(0x000000FFFFFFFFFF),
-	cfbBits(0x0000000FFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0x000000000FFFFFFF),
-	cfbBits(0x0000000000FFFFFF),
-	cfbBits(0x00000000000FFFFF),
-	cfbBits(0x000000000000FFFF),
-	cfbBits(0x0000000000000FFF),
-	cfbBits(0x00000000000000FF),
-	cfbBits(0x000000000000000F),
-    };
-PixelGroup cfbendtab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0xF000000000000000),
-	cfbBits(0xFF00000000000000),
-	cfbBits(0xFFF0000000000000),
-	cfbBits(0xFFFF000000000000),
-	cfbBits(0xFFFFF00000000000),
-	cfbBits(0xFFFFFF0000000000),
-	cfbBits(0xFFFFFFF000000000),
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0xFFFFFFFFF0000000),
-	cfbBits(0xFFFFFFFFFF000000),
-	cfbBits(0xFFFFFFFFFFF00000),
-	cfbBits(0xFFFFFFFFFFFF0000),
-	cfbBits(0xFFFFFFFFFFFFF000),
-	cfbBits(0xFFFFFFFFFFFFFF00),
-	cfbBits(0xFFFFFFFFFFFFFFF0),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 4 */
-
-#if PSZ == 8
-#if PGSZ == 32
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x00000000),
-	cfbBits(0x00FFFFFF),
-	cfbBits(0x0000FFFF),
-	cfbBits(0x000000FF)
-    };
-PixelGroup cfbendtab[] =
-    {
-	cfbBits(0x00000000),
-	cfbBits(0xFF000000),
-	cfbBits(0xFFFF0000),
-	cfbBits(0xFFFFFF00)
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0x00FFFFFFFFFFFFFF),
-	cfbBits(0x0000FFFFFFFFFFFF),
-	cfbBits(0x000000FFFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0x0000000000FFFFFF),
-	cfbBits(0x000000000000FFFF),
-	cfbBits(0x00000000000000FF)
-    };
-PixelGroup cfbendtab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0xFF00000000000000),
-	cfbBits(0xFFFF000000000000),
-	cfbBits(0xFFFFFF0000000000),
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0xFFFFFFFFFF000000),
-	cfbBits(0xFFFFFFFFFFFF0000),
-	cfbBits(0xFFFFFFFFFFFFFF00)
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 8 */
-
-#if PSZ == 16
-#if PGSZ == 32
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x00000000),
-	cfbBits(0x0000FFFF),
-    };
-PixelGroup cfbendtab[] =
-    {
-	cfbBits(0x00000000),
-	cfbBits(0xFFFF0000),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0x0000FFFFFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0x000000000000FFFF),
-    };
-PixelGroup cfbendtab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0xFFFF000000000000),
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0xFFFFFFFFFFFF0000),
-    };
-#endif /* PGSZ */
-#endif
-
-#if PSZ == 24
-#if PGSZ == 32
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x00000000),
-	cfbBits(0x000000FF),
-	cfbBits(0x0000FFFF),
-	cfbBits(0x00FFFFFF),
-    };
-PixelGroup cfbendtab[] = 
-    {
-	cfbBits(0x00000000),
-	cfbBits(0xFFFFFF00),
-	cfbBits(0xFFFF0000),
-	cfbBits(0xFF000000),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0x000000FFFFFFFFFF),
-	cfbBits(0x000000000000FFFF),
-    };
-PixelGroup cfbendtab[] = 
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0xFFFFFFFFFF000000),
-	cfbBits(0xFFFF000000000000),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 24 */
-
-#if PSZ == 32
-#if PGSZ == 32
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x00000000),
-    };
-PixelGroup cfbendtab[] = 
-    {
-	cfbBits(0x00000000),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstarttab[] =
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0x00000000FFFFFFFF),
-    };
-PixelGroup cfbendtab[] = 
-    {
-	cfbBits(0x0000000000000000),
-	cfbBits(0xFFFFFFFF00000000),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 32 */
-
-/* a hack, for now, since the entries for 0 need to be all
-   1 bits, not all zeros.
-   this means the code DOES NOT WORK for segments of length
-   0 (which is only a problem in the horizontal line code.)
-*/
-#if PSZ == 4
-#if PGSZ == 32
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0x0FFFFFFF),
-	cfbBits(0x00FFFFFF),
-	cfbBits(0x000FFFFF),
-	cfbBits(0x0000FFFF),
-	cfbBits(0x00000FFF),
-	cfbBits(0x000000FF),
-	cfbBits(0x0000000F)
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0xF0000000),
-	cfbBits(0xFF000000),
-	cfbBits(0xFFF00000),
-	cfbBits(0xFFFF0000),
-	cfbBits(0xFFFFF000),
-	cfbBits(0xFFFFFF00),
-	cfbBits(0xFFFFFFF0)
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0x0FFFFFFFFFFFFFFF),
-	cfbBits(0x00FFFFFFFFFFFFFF),
-	cfbBits(0x000FFFFFFFFFFFFF),
-	cfbBits(0x0000FFFFFFFFFFFF),
-	cfbBits(0x00000FFFFFFFFFFF),
-	cfbBits(0x000000FFFFFFFFFF),
-	cfbBits(0x0000000FFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0x000000000FFFFFFF),
-	cfbBits(0x0000000000FFFFFF),
-	cfbBits(0x00000000000FFFFF),
-	cfbBits(0x000000000000FFFF),
-	cfbBits(0x0000000000000FFF),
-	cfbBits(0x00000000000000FF),
-	cfbBits(0x000000000000000F),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0xF000000000000000),
-	cfbBits(0xFF00000000000000),
-	cfbBits(0xFFF0000000000000),
-	cfbBits(0xFFFF000000000000),
-	cfbBits(0xFFFFF00000000000),
-	cfbBits(0xFFFFFF0000000000),
-	cfbBits(0xFFFFFFF000000000),
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0xFFFFFFFFF0000000),
-	cfbBits(0xFFFFFFFFFF000000),
-	cfbBits(0xFFFFFFFFFFF00000),
-	cfbBits(0xFFFFFFFFFFFF0000),
-	cfbBits(0xFFFFFFFFFFFFF000),
-	cfbBits(0xFFFFFFFFFFFFFF00),
-	cfbBits(0xFFFFFFFFFFFFFFF0),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 4 */
-
-#if PSZ == 8
-#if PGSZ == 32
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0x00FFFFFF),
-	cfbBits(0x0000FFFF),
-	cfbBits(0x000000FF)
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0xFF000000),
-	cfbBits(0xFFFF0000),
-	cfbBits(0xFFFFFF00)
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0x00FFFFFFFFFFFFFF),
-	cfbBits(0x0000FFFFFFFFFFFF),
-	cfbBits(0x000000FFFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0x0000000000FFFFFF),
-	cfbBits(0x000000000000FFFF),
-	cfbBits(0x00000000000000FF),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0xFF00000000000000),
-	cfbBits(0xFFFF000000000000),
-	cfbBits(0xFFFFFF0000000000),
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0xFFFFFFFFFF000000),
-	cfbBits(0xFFFFFFFFFFFF0000),
-	cfbBits(0xFFFFFFFFFFFFFF00),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 8 */
-
-#if PSZ == 16
-#if PGSZ == 32
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0x0000FFFF),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0xFFFF0000),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0x0000FFFFFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0x000000000000FFFF),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0xFFFF000000000000),
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0xFFFFFFFFFFFF0000),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 16 */
-
-#if PSZ == 24
-#if PGSZ == 32
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0x000000FF),
-	cfbBits(0x0000FFFF),
-	cfbBits(0x00FFFFFF),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-	cfbBits(0xFFFFFF00),
-	cfbBits(0xFFFF0000),
-	cfbBits(0xFF000000),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0x0000FFFFFFFFFFFF),
-	cfbBits(0x000000FFFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0x0000000000FFFFFF),
-	cfbBits(0x000000000000FFFF),
-	cfbBits(0x00000000000000FF),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0xFFFFFFFFFFFF0000),
-	cfbBits(0xFFFFFFFFFF000000),
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0xFFFFFF0000000000),
-	cfbBits(0xFFFF000000000000),
-	cfbBits(0xFF00000000000000),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 24 */
-
-#if PSZ == 32
-#if PGSZ == 32
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFF),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbstartpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0x00000000FFFFFFFF),
-    };
-
-PixelGroup cfbendpartial[] =
-    {
-	cfbBits(0xFFFFFFFFFFFFFFFF),
-	cfbBits(0xFFFFFFFF00000000),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 32 */
-
-/* used for masking bits in bresenham lines
-   mask[n] is used to mask out all but bit n in a longword (n is a
-screen position).
-   rmask[n] is used to mask out the single bit at position n (n
-is a screen posiotion.)
-*/
-
-#if PSZ == 4
-#if PGSZ == 32
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xF0000000),
-	cfbBits(0x0F000000),
- 	cfbBits(0x00F00000),
- 	cfbBits(0x000F0000),
- 	cfbBits(0x0000F000),
- 	cfbBits(0x00000F00),
- 	cfbBits(0x000000F0),
- 	cfbBits(0x0000000F)
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x0FFFFFFF),
-	cfbBits(0xF0FFFFFF),
- 	cfbBits(0xFF0FFFFF),
- 	cfbBits(0xFFF0FFFF),
- 	cfbBits(0xFFFF0FFF),
- 	cfbBits(0xFFFFF0FF),
- 	cfbBits(0xFFFFFF0F),
- 	cfbBits(0xFFFFFFF0)
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xF000000000000000),
-	cfbBits(0x0F00000000000000),
- 	cfbBits(0x00F0000000000000),
- 	cfbBits(0x000F000000000000),
- 	cfbBits(0x0000F00000000000),
- 	cfbBits(0x00000F0000000000),
- 	cfbBits(0x000000F000000000),
- 	cfbBits(0x0000000F00000000),
-	cfbBits(0x00000000F0000000),
-	cfbBits(0x000000000F000000),
- 	cfbBits(0x0000000000F00000),
- 	cfbBits(0x00000000000F0000),
- 	cfbBits(0x000000000000F000),
- 	cfbBits(0x0000000000000F00),
- 	cfbBits(0x00000000000000F0),
- 	cfbBits(0x000000000000000F),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x0FFFFFFFFFFFFFFF),
-	cfbBits(0xF0FFFFFFFFFFFFFF),
- 	cfbBits(0xFF0FFFFFFFFFFFFF),
- 	cfbBits(0xFFF0FFFFFFFFFFFF),
- 	cfbBits(0xFFFF0FFFFFFFFFFF),
- 	cfbBits(0xFFFFF0FFFFFFFFFF),
- 	cfbBits(0xFFFFFF0FFFFFFFFF),
- 	cfbBits(0xFFFFFFF0FFFFFFFF),
-	cfbBits(0xFFFFFFFF0FFFFFFF),
-	cfbBits(0xFFFFFFFFF0FFFFFF),
- 	cfbBits(0xFFFFFFFFFF0FFFFF),
- 	cfbBits(0xFFFFFFFFFFF0FFFF),
- 	cfbBits(0xFFFFFFFFFFFF0FFF),
- 	cfbBits(0xFFFFFFFFFFFFF0FF),
- 	cfbBits(0xFFFFFFFFFFFFFF0F),
- 	cfbBits(0xFFFFFFFFFFFFFFF0),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 4 */
-
-#if PSZ == 8
-#if PGSZ == 32
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xFF000000),
- 	cfbBits(0x00FF0000),
- 	cfbBits(0x0000FF00),
- 	cfbBits(0x000000FF)
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x00FFFFFF),
- 	cfbBits(0xFF00FFFF),
- 	cfbBits(0xFFFF00FF),
- 	cfbBits(0xFFFFFF00)
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xFF00000000000000),
- 	cfbBits(0x00FF000000000000),
- 	cfbBits(0x0000FF0000000000),
- 	cfbBits(0x000000FF00000000),
-	cfbBits(0x00000000FF000000),
- 	cfbBits(0x0000000000FF0000),
- 	cfbBits(0x000000000000FF00),
- 	cfbBits(0x00000000000000FF),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x00FFFFFFFFFFFFFF),
- 	cfbBits(0xFF00FFFFFFFFFFFF),
- 	cfbBits(0xFFFF00FFFFFFFFFF),
- 	cfbBits(0xFFFFFF00FFFFFFFF),
-	cfbBits(0xFFFFFFFF00FFFFFF),
- 	cfbBits(0xFFFFFFFFFF00FFFF),
- 	cfbBits(0xFFFFFFFFFFFF00FF),
- 	cfbBits(0xFFFFFFFFFFFFFF00),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 8 */
-
-#if PSZ == 16
-#if PGSZ == 32
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xFFFF0000),
- 	cfbBits(0x0000FFFF),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x0000FFFF),
- 	cfbBits(0xFFFF0000),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xFFFF000000000000),
- 	cfbBits(0x0000FFFF00000000),
-	cfbBits(0x00000000FFFF0000),
- 	cfbBits(0x000000000000FFFF),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x0000FFFFFFFFFFFF),
- 	cfbBits(0xFFFF0000FFFFFFFF),
-	cfbBits(0xFFFFFFFF0000FFFF),
- 	cfbBits(0xFFFFFFFFFFFF0000),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 16 */
-
-#if PSZ == 24
-#if PGSZ == 32
-PixelGroup cfbmask[] =
-    {
- 	cfbBits(0xFFFFFF00),
-	cfbBits(0x00000000),
-	cfbBits(0x000000FF),
- 	cfbBits(0xFFFF0000),
-	cfbBits(0x0000FFFF),
-	cfbBits(0xFF000000),
-	cfbBits(0x00FFFFFF),
-	cfbBits(0x00000000),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x000000FF),
- 	cfbBits(0xFFFFFFFF),
- 	cfbBits(0xFFFFFF00),
-	cfbBits(0x0000FFFF),
-	cfbBits(0xFFFF0000),
-	cfbBits(0x00FFFFFF),
-	cfbBits(0xFF000000),
- 	cfbBits(0xFFFFFFFF),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xFFFFFF0000000000),
- 	cfbBits(0x000000FFFFFF0000),
- 	cfbBits(0x000000000000FFFF),
-    }; 
-PixelGroup cfbmask2[] =
-    {
- 	cfbBits(0x0000000000000000),
- 	cfbBits(0x0000000000000000),
-	cfbBits(0xFF00000000000000),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
- 	cfbBits(0x000000FFFFFFFFFF),
- 	cfbBits(0xFFFFFF000000FFFF),
- 	cfbBits(0xFFFFFFFFFFFF0000),
-    };
-PixelGroup cfbrmask2[] = 
-    {
- 	cfbBits(0x0000000000000000),
- 	cfbBits(0x0000000000000000),
- 	cfbBits(0x00FFFFFFFFFFFFFF),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 24 */
-
-#if PSZ == 32
-#if PGSZ == 32
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xFFFFFFFF),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0xFFFFFFFF),
-    };
-#else /* PGSZ == 64 */
-PixelGroup cfbmask[] =
-    {
-	cfbBits(0xFFFFFFFF00000000),
-	cfbBits(0x00000000FFFFFFFF),
-    }; 
-PixelGroup cfbrmask[] = 
-    {
-	cfbBits(0x00000000FFFFFFFF),
-	cfbBits(0xFFFFFFFF00000000),
-    };
-#endif /* PGSZ */
-#endif /* PSZ == 32 */
-
-/*
- * QuartetBitsTable contains PPW+1 masks whose binary values are masks in the
- * low order quartet that contain the number of bits specified in the
- * index.  This table is used by getstipplepixels.
- */
-#if PSZ == 4
-PixelGroup QuartetBitsTable[] = {
-#if PGSZ == 32
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 00000000 */
-    0x00000080,				/* 1 - 10000000 */
-    0x000000C0,                         /* 2 - 11000000 */
-    0x000000E0,                         /* 3 - 11100000 */
-    0x000000F0,                         /* 4 - 11110000 */
-    0x000000F8,                         /* 5 - 11111000 */
-    0x000000FC,                         /* 6 - 11111100 */
-    0x000000FE,                         /* 7 - 11111110 */
-    0x000000FF                          /* 8 - 11111111 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 00000000 */
-    0x00000001,                         /* 1 - 00000001 */
-    0x00000003,                         /* 2 - 00000011 */
-    0x00000007,                         /* 3 - 00000111 */
-    0x0000000F,                         /* 4 - 00001111 */
-    0x0000001F,                         /* 5 - 00011111 */
-    0x0000003F,                         /* 6 - 00111111 */
-    0x0000007F,                         /* 7 - 01111111 */
-    0x000000FF                          /* 8 - 11111111 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#else /* PGSZ == 64 */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 0000000000000000 */
-    0x00008000,				/* 1 - 1000000000000000 */
-    0x0000C000,                         /* 2 - 1100000000000000 */
-    0x0000E000,                         /* 3 - 1110000000000000 */
-    0x0000F000,                         /* 4 - 1111000000000000 */
-    0x0000F800,                         /* 5 - 1111100000000000 */
-    0x0000FC00,                         /* 6 - 1111110000000000 */
-    0x0000FE00,                         /* 7 - 1111111000000000 */
-    0x0000FF00,                         /* 8 - 1111111100000000 */
-    0x0000FF80,				/* 9 - 1111111110000000 */
-    0x0000FFC0,                         /* 10- 1111111111000000 */
-    0x0000FFE0,                         /* 11- 1111111111100000 */
-    0x0000FFF0,                         /* 12- 1111111111110000 */
-    0x0000FFF8,                         /* 13- 1111111111111000 */
-    0x0000FFFC,                         /* 14- 1111111111111100 */
-    0x0000FFFE,                         /* 15- 1111111111111110 */
-    0x0000FFFF,                         /* 16- 1111111111111111 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 0000000000000000 */
-    0x00000001,                         /* 1 - 0000000000000001 */
-    0x00000003,                         /* 2 - 0000000000000011 */
-    0x00000007,                         /* 3 - 0000000000000111 */
-    0x0000000F,                         /* 4 - 0000000000001111 */
-    0x0000001F,                         /* 5 - 0000000000011111 */
-    0x0000003F,                         /* 6 - 0000000000111111 */
-    0x0000007F,                         /* 7 - 0000000001111111 */
-    0x000000FF,                         /* 8 - 0000000011111111 */
-    0x000001FF,                         /* 9 - 0000000111111111 */
-    0x000003FF,                         /* 10- 0000001111111111 */
-    0x000007FF,                         /* 11- 0000011111111111 */
-    0x00000FFF,                         /* 12- 0000111111111111 */
-    0x00001FFF,                         /* 13- 0001111111111111 */
-    0x00003FFF,                         /* 14- 0011111111111111 */
-    0x00007FFF,                         /* 15- 0111111111111111 */
-    0x0000FFFF,                         /* 16- 1111111111111111 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#endif /* PGSZ */
-};
-#endif /* PSZ == 4 */
-
-#if PSZ == 8
-PixelGroup QuartetBitsTable[] = {
-#if PGSZ == 32
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 0000 */
-    0x00000008,                         /* 1 - 1000 */
-    0x0000000C,                         /* 2 - 1100 */
-    0x0000000E,                         /* 3 - 1110 */
-    0x0000000F                          /* 4 - 1111 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 0000 */
-    0x00000001,                         /* 1 - 0001 */
-    0x00000003,                         /* 2 - 0011 */
-    0x00000007,                         /* 3 - 0111 */
-    0x0000000F                          /* 4 - 1111 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#else /* PGSZ == 64 */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 00000000 */
-    0x00000080,                         /* 1 - 10000000 */
-    0x000000C0,                         /* 2 - 11000000 */
-    0x000000E0,                         /* 3 - 11100000 */
-    0x000000F0,                         /* 4 - 11110000 */
-    0x000000F8,                         /* 5 - 11111000 */
-    0x000000FC,                         /* 6 - 11111100 */
-    0x000000FE,                         /* 7 - 11111110 */
-    0x000000FF                          /* 8 - 11111111 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 00000000 */
-    0x00000001,                         /* 1 - 00000001 */
-    0x00000003,                         /* 2 - 00000011 */
-    0x00000007,                         /* 3 - 00000111 */
-    0x0000000F,                         /* 4 - 10000111 */
-    0x0000001F,                         /* 5 - 00011111 */
-    0x0000003F,                         /* 6 - 00111111 */
-    0x0000007F,                         /* 7 - 01111111 */
-    0x000000FF                          /* 8 - 11111111 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#endif /* PGSZ */
-};
-#endif /* PSZ == 8 */
-
-#if PSZ == 16
-PixelGroup QuartetBitsTable[] = {
-#if PGSZ == 32
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 00 */
-    0x00000002,                         /* 1 - 10 */
-    0x00000003,                         /* 2 - 11 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 00 */
-    0x00000001,                         /* 1 - 01 */
-    0x00000003,                         /* 2 - 11 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#else /* PGSZ == 64 */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 0000 */
-    0x00000008,                         /* 1 - 1000 */
-    0x0000000C,                         /* 2 - 1100 */
-    0x0000000E,                         /* 3 - 1110 */
-    0x0000000F,                         /* 4 - 1111 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 0000 */
-    0x00000001,                         /* 1 - 0001 */
-    0x00000003,                         /* 2 - 0011 */
-    0x00000007,                         /* 3 - 0111 */
-    0x0000000F,                         /* 4 - 1111 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#endif /* PGSZ */
-};
-#endif /* PSZ == 16 */
-
-#if PSZ == 24
-PixelGroup QuartetBitsTable[] = {
-#if PGSZ == 32
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 0 */
-    0x00000001,                         /* 1 - 1 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 0 */
-    0x00000001,                         /* 1 - 1 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#else /* PGSZ == 64 */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 00 */
-    0x00000002,                         /* 1 - 10 */
-    0x00000003,                         /* 2 - 11*/
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 00 */
-    0x00000001,                         /* 1 - 01 */
-    0x00000003,                         /* 2 - 11 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#endif /* PGSZ */
-};
-#endif /* PSZ == 24 */
-
-#if PSZ == 32
-PixelGroup QuartetBitsTable[] = {
-#if PGSZ == 32
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 0 */
-    0x00000001,                         /* 1 - 1 */
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 0 */
-    0x00000001,                         /* 1 - 1 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#else /* PGSZ == 64 */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-    0x00000000,                         /* 0 - 00 */
-    0x00000002,                         /* 1 - 10 */
-    0x00000003,                         /* 2 - 11*/
-#else /* (BITMAP_BIT_ORDER == LSBFirst */
-    0x00000000,                         /* 0 - 00 */
-    0x00000001,                         /* 1 - 01 */
-    0x00000003,                         /* 2 - 11 */
-#endif /* (BITMAP_BIT_ORDER == MSBFirst) */
-#endif /* PGSZ */
-};
-#endif /* PSZ == 32 */
-
-/*
- * QuartetPixelMaskTable is used by getstipplepixels to get a pixel mask
- * corresponding to a quartet of bits.  Note: the bit/byte order dependency
- * is handled by QuartetBitsTable above.
- */
-#if PSZ == 4
-#if PGSZ == 32
-PixelGroup QuartetPixelMaskTable[] = {
-    0x00000000,
-    0x0000000F,
-    0x000000F0,
-    0x000000FF,
-    0x00000F00,
-    0x00000F0F,
-    0x00000FF0,
-    0x00000FFF,
-    0x0000F000,
-    0x0000F00F,
-    0x0000F0F0,
-    0x0000F0FF,
-    0x0000FF00,
-    0x0000FF0F,
-    0x0000FFF0,
-    0x0000FFFF,
-    0x000F0000,
-    0x000F000F,
-    0x000F00F0,
-    0x000F00FF,
-    0x000F0F00,
-    0x000F0F0F,
-    0x000F0FF0,
-    0x000F0FFF,
-    0x000FF000,
-    0x000FF00F,
-    0x000FF0F0,
-    0x000FF0FF,
-    0x000FFF00,
-    0x000FFF0F,
-    0x000FFFF0,
-    0x000FFFFF,
-    0x00F00000,
-    0x00F0000F,
-    0x00F000F0,
-    0x00F000FF,
-    0x00F00F00,
-    0x00F00F0F,
-    0x00F00FF0,
-    0x00F00FFF,
-    0x00F0F000,
-    0x00F0F00F,
-    0x00F0F0F0,
-    0x00F0F0FF,
-    0x00F0FF00,
-    0x00F0FF0F,
-    0x00F0FFF0,
-    0x00F0FFFF,
-    0x00FF0000,
-    0x00FF000F,
-    0x00FF00F0,
-    0x00FF00FF,
-    0x00FF0F00,
-    0x00FF0F0F,
-    0x00FF0FF0,
-    0x00FF0FFF,
-    0x00FFF000,
-    0x00FFF00F,
-    0x00FFF0F0,
-    0x00FFF0FF,
-    0x00FFFF00,
-    0x00FFFF0F,
-    0x00FFFFF0,
-    0x00FFFFFF,
-    0x0F000000,
-    0x0F00000F,
-    0x0F0000F0,
-    0x0F0000FF,
-    0x0F000F00,
-    0x0F000F0F,
-    0x0F000FF0,
-    0x0F000FFF,
-    0x0F00F000,
-    0x0F00F00F,
-    0x0F00F0F0,
-    0x0F00F0FF,
-    0x0F00FF00,
-    0x0F00FF0F,
-    0x0F00FFF0,
-    0x0F00FFFF,
-    0x0F0F0000,
-    0x0F0F000F,
-    0x0F0F00F0,
-    0x0F0F00FF,
-    0x0F0F0F00,
-    0x0F0F0F0F,
-    0x0F0F0FF0,
-    0x0F0F0FFF,
-    0x0F0FF000,
-    0x0F0FF00F,
-    0x0F0FF0F0,
-    0x0F0FF0FF,
-    0x0F0FFF00,
-    0x0F0FFF0F,
-    0x0F0FFFF0,
-    0x0F0FFFFF,
-    0x0FF00000,
-    0x0FF0000F,
-    0x0FF000F0,
-    0x0FF000FF,
-    0x0FF00F00,
-    0x0FF00F0F,
-    0x0FF00FF0,
-    0x0FF00FFF,
-    0x0FF0F000,
-    0x0FF0F00F,
-    0x0FF0F0F0,
-    0x0FF0F0FF,
-    0x0FF0FF00,
-    0x0FF0FF0F,
-    0x0FF0FFF0,
-    0x0FF0FFFF,
-    0x0FFF0000,
-    0x0FFF000F,
-    0x0FFF00F0,
-    0x0FFF00FF,
-    0x0FFF0F00,
-    0x0FFF0F0F,
-    0x0FFF0FF0,
-    0x0FFF0FFF,
-    0x0FFFF000,
-    0x0FFFF00F,
-    0x0FFFF0F0,
-    0x0FFFF0FF,
-    0x0FFFFF00,
-    0x0FFFFF0F,
-    0x0FFFFFF0,
-    0x0FFFFFFF,
-    0xF0000000,
-    0xF000000F,
-    0xF00000F0,
-    0xF00000FF,
-    0xF0000F00,
-    0xF0000F0F,
-    0xF0000FF0,
-    0xF0000FFF,
-    0xF000F000,
-    0xF000F00F,
-    0xF000F0F0,
-    0xF000F0FF,
-    0xF000FF00,
-    0xF000FF0F,
-    0xF000FFF0,
-    0xF000FFFF,
-    0xF00F0000,
-    0xF00F000F,
-    0xF00F00F0,
-    0xF00F00FF,
-    0xF00F0F00,
-    0xF00F0F0F,
-    0xF00F0FF0,
-    0xF00F0FFF,
-    0xF00FF000,
-    0xF00FF00F,
-    0xF00FF0F0,
-    0xF00FF0FF,
-    0xF00FFF00,
-    0xF00FFF0F,
-    0xF00FFFF0,
-    0xF00FFFFF,
-    0xF0F00000,
-    0xF0F0000F,
-    0xF0F000F0,
-    0xF0F000FF,
-    0xF0F00F00,
-    0xF0F00F0F,
-    0xF0F00FF0,
-    0xF0F00FFF,
-    0xF0F0F000,
-    0xF0F0F00F,
-    0xF0F0F0F0,
-    0xF0F0F0FF,
-    0xF0F0FF00,
-    0xF0F0FF0F,
-    0xF0F0FFF0,
-    0xF0F0FFFF,
-    0xF0FF0000,
-    0xF0FF000F,
-    0xF0FF00F0,
-    0xF0FF00FF,
-    0xF0FF0F00,
-    0xF0FF0F0F,
-    0xF0FF0FF0,
-    0xF0FF0FFF,
-    0xF0FFF000,
-    0xF0FFF00F,
-    0xF0FFF0F0,
-    0xF0FFF0FF,
-    0xF0FFFF00,
-    0xF0FFFF0F,
-    0xF0FFFFF0,
-    0xF0FFFFFF,
-    0xFF000000,
-    0xFF00000F,
-    0xFF0000F0,
-    0xFF0000FF,
-    0xFF000F00,
-    0xFF000F0F,
-    0xFF000FF0,
-    0xFF000FFF,
-    0xFF00F000,
-    0xFF00F00F,
-    0xFF00F0F0,
-    0xFF00F0FF,
-    0xFF00FF00,
-    0xFF00FF0F,
-    0xFF00FFF0,
-    0xFF00FFFF,
-    0xFF0F0000,
-    0xFF0F000F,
-    0xFF0F00F0,
-    0xFF0F00FF,
-    0xFF0F0F00,
-    0xFF0F0F0F,
-    0xFF0F0FF0,
-    0xFF0F0FFF,
-    0xFF0FF000,
-    0xFF0FF00F,
-    0xFF0FF0F0,
-    0xFF0FF0FF,
-    0xFF0FFF00,
-    0xFF0FFF0F,
-    0xFF0FFFF0,
-    0xFF0FFFFF,
-    0xFFF00000,
-    0xFFF0000F,
-    0xFFF000F0,
-    0xFFF000FF,
-    0xFFF00F00,
-    0xFFF00F0F,
-    0xFFF00FF0,
-    0xFFF00FFF,
-    0xFFF0F000,
-    0xFFF0F00F,
-    0xFFF0F0F0,
-    0xFFF0F0FF,
-    0xFFF0FF00,
-    0xFFF0FF0F,
-    0xFFF0FFF0,
-    0xFFF0FFFF,
-    0xFFFF0000,
-    0xFFFF000F,
-    0xFFFF00F0,
-    0xFFFF00FF,
-    0xFFFF0F00,
-    0xFFFF0F0F,
-    0xFFFF0FF0,
-    0xFFFF0FFF,
-    0xFFFFF000,
-    0xFFFFF00F,
-    0xFFFFF0F0,
-    0xFFFFF0FF,
-    0xFFFFFF00,
-    0xFFFFFF0F,
-    0xFFFFFFF0,
-    0xFFFFFFFF,
-};
-#else /* PGSZ == 64 */
-No QuartetPixelMaskTable for psz=PSZ
-this would be a 64K entry table, a bit much I think.
-Try breaking things in two:
-mask = table[index&0xff00]<<32 | table[index&0xff]
-#endif /* PGSZ */
-#endif /* PSZ == 4 */
-
-#if PSZ == 8
-PixelGroup QuartetPixelMaskTable[] = {
-#if PGSZ == 32
-    0x00000000,
-    0x000000FF,
-    0x0000FF00,
-    0x0000FFFF,
-    0x00FF0000,
-    0x00FF00FF,
-    0x00FFFF00,
-    0x00FFFFFF,
-    0xFF000000,
-    0xFF0000FF,
-    0xFF00FF00,
-    0xFF00FFFF,
-    0xFFFF0000,
-    0xFFFF00FF,
-    0xFFFFFF00,
-    0xFFFFFFFF
-#else /* PGSZ == 64 */
-    0x0000000000000000,    0x00000000000000FF,
-    0x000000000000FF00,    0x000000000000FFFF,
-    0x0000000000FF0000,    0x0000000000FF00FF,
-    0x0000000000FFFF00,    0x0000000000FFFFFF,
-    0x00000000FF000000,    0x00000000FF0000FF,
-    0x00000000FF00FF00,    0x00000000FF00FFFF,
-    0x00000000FFFF0000,    0x00000000FFFF00FF,
-    0x00000000FFFFFF00,    0x00000000FFFFFFFF,
-    0x000000FF00000000,    0x000000FF000000FF,
-    0x000000FF0000FF00,    0x000000FF0000FFFF,
-    0x000000FF00FF0000,    0x000000FF00FF00FF,
-    0x000000FF00FFFF00,    0x000000FF00FFFFFF,
-    0x000000FFFF000000,    0x000000FFFF0000FF,
-    0x000000FFFF00FF00,    0x000000FFFF00FFFF,
-    0x000000FFFFFF0000,    0x000000FFFFFF00FF,
-    0x000000FFFFFFFF00,    0x000000FFFFFFFFFF,
-    0x0000FF0000000000,    0x0000FF00000000FF,
-    0x0000FF000000FF00,    0x0000FF000000FFFF,
-    0x0000FF0000FF0000,    0x0000FF0000FF00FF,
-    0x0000FF0000FFFF00,    0x0000FF0000FFFFFF,
-    0x0000FF00FF000000,    0x0000FF00FF0000FF,
-    0x0000FF00FF00FF00,    0x0000FF00FF00FFFF,
-    0x0000FF00FFFF0000,    0x0000FF00FFFF00FF,
-    0x0000FF00FFFFFF00,    0x0000FF00FFFFFFFF,
-    0x0000FFFF00000000,    0x0000FFFF000000FF,
-    0x0000FFFF0000FF00,    0x0000FFFF0000FFFF,
-    0x0000FFFF00FF0000,    0x0000FFFF00FF00FF,
-    0x0000FFFF00FFFF00,    0x0000FFFF00FFFFFF,
-    0x0000FFFFFF000000,    0x0000FFFFFF0000FF,
-    0x0000FFFFFF00FF00,    0x0000FFFFFF00FFFF,
-    0x0000FFFFFFFF0000,    0x0000FFFFFFFF00FF,
-    0x0000FFFFFFFFFF00,    0x0000FFFFFFFFFFFF,
-    0x00FF000000000000,    0x00FF0000000000FF,
-    0x00FF00000000FF00,    0x00FF00000000FFFF,
-    0x00FF000000FF0000,    0x00FF000000FF00FF,
-    0x00FF000000FFFF00,    0x00FF000000FFFFFF,
-    0x00FF0000FF000000,    0x00FF0000FF0000FF,
-    0x00FF0000FF00FF00,    0x00FF0000FF00FFFF,
-    0x00FF0000FFFF0000,    0x00FF0000FFFF00FF,
-    0x00FF0000FFFFFF00,    0x00FF0000FFFFFFFF,
-    0x00FF00FF00000000,    0x00FF00FF000000FF,
-    0x00FF00FF0000FF00,    0x00FF00FF0000FFFF,
-    0x00FF00FF00FF0000,    0x00FF00FF00FF00FF,
-    0x00FF00FF00FFFF00,    0x00FF00FF00FFFFFF,
-    0x00FF00FFFF000000,    0x00FF00FFFF0000FF,
-    0x00FF00FFFF00FF00,    0x00FF00FFFF00FFFF,
-    0x00FF00FFFFFF0000,    0x00FF00FFFFFF00FF,
-    0x00FF00FFFFFFFF00,    0x00FF00FFFFFFFFFF,
-    0x00FFFF0000000000,    0x00FFFF00000000FF,
-    0x00FFFF000000FF00,    0x00FFFF000000FFFF,
-    0x00FFFF0000FF0000,    0x00FFFF0000FF00FF,
-    0x00FFFF0000FFFF00,    0x00FFFF0000FFFFFF,
-    0x00FFFF00FF000000,    0x00FFFF00FF0000FF,
-    0x00FFFF00FF00FF00,    0x00FFFF00FF00FFFF,
-    0x00FFFF00FFFF0000,    0x00FFFF00FFFF00FF,
-    0x00FFFF00FFFFFF00,    0x00FFFF00FFFFFFFF,
-    0x00FFFFFF00000000,    0x00FFFFFF000000FF,
-    0x00FFFFFF0000FF00,    0x00FFFFFF0000FFFF,
-    0x00FFFFFF00FF0000,    0x00FFFFFF00FF00FF,
-    0x00FFFFFF00FFFF00,    0x00FFFFFF00FFFFFF,
-    0x00FFFFFFFF000000,    0x00FFFFFFFF0000FF,
-    0x00FFFFFFFF00FF00,    0x00FFFFFFFF00FFFF,
-    0x00FFFFFFFFFF0000,    0x00FFFFFFFFFF00FF,
-    0x00FFFFFFFFFFFF00,    0x00FFFFFFFFFFFFFF,
-    0xFF00000000000000,    0xFF000000000000FF,
-    0xFF0000000000FF00,    0xFF0000000000FFFF,
-    0xFF00000000FF0000,    0xFF00000000FF00FF,
-    0xFF00000000FFFF00,    0xFF00000000FFFFFF,
-    0xFF000000FF000000,    0xFF000000FF0000FF,
-    0xFF000000FF00FF00,    0xFF000000FF00FFFF,
-    0xFF000000FFFF0000,    0xFF000000FFFF00FF,
-    0xFF000000FFFFFF00,    0xFF000000FFFFFFFF,
-    0xFF0000FF00000000,    0xFF0000FF000000FF,
-    0xFF0000FF0000FF00,    0xFF0000FF0000FFFF,
-    0xFF0000FF00FF0000,    0xFF0000FF00FF00FF,
-    0xFF0000FF00FFFF00,    0xFF0000FF00FFFFFF,
-    0xFF0000FFFF000000,    0xFF0000FFFF0000FF,
-    0xFF0000FFFF00FF00,    0xFF0000FFFF00FFFF,
-    0xFF0000FFFFFF0000,    0xFF0000FFFFFF00FF,
-    0xFF0000FFFFFFFF00,    0xFF0000FFFFFFFFFF,
-    0xFF00FF0000000000,    0xFF00FF00000000FF,
-    0xFF00FF000000FF00,    0xFF00FF000000FFFF,
-    0xFF00FF0000FF0000,    0xFF00FF0000FF00FF,
-    0xFF00FF0000FFFF00,    0xFF00FF0000FFFFFF,
-    0xFF00FF00FF000000,    0xFF00FF00FF0000FF,
-    0xFF00FF00FF00FF00,    0xFF00FF00FF00FFFF,
-    0xFF00FF00FFFF0000,    0xFF00FF00FFFF00FF,
-    0xFF00FF00FFFFFF00,    0xFF00FF00FFFFFFFF,
-    0xFF00FFFF00000000,    0xFF00FFFF000000FF,
-    0xFF00FFFF0000FF00,    0xFF00FFFF0000FFFF,
-    0xFF00FFFF00FF0000,    0xFF00FFFF00FF00FF,
-    0xFF00FFFF00FFFF00,    0xFF00FFFF00FFFFFF,
-    0xFF00FFFFFF000000,    0xFF00FFFFFF0000FF,
-    0xFF00FFFFFF00FF00,    0xFF00FFFFFF00FFFF,
-    0xFF00FFFFFFFF0000,    0xFF00FFFFFFFF00FF,
-    0xFF00FFFFFFFFFF00,    0xFF00FFFFFFFFFFFF,
-    0xFFFF000000000000,    0xFFFF0000000000FF,
-    0xFFFF00000000FF00,    0xFFFF00000000FFFF,
-    0xFFFF000000FF0000,    0xFFFF000000FF00FF,
-    0xFFFF000000FFFF00,    0xFFFF000000FFFFFF,
-    0xFFFF0000FF000000,    0xFFFF0000FF0000FF,
-    0xFFFF0000FF00FF00,    0xFFFF0000FF00FFFF,
-    0xFFFF0000FFFF0000,    0xFFFF0000FFFF00FF,
-    0xFFFF0000FFFFFF00,    0xFFFF0000FFFFFFFF,
-    0xFFFF00FF00000000,    0xFFFF00FF000000FF,
-    0xFFFF00FF0000FF00,    0xFFFF00FF0000FFFF,
-    0xFFFF00FF00FF0000,    0xFFFF00FF00FF00FF,
-    0xFFFF00FF00FFFF00,    0xFFFF00FF00FFFFFF,
-    0xFFFF00FFFF000000,    0xFFFF00FFFF0000FF,
-    0xFFFF00FFFF00FF00,    0xFFFF00FFFF00FFFF,
-    0xFFFF00FFFFFF0000,    0xFFFF00FFFFFF00FF,
-    0xFFFF00FFFFFFFF00,    0xFFFF00FFFFFFFFFF,
-    0xFFFFFF0000000000,    0xFFFFFF00000000FF,
-    0xFFFFFF000000FF00,    0xFFFFFF000000FFFF,
-    0xFFFFFF0000FF0000,    0xFFFFFF0000FF00FF,
-    0xFFFFFF0000FFFF00,    0xFFFFFF0000FFFFFF,
-    0xFFFFFF00FF000000,    0xFFFFFF00FF0000FF,
-    0xFFFFFF00FF00FF00,    0xFFFFFF00FF00FFFF,
-    0xFFFFFF00FFFF0000,    0xFFFFFF00FFFF00FF,
-    0xFFFFFF00FFFFFF00,    0xFFFFFF00FFFFFFFF,
-    0xFFFFFFFF00000000,    0xFFFFFFFF000000FF,
-    0xFFFFFFFF0000FF00,    0xFFFFFFFF0000FFFF,
-    0xFFFFFFFF00FF0000,    0xFFFFFFFF00FF00FF,
-    0xFFFFFFFF00FFFF00,    0xFFFFFFFF00FFFFFF,
-    0xFFFFFFFFFF000000,    0xFFFFFFFFFF0000FF,
-    0xFFFFFFFFFF00FF00,    0xFFFFFFFFFF00FFFF,
-    0xFFFFFFFFFFFF0000,    0xFFFFFFFFFFFF00FF,
-    0xFFFFFFFFFFFFFF00,    0xFFFFFFFFFFFFFFFF,
-#endif /* PGSZ */
-};
-#endif /* PSZ == 8 */
-
-#if PSZ == 16
-PixelGroup QuartetPixelMaskTable[] = {
-#if PGSZ == 32
-    0x00000000,
-    0x0000FFFF,
-    0xFFFF0000,
-    0xFFFFFFFF,
-#else /* PGSZ == 64 */
-    0x0000000000000000,    0x000000000000FFFF,
-    0x00000000FFFF0000,    0x00000000FFFFFFFF,
-    0x0000FFFF00000000,    0x0000FFFF0000FFFF,
-    0x0000FFFFFFFF0000,    0x0000FFFFFFFFFFFF,
-    0xFFFF000000000000,    0xFFFF00000000FFFF,
-    0xFFFF0000FFFF0000,    0xFFFF0000FFFFFFFF,
-    0xFFFFFFFF00000000,    0xFFFFFFFF0000FFFF,
-    0xFFFFFFFFFFFF0000,    0xFFFFFFFFFFFFFFFF,
-#endif /* PGSZ */
-};
-#endif /* PSZ == 16 */
-
-#if PSZ == 24
-PixelGroup QuartetPixelMaskTable[] = {
-#if PGSZ == 32
-/* Four pixels consist three pixel groups....*/
-    0x00000000, 0x00FFFFFF, /*0x00000000, *//*0*/
-/*    0x00000000, 0x00000000, 0x00000000,*/ /*0*/
-/*    0x00FFFFFF, 0x00000000, 0x00000000,*/ /*1*/
-/*    0xFF000000, 0x0000FFFF, 0x00000000,*/ /*2*/
-/*    0xFFFFFFFF, 0x0000FFFF, 0x00000000,*/ /*3*/
-/*    0x00000000, 0xFFFF0000, 0x000000FF,*/ /*4*/
-/*    0x00FFFFFF, 0xFFFF0000, 0x000000FF,*/ /*5*/
-/*    0xFF000000, 0xFFFFFFFF, 0x000000FF,*/ /*6*/
-/*    0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,*/ /*7*/
-/*    0x00000000, 0x00000000, 0xFFFFFF00,*/ /*8*/
-/*    0x00FFFFFF, 0x00000000, 0xFFFFFF00,*/ /*9*/
-/*    0xFF000000, 0x0000FFFF, 0xFFFFFF00,*/ /*10*/
-/*    0xFFFFFFFF, 0x0000FFFF, 0xFFFFFF00,*/ /*11*/
-/*    0x00000000, 0xFFFF0000, 0xFFFFFFFF,*/ /*12*/
-/*    0x00FFFFFF, 0xFFFF0000, 0xFFFFFFFF,*/ /*13*/
-/*    0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF,*/ /*14*/
-/*    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,*/ /*15*/
-#else /* PGSZ == 64 */
-    0x0000000000000000,    0x0000000000FFFFFF,
-    0x0000FFFFFF000000,    0xFFFFFFFFFFFFFFFF
-#endif /* PGSZ */
-};
-#endif /* PSZ == 24 */
-
-#if PSZ == 32
-PixelGroup QuartetPixelMaskTable[] = {
-#if PGSZ == 32
-    0x00000000,
-    0xFFFFFFFF,
-#else /* PGSZ == 64 */
-    0x0000000000000000,
-    0x00000000FFFFFFFF,
-    0xFFFFFFFF00000000,
-    0xFFFFFFFFFFFFFFFF
-#endif /* PGSZ */
-};
-#endif /* PSZ == 32 */
-
-#if PSZ == 24
-int cfb24Shift[] = 
-#if	(BITMAP_BIT_ORDER == MSBFirst)
-{8,0,16,16,8,24,0,0};
-#else	/* (BITMAP_BIT_ORDER == LSBFirst) */
-{0,0,24,8,16,16,8,0};
-#endif	/* (BITMAP_BIT_ORDER == MSBFirst) */
-#endif
diff --git a/cfb/cfbmskbits.h b/cfb/cfbmskbits.h
deleted file mode 100644
index 5ee9125..0000000
--- a/cfb/cfbmskbits.h
+++ /dev/null
@@ -1,854 +0,0 @@
-/************************************************************
-Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
-
-                    All Rights Reserved
-
-Permission  to  use,  copy,  modify,  and  distribute   this
-software  and  its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright no-
-tice  appear  in all copies and that both that copyright no-
-tice and this permission notice appear in  supporting  docu-
-mentation,  and  that the names of Sun or The Open Group
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and The Open Group make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
-implied warranty.
-
-SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
-NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
-ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
-PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-/* Optimizations for PSZ == 32 added by Kyle Marvin (marvin at vitec.com) */
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	"servermd.h"
-#include	"compiler.h"
-
-/*
- * ==========================================================================
- * Converted from mfb to support memory-mapped color framebuffer by smarks at sun, 
- * April-May 1987.
- *
- * The way I did the conversion was to consider each longword as an
- * array of four bytes instead of an array of 32 one-bit pixels.  So
- * getbits() and putbits() retain much the same calling sequence, but
- * they move bytes around instead of bits.  Of course, this entails the
- * removal of all of the one-bit-pixel dependencies from the other
- * files, but the major bit-hacking stuff should be covered here.
- *
- * I've created some new macros that make it easier to understand what's 
- * going on in the pixel calculations, and that make it easier to change the 
- * pixel size.
- *
- * name	    explanation
- * ----	    -----------
- * PSZ	    pixel size (in bits)
- * PGSZ     pixel group size (in bits)
- * PGSZB    pixel group size (in bytes)
- * PGSZBMSK mask with lowest PGSZB bits set to 1
- * PPW	    pixels per word (pixels per pixel group)
- * PPWMSK   mask with lowest PPW bits set to 1
- * PLST	    index of last pixel in a word (should be PPW-1)
- * PIM	    pixel index mask (index within a pixel group)
- * PWSH	    pixel-to-word shift (should be log2(PPW))
- * PMSK	    mask with lowest PSZ bits set to 1
- *
- *
- * Here are some sample values.  In the notation cfbA,B: A is PSZ, and
- * B is PGSZB.  All the other values are derived from these
- * two.  This table does not show all combinations!
- *
- * name	    cfb8,4    cfb24,4      cfb32,4    cfb8,8    cfb24,8    cfb32,8
- * ----	    ------    -------      ------     ------    ------     -------
- * PSZ	      8	        24	     32          8        24         32
- * PGSZ	     32         32           32         64        64         64
- * PGSZB      4          4            4          8         8          8
- * PGSZBMSK 0xF        0xF?         0xF        0xFF      0xFF       0xFF
- * PPW	      4	         1            1          8         2          2
- * PPWMSK   0xF        0x1          0x1        0xFF       0x3?       0x3    
- * PLST	      3	         0            0	         7         1          1
- * PIM	    0x3        0x0          0x0	       0x7       0x1?        0x1
- * PWSH	      2	         0            0	         3         1          1
- * PMSK	    0xFF      0xFFFFFF     0xFFFFFFFF 0xFF      0xFFFFFF   0xFFFFFFFF
- *
- *
- * I have also added a new macro, PFILL, that takes one pixel and
- * replicates it throughout a word.  This macro definition is dependent
- * upon pixel and word size; it doesn't use macros like PPW and so
- * forth.  Examples: for monochrome, PFILL(1) => 0xffffffff, PFILL(0) =>
- * 0x00000000.  For 8-bit color, PFILL(0x5d) => 0x5d5d5d5d.  This macro
- * is used primarily for replicating a plane mask into a word.
- *
- * Color framebuffers operations also support the notion of a plane
- * mask.  This mask determines which planes of the framebuffer can be
- * altered; the others are left unchanged.  I have added another
- * parameter to the putbits and putbitsrop macros that is the plane
- * mask.
- * ==========================================================================
- *
- * Keith Packard (keithp at suse.com)
- * 64bit code is no longer supported; it requires DIX support
- * for repadding images which significantly impacts performance
- */
-
-/*
- *  PSZ needs to be defined before we get here.  Usually it comes from a
- *  -DPSZ=foo on the compilation command line.
- */
-
-#ifndef PSZ
-#define PSZ 8
-#endif
-
-/*
- *  PixelGroup is the data type used to operate on groups of pixels.
- *  We typedef it here to CARD32 with the assumption that you
- *  want to manipulate 32 bits worth of pixels at a time as you can.  If CARD32
- *  is not appropriate for your server, define it to something else
- *  before including this file.  In this case you will also have to define
- *  PGSZB to the size in bytes of PixelGroup.
- */
-#ifndef PixelGroup
-#define PixelGroup CARD32
-#define PGSZB 4
-#endif /* PixelGroup */
-    
-#ifndef CfbBits
-#define CfbBits	CARD32
-#endif
-
-#define PGSZ	(PGSZB << 3)
-#define PPW	(PGSZ/PSZ)
-#define PLST	(PPW-1)
-#define PIM	PLST
-#define PMSK	(((PixelGroup)1 << PSZ) - 1)
-#define PPWMSK  (((PixelGroup)1 << PPW) - 1) /* instead of BITMSK */
-#define PGSZBMSK (((PixelGroup)1 << PGSZB) - 1)
-
-/*  set PWSH = log2(PPW) using brute force */
-
-#if PPW == 1
-#define PWSH 0
-#else
-#if PPW == 2
-#define PWSH 1
-#else
-#if PPW == 4
-#define PWSH 2
-#else
-#if PPW == 8
-#define PWSH 3
-#else
-#if PPW == 16
-#define PWSH 4
-#endif /* PPW == 16 */
-#endif /* PPW == 8 */
-#endif /* PPW == 4 */
-#endif /* PPW == 2 */
-#endif /* PPW == 1 */
-
-/*  Defining PIXEL_ADDR means that individual pixels are addressable by this
- *  machine (as type PixelType).  A possible CFB architecture which supported
- *  8-bits-per-pixel on a non byte-addressable machine would not have this
- *  defined.
- *
- *  Defining FOUR_BIT_CODE means that cfb knows how to stipple on this machine;
- *  eventually, stippling code for 16 and 32 bit devices should be written
- *  which would allow them to also use FOUR_BIT_CODE.  There isn't that
- *  much to do in those cases, but it would make them quite a bit faster.
- */
-
-#if PSZ == 8
-#define PIXEL_ADDR
-typedef CARD8 PixelType;
-#define FOUR_BIT_CODE
-#endif
-
-#if PSZ == 16
-#define PIXEL_ADDR
-typedef CARD16 PixelType;
-#endif
-
-#if PSZ == 24
-#undef PMSK
-#define PMSK	0xFFFFFF
-/*#undef PIM
-#define PIM 3*/
-#define PIXEL_ADDR
-typedef CARD32 PixelType;
-#endif
-
-#if PSZ == 32
-#undef PMSK
-#define PMSK	0xFFFFFFFF
-#define PIXEL_ADDR
-typedef CARD32 PixelType;
-#endif
-
-
-/* the following notes use the following conventions:
-SCREEN LEFT				SCREEN RIGHT
-in this file and maskbits.c, left and right refer to screen coordinates,
-NOT bit numbering in registers.
-
-cfbstarttab[n] 
-	pixels[0,n-1] = 0's	pixels[n,PPW-1] = 1's
-cfbendtab[n] =
-	pixels[0,n-1] = 1's	pixels[n,PPW-1] = 0's
-
-cfbstartpartial[], cfbendpartial[]
-	these are used as accelerators for doing putbits and masking out
-bits that are all contained between longword boudaries.  the extra
-256 bytes of data seems a small price to pay -- code is smaller,
-and narrow things (e.g. window borders) go faster.
-
-the names may seem misleading; they are derived not from which end
-of the word the bits are turned on, but at which end of a scanline
-the table tends to be used.
-
-look at the tables and macros to understand boundary conditions.
-(careful readers will note that starttab[n] = ~endtab[n] for n != 0)
-
------------------------------------------------------------------------
-these two macros depend on the screen's bit ordering.
-in both of them x is a screen position.  they are used to
-combine bits collected from multiple longwords into a
-single destination longword, and to unpack a single
-source longword into multiple destinations.
-
-SCRLEFT(dst, x)
-	takes dst[x, PPW] and moves them to dst[0, PPW-x]
-	the contents of the rest of dst are 0 ONLY IF
-	dst is UNSIGNED.
-	is cast as an unsigned.
-	this is a right shift on the VAX, left shift on
-	Sun and pc-rt.
-
-SCRRIGHT(dst, x)
-	takes dst[0,x] and moves them to dst[PPW-x, PPW]
-	the contents of the rest of dst are 0 ONLY IF
-	dst is UNSIGNED.
-	this is a left shift on the VAX, right shift on
-	Sun and pc-rt.
-
-
-the remaining macros are cpu-independent; all bit order dependencies
-are built into the tables and the two macros above.
-
-maskbits(x, w, startmask, endmask, nlw)
-	for a span of width w starting at position x, returns
-a mask for ragged pixels at start, mask for ragged pixels at end,
-and the number of whole longwords between the ends.
-
-maskpartialbits(x, w, mask)
-	works like maskbits(), except all the pixels are in the
-	same longword (i.e. (x&0xPIM + w) <= PPW)
-
-mask32bits(x, w, startmask, endmask, nlw)
-	as maskbits, but does not calculate nlw.  it is used by
-	cfbGlyphBlt to put down glyphs <= PPW bits wide.
-
-getbits(psrc, x, w, dst)
-	starting at position x in psrc (x < PPW), collect w
-	pixels and put them in the screen left portion of dst.
-	psrc is a longword pointer.  this may span longword boundaries.
-	it special-cases fetching all w bits from one longword.
-
-	+--------+--------+		+--------+
-	|    | m |n|      |	==> 	| m |n|  |
-	+--------+--------+		+--------+
-	    x      x+w			0     w
-	psrc     psrc+1			dst
-			m = PPW - x
-			n = w - m
-
-	implementation:
-	get m pixels, move to screen-left of dst, zeroing rest of dst;
-	get n pixels from next word, move screen-right by m, zeroing
-		 lower m pixels of word.
-	OR the two things together.
-
-putbits(src, x, w, pdst, planemask)
-	starting at position x in pdst, put down the screen-leftmost
-	w bits of src.  pdst is a longword pointer.  this may
-	span longword boundaries.
-	it special-cases putting all w bits into the same longword.
-
-	+--------+			+--------+--------+
-	| m |n|  |		==>	|    | m |n|      |
-	+--------+			+--------+--------+
-	0     w				     x     x+w
-	dst				pdst     pdst+1
-			m = PPW - x
-			n = w - m
-
-	implementation:
-	get m pixels, shift screen-right by x, zero screen-leftmost x
-		pixels; zero rightmost m bits of *pdst and OR in stuff
-		from before the semicolon.
-	shift src screen-left by m, zero bits n-32;
-		zero leftmost n pixels of *(pdst+1) and OR in the
-		stuff from before the semicolon.
-
-putbitsrop(src, x, w, pdst, planemask, ROP)
-	like putbits but calls DoRop with the rasterop ROP (see cfb.h for
-	DoRop)
-
-getleftbits(psrc, w, dst)
-	get the leftmost w (w<=PPW) bits from *psrc and put them
-	in dst.  this is used by the cfbGlyphBlt code for glyphs
-	<=PPW bits wide.
-*/
-
-#if	(BITMAP_BIT_ORDER == MSBFirst)
-#define BitRight(lw,n)	((lw) >> (n))
-#define BitLeft(lw,n)	((lw) << (n))
-#else	/* (BITMAP_BIT_ORDER == LSBFirst) */
-#define BitRight(lw,n)	((lw) << (n))
-#define BitLeft(lw,n)	((lw) >> (n))
-#endif	/* (BITMAP_BIT_ORDER == MSBFirst) */
-
-#define SCRLEFT(lw, n)	BitLeft (lw, (n) * PSZ)
-#define SCRRIGHT(lw, n)	BitRight(lw, (n) * PSZ)
-
-/*
- * Note that the shift direction is independent of the byte ordering of the 
- * machine.  The following is portable code.
- */
-#if PPW == 16
-#define PFILL(p) ( ((p)&PMSK)          | \
-		   ((p)&PMSK) <<   PSZ | \
-		   ((p)&PMSK) << 2*PSZ | \
-		   ((p)&PMSK) << 3*PSZ | \
-		   ((p)&PMSK) << 4*PSZ | \
-		   ((p)&PMSK) << 5*PSZ | \
-		   ((p)&PMSK) << 6*PSZ | \
-		   ((p)&PMSK) << 7*PSZ | \
-		   ((p)&PMSK) << 8*PSZ | \
-		   ((p)&PMSK) << 9*PSZ | \
-		   ((p)&PMSK) << 10*PSZ | \
-		   ((p)&PMSK) << 11*PSZ | \
-		   ((p)&PMSK) << 12*PSZ | \
-		   ((p)&PMSK) << 13*PSZ | \
-		   ((p)&PMSK) << 14*PSZ | \
-		   ((p)&PMSK) << 15*PSZ ) 
-#define PFILL2(p, pf) { \
-    pf = (p) & PMSK; \
-    pf |= (pf << PSZ); \
-    pf |= (pf << 2*PSZ); \
-    pf |= (pf << 4*PSZ); \
-    pf |= (pf << 8*PSZ); \
-}
-#endif /* PPW == 16 */
-#if PPW == 8
-#define PFILL(p) ( ((p)&PMSK)          | \
-		   ((p)&PMSK) <<   PSZ | \
-		   ((p)&PMSK) << 2*PSZ | \
-		   ((p)&PMSK) << 3*PSZ | \
-		   ((p)&PMSK) << 4*PSZ | \
-		   ((p)&PMSK) << 5*PSZ | \
-		   ((p)&PMSK) << 6*PSZ | \
-		   ((p)&PMSK) << 7*PSZ )
-#define PFILL2(p, pf) { \
-    pf = (p) & PMSK; \
-    pf |= (pf << PSZ); \
-    pf |= (pf << 2*PSZ); \
-    pf |= (pf << 4*PSZ); \
-}
-#endif
-#if PPW == 4
-#define PFILL(p) ( ((p)&PMSK)          | \
-		   ((p)&PMSK) <<   PSZ | \
-		   ((p)&PMSK) << 2*PSZ | \
-		   ((p)&PMSK) << 3*PSZ )
-#define PFILL2(p, pf) { \
-    pf = (p) & PMSK; \
-    pf |= (pf << PSZ); \
-    pf |= (pf << 2*PSZ); \
-}
-#endif
-#if PPW == 2
-#define PFILL(p) ( ((p)&PMSK)          | \
-		   ((p)&PMSK) <<   PSZ )
-#define PFILL2(p, pf) { \
-    pf = (p) & PMSK; \
-    pf |= (pf << PSZ); \
-}
-#endif
-#if PPW == 1
-#define PFILL(p)	(p)
-#define PFILL2(p,pf)	(pf = (p))
-#endif
-
-/*
- * Reduced raster op - using precomputed values, perform the above
- * in three instructions
- */
-
-#define DoRRop(dst, and, xor)	(((dst) & (and)) ^ (xor))
-
-#define DoMaskRRop(dst, and, xor, mask) \
-    (((dst) & ((and) | ~(mask))) ^ (xor & mask))
-
-#if PSZ != 32 || PPW != 1
-
-# if (PSZ == 24 && PPW == 1)
-#define maskbits(x, w, startmask, endmask, nlw) {\
-    startmask = cfbstarttab[(x)&3]; \
-    endmask = cfbendtab[((x)+(w)) & 3]; \
-    nlw = ((((x)+(w))*3)>>2) - (((x)*3 +3)>>2); \
-}
-
-#define mask32bits(x, w, startmask, endmask) \
-    startmask = cfbstarttab[(x)&3]; \
-    endmask = cfbendtab[((x)+(w)) & 3];
-
-#define maskpartialbits(x, w, mask) \
-    mask = cfbstartpartial[(x) & 3] & cfbendpartial[((x)+(w)) & 3];
-
-#define maskbits24(x, w, startmask, endmask, nlw) \
-    startmask = cfbstarttab24[(x) & 3]; \
-    endmask = cfbendtab24[((x)+(w)) & 3]; \
-    if (startmask){ \
-	nlw = (((w) - (4 - ((x) & 3))) >> 2); \
-    } else { \
-	nlw = (w) >> 2; \
-    }
-
-#define getbits24(psrc, dst, index) {\
-    register int idx; \
-    switch(idx = ((index)&3)<<1){ \
-    	case 0: \
-		dst = (*(psrc) &cfbmask[idx]); \
-		break; \
-    	case 6: \
-		dst = BitLeft((*(psrc) &cfbmask[idx]), cfb24Shift[idx]); \
-		break; \
-	default: \
-		dst = BitLeft((*(psrc) &cfbmask[idx]), cfb24Shift[idx]) | \
-		BitRight(((*((psrc)+1)) &cfbmask[idx+1]), cfb24Shift[idx+1]); \
-	}; \
-}
-
-#define putbits24(src, w, pdst, planemask, index) {\
-    register PixelGroup dstpixel; \
-    register unsigned int idx; \
-    switch(idx = ((index)&3)<<1){ \
-    	case 0: \
-		dstpixel = (*(pdst) &cfbmask[idx]); \
-		break; \
-    	case 6: \
-		dstpixel = BitLeft((*(pdst) &cfbmask[idx]), cfb24Shift[idx]); \
-		break; \
-	default: \
-		dstpixel = BitLeft((*(pdst) &cfbmask[idx]), cfb24Shift[idx])| \
-		BitRight(((*((pdst)+1)) &cfbmask[idx+1]), cfb24Shift[idx+1]); \
-	}; \
-    dstpixel &= ~(planemask); \
-    dstpixel |= (src & planemask); \
-    *(pdst) &= cfbrmask[idx]; \
-    switch(idx){ \
-    	case 0: \
-		*(pdst) |=  (dstpixel & cfbmask[idx]); \
-		break; \
-    	case 2: \
-    	case 4: \
-		pdst++;idx++; \
-		*(pdst) = ((*(pdst))  & cfbrmask[idx]) | \
-				(BitLeft(dstpixel, cfb24Shift[idx]) & cfbmask[idx]); \
-		pdst--;idx--; \
-    	case 6: \
-		*(pdst) |=  (BitRight(dstpixel, cfb24Shift[idx]) & cfbmask[idx]); \
-		break; \
-	}; \
-}
-
-#define putbitsrop24(src, x, pdst, planemask, rop) \
-{ \
-    register PixelGroup t1, dstpixel; \
-    register unsigned int idx; \
-    switch(idx = (x)<<1){ \
-    	case 0: \
-		dstpixel = (*(pdst) &cfbmask[idx]); \
-		break; \
-    	case 6: \
-		dstpixel = BitLeft((*(pdst) &cfbmask[idx]), cfb24Shift[idx]); \
-		break; \
-	default: \
-		dstpixel = BitLeft((*(pdst) &cfbmask[idx]), cfb24Shift[idx])| \
-		BitRight(((*((pdst)+1)) &cfbmask[idx+1]), cfb24Shift[idx+1]); \
-	}; \
-    DoRop(t1, rop, (src), dstpixel); \
-    dstpixel &= ~planemask; \
-    dstpixel |= (t1 & planemask); \
-    *(pdst) &= cfbrmask[idx]; \
-    switch(idx){ \
-    	case 0: \
-		*(pdst) |= (dstpixel & cfbmask[idx]); \
-		break; \
-    	case 2: \
-    	case 4: \
-		*((pdst)+1) = ((*((pdst)+1))  & cfbrmask[idx+1]) | \
-				(BitLeft(dstpixel, cfb24Shift[idx+1]) & (cfbmask[idx+1])); \
-    	case 6: \
-		*(pdst) |= (BitRight(dstpixel, cfb24Shift[idx]) & cfbmask[idx]); \
-	}; \
-}
-# else  /* PSZ == 24 && PPW == 1 */
-#define maskbits(x, w, startmask, endmask, nlw) \
-    startmask = cfbstarttab[(x)&PIM]; \
-    endmask = cfbendtab[((x)+(w)) & PIM]; \
-    if (startmask) \
-	nlw = (((w) - (PPW - ((x)&PIM))) >> PWSH); \
-    else \
-	nlw = (w) >> PWSH;
-
-#define maskpartialbits(x, w, mask) \
-    mask = cfbstartpartial[(x) & PIM] & cfbendpartial[((x) + (w)) & PIM];
-
-#define mask32bits(x, w, startmask, endmask) \
-    startmask = cfbstarttab[(x)&PIM]; \
-    endmask = cfbendtab[((x)+(w)) & PIM];
-
-/* FIXME */
-#define maskbits24(x, w, startmask, endmask, nlw) \
-    abort()
-#define getbits24(psrc, dst, index) \
-    abort()
-#define putbits24(src, w, pdst, planemask, index) \
-    abort()
-#define putbitsrop24(src, x, pdst, planemask, rop) \
-    abort()
-
-#endif /* PSZ == 24 && PPW == 1 */
-
-#define getbits(psrc, x, w, dst) \
-if ( ((x) + (w)) <= PPW) \
-{ \
-    dst = SCRLEFT(*(psrc), (x)); \
-} \
-else \
-{ \
-    int m; \
-    m = PPW-(x); \
-    dst = (SCRLEFT(*(psrc), (x)) & cfbendtab[m]) | \
-	  (SCRRIGHT(*((psrc)+1), m) & cfbstarttab[m]); \
-}
-
-
-#define putbits(src, x, w, pdst, planemask) \
-if ( ((x)+(w)) <= PPW) \
-{ \
-    PixelGroup tmpmask; \
-    maskpartialbits((x), (w), tmpmask); \
-    tmpmask &= PFILL(planemask); \
-    *(pdst) = (*(pdst) & ~tmpmask) | (SCRRIGHT(src, x) & tmpmask); \
-} \
-else \
-{ \
-    unsigned int m; \
-    unsigned int n; \
-    PixelGroup pm = PFILL(planemask); \
-    m = PPW-(x); \
-    n = (w) - m; \
-    *(pdst) = (*(pdst) & (cfbendtab[x] | ~pm)) | \
-	(SCRRIGHT(src, x) & (cfbstarttab[x] & pm)); \
-    *((pdst)+1) = (*((pdst)+1) & (cfbstarttab[n] | ~pm)) | \
-	(SCRLEFT(src, m) & (cfbendtab[n] & pm)); \
-}
-#if defined(__GNUC__) && defined(mc68020)
-#undef getbits
-#define FASTGETBITS(psrc, x, w, dst) \
-    asm ("bfextu %3{%1:%2},%0" \
-	 : "=d" (dst) : "di" (x), "di" (w), "o" (*(char *)(psrc)))
-
-#define getbits(psrc,x,w,dst) \
-{ \
-    FASTGETBITS(psrc, (x) * PSZ, (w) * PSZ, dst); \
-    dst = SCRLEFT(dst,PPW-(w)); \
-}
-
-#define FASTPUTBITS(src, x, w, pdst) \
-    asm ("bfins %3,%0{%1:%2}" \
-	 : "=o" (*(char *)(pdst)) \
-	 : "di" (x), "di" (w), "d" (src), "0" (*(char *) (pdst)))
-
-#undef putbits
-#define putbits(src, x, w, pdst, planemask) \
-{ \
-    if (planemask != PMSK) { \
-        PixelGroup _m, _pm; \
-        FASTGETBITS(pdst, (x) * PSZ , (w) * PSZ, _m); \
-        PFILL2(planemask, _pm); \
-        _m &= (~_pm); \
-        _m |= (SCRRIGHT(src, PPW-(w)) & _pm); \
-        FASTPUTBITS(_m, (x) * PSZ, (w) * PSZ, pdst); \
-    } else { \
-        FASTPUTBITS(SCRRIGHT(src, PPW-(w)), (x) * PSZ, (w) * PSZ, pdst); \
-    } \
-}
-    
-
-#endif /* mc68020 */
-
-#define putbitsrop(src, x, w, pdst, planemask, rop) \
-if ( ((x)+(w)) <= PPW) \
-{ \
-    PixelGroup tmpmask; \
-    PixelGroup t1, t2; \
-    maskpartialbits((x), (w), tmpmask); \
-    PFILL2(planemask, t1); \
-    tmpmask &= t1; \
-    t1 = SCRRIGHT((src), (x)); \
-    DoRop(t2, rop, t1, *(pdst)); \
-    *(pdst) = (*(pdst) & ~tmpmask) | (t2 & tmpmask); \
-} \
-else \
-{ \
-    CfbBits m; \
-    CfbBits n; \
-    PixelGroup t1, t2; \
-    PixelGroup pm; \
-    PFILL2(planemask, pm); \
-    m = PPW-(x); \
-    n = (w) - m; \
-    t1 = SCRRIGHT((src), (x)); \
-    DoRop(t2, rop, t1, *(pdst)); \
-    *(pdst) = (*(pdst) & (cfbendtab[x] | ~pm)) | (t2 & (cfbstarttab[x] & pm));\
-    t1 = SCRLEFT((src), m); \
-    DoRop(t2, rop, t1, *((pdst) + 1)); \
-    *((pdst)+1) = (*((pdst)+1) & (cfbstarttab[n] | ~pm)) | \
-	(t2 & (cfbendtab[n] & pm)); \
-}
-
-#else /* PSZ == 32 && PPW == 1*/
-
-/*
- * These macros can be optimized for 32-bit pixels since there is no
- * need to worry about left/right edge masking.  These macros were
- * derived from the above using the following reductions:
- *
- *	- x & PIW = 0 	[since PIW = 0]
- *	- all masking tables are only indexed by 0  [ due to above ]
- *	- cfbstartab[0] and cfbendtab[0] = 0 	[ no left/right edge masks]
- *    - cfbstartpartial[0] and cfbendpartial[0] = ~0 [no partial pixel mask]
- *
- * Macro reduction based upon constants cannot be performed automatically
- *       by the compiler since it does not know the contents of the masking
- *       arrays in cfbmskbits.c.
- */
-#define maskbits(x, w, startmask, endmask, nlw) \
-    startmask = endmask = 0; \
-    nlw = (w);
-
-#define maskpartialbits(x, w, mask) \
-    mask = 0xFFFFFFFF;
-
-#define mask32bits(x, w, startmask, endmask) \
-    startmask = endmask = 0;
-
-/*
- * For 32-bit operations, getbits(), putbits(), and putbitsrop() 
- * will only be invoked with x = 0 and w = PPW (1).  The getbits() 
- * macro is only called within left/right edge logic, which doesn't
- * happen for 32-bit pixels.
- */
-#define getbits(psrc, x, w, dst) (dst) = *(psrc)
-
-#define putbits(src, x, w, pdst, planemask) \
-    *(pdst) = (*(pdst) & ~planemask) | (src & planemask);
-
-#define putbitsrop(src, x, w, pdst, planemask, rop) \
-{ \
-    PixelGroup t1; \
-    DoRop(t1, rop, (src), *(pdst)); \
-    *(pdst) = (*(pdst) & ~planemask) | (t1 & planemask); \
-}
-
-#endif /* PSZ != 32 */
-
-/*
- * Use these macros only when you're using the MergeRop stuff
- * in ../mfb/mergerop.h
- */
-
-/* useful only when not spanning destination longwords */
-#if PSZ == 24
-#define putbitsmropshort24(src,x,w,pdst,index) {\
-    PixelGroup   _tmpmask; \
-    PixelGroup   _t1; \
-    maskpartialbits ((x), (w), _tmpmask); \
-    _t1 = SCRRIGHT((src), (x)); \
-    DoMaskMergeRop24(_t1, pdst, _tmpmask, index); \
-}
-#endif
-#define putbitsmropshort(src,x,w,pdst) {\
-    PixelGroup   _tmpmask; \
-    PixelGroup   _t1; \
-    maskpartialbits ((x), (w), _tmpmask); \
-    _t1 = SCRRIGHT((src), (x)); \
-    *pdst = DoMaskMergeRop(_t1, *pdst, _tmpmask); \
-}
-
-/* useful only when spanning destination longwords */
-#define putbitsmroplong(src,x,w,pdst) { \
-    PixelGroup   _startmask, _endmask; \
-    int		    _m; \
-    PixelGroup   _t1; \
-    _m = PPW - (x); \
-    _startmask = cfbstarttab[x]; \
-    _endmask = cfbendtab[(w) - _m]; \
-    _t1 = SCRRIGHT((src), (x)); \
-    pdst[0] = DoMaskMergeRop(_t1,pdst[0],_startmask); \
-    _t1 = SCRLEFT ((src),_m); \
-    pdst[1] = DoMaskMergeRop(_t1,pdst[1],_endmask); \
-}
-
-#define putbitsmrop(src,x,w,pdst) \
-if ((x) + (w) <= PPW) {\
-    putbitsmropshort(src,x,w,pdst); \
-} else { \
-    putbitsmroplong(src,x,w,pdst); \
-}
-
-#if GETLEFTBITS_ALIGNMENT == 1
-#define getleftbits(psrc, w, dst)	dst = *((unsigned int *) psrc)
-#define getleftbits24(psrc, w, dst, idx){	\
-	regiseter int index; \
-	switch(index = ((idx)&3)<<1){ \
-	case 0: \
-	dst = (*((unsigned int *) psrc))&cfbmask[index]; \
-	break; \
-	case 2: \
-	case 4: \
-	dst = BitLeft(((*((unsigned int *) psrc))&cfbmask[index]), cfb24Shift[index]); \
-	dst |= BitRight(((*((unsigned int *) psrc)+1)&cfbmask[index]), cfb4Shift[index]); \
-	break; \
-	case 6: \
-	dst = BitLeft((*((unsigned int *) psrc)),cfb24Shift[index]); \
-	break; \
-	}; \
-}
-#endif /* GETLEFTBITS_ALIGNMENT == 1 */
-
-#define getglyphbits(psrc, x, w, dst) \
-{ \
-    dst = BitLeft((unsigned) *(psrc), (x)); \
-    if ( ((x) + (w)) > 32) \
-	dst |= (BitRight((unsigned) *((psrc)+1), 32-(x))); \
-}
-#if GETLEFTBITS_ALIGNMENT == 2
-#define getleftbits(psrc, w, dst) \
-    { \
-	if ( ((int)(psrc)) & 0x01 ) \
-		getglyphbits( ((unsigned int *)(((char *)(psrc))-1)), 8, (w), (dst) ); \
-	else \
-		dst = *((unsigned int *) psrc); \
-    }
-#endif /* GETLEFTBITS_ALIGNMENT == 2 */
-
-#if GETLEFTBITS_ALIGNMENT == 4
-#define getleftbits(psrc, w, dst) \
-    { \
-	int off, off_b; \
-	off_b = (off = ( ((int)(psrc)) & 0x03)) << 3; \
-	getglyphbits( \
-		(unsigned int *)( ((char *)(psrc)) - off), \
-		(off_b), (w), (dst) \
-	       ); \
-    }
-#endif /* GETLEFTBITS_ALIGNMENT == 4 */
-
-/*
- * getstipplepixels( psrcstip, x, w, ones, psrcpix, destpix )
- *
- * Converts bits to pixels in a reasonable way.  Takes w (1 <= w <= PPW)
- * bits from *psrcstip, starting at bit x; call this a quartet of bits.
- * Then, takes the pixels from *psrcpix corresponding to the one-bits (if
- * ones is TRUE) or the zero-bits (if ones is FALSE) of the quartet
- * and puts these pixels into destpix.
- *
- * Example:
- *
- *      getstipplepixels( &(0x08192A3B), 17, 4, 1, &(0x4C5D6E7F), dest )
- *
- * 0x08192A3B = 0000 1000 0001 1001 0010 1010 0011 1011
- *
- * This will take 4 bits starting at bit 17, so the quartet is 0x5 = 0101.
- * It will take pixels from 0x4C5D6E7F corresponding to the one-bits in this
- * quartet, so dest = 0x005D007F.
- *
- * XXX Works with both byte order.
- * XXX This works for all values of x and w within a doubleword.
- */
-#if (BITMAP_BIT_ORDER == MSBFirst)
-#define getstipplepixels( psrcstip, x, w, ones, psrcpix, destpix ) \
-{ \
-    PixelGroup q; \
-    int m; \
-    if ((m = ((x) - ((PPW*PSZ)-PPW))) > 0) { \
-        q = (*(psrcstip)) << m; \
-	if ( (x)+(w) > (PPW*PSZ) ) \
-	    q |= *((psrcstip)+1) >> ((PPW*PSZ)-m); \
-    } \
-    else \
-        q = (*(psrcstip)) >> -m; \
-    q = QuartetBitsTable[(w)] & ((ones) ? q : ~q); \
-    *(destpix) = (*(psrcpix)) & QuartetPixelMaskTable[q]; \
-}
-/* I just copied this to get the linker satisfied on PowerPC,
- * so this may not be correct at all.
- */
-#define getstipplepixels24(psrcstip,xt,ones,psrcpix,destpix,stipindex) \
-{ \
-    PixelGroup q; \
-    q = *(psrcstip) >> (xt); \
-    q = ((ones) ? q : ~q) & 1; \
-    *(destpix) = (*(psrcpix)) & QuartetPixelMaskTable[q]; \
-}
-#else /* BITMAP_BIT_ORDER == LSB */
-
-/* this must load 32 bits worth; for most machines, thats an int */
-#define CfbFetchUnaligned(x)	ldl_u(x)
-
-#define getstipplepixels( psrcstip, xt, w, ones, psrcpix, destpix ) \
-{ \
-    PixelGroup q; \
-    q = CfbFetchUnaligned(psrcstip) >> (xt); \
-    if ( ((xt)+(w)) > (PPW*PSZ) ) \
-        q |= (CfbFetchUnaligned((psrcstip)+1)) << ((PPW*PSZ)-(xt)); \
-    q = QuartetBitsTable[(w)] & ((ones) ? q : ~q); \
-    *(destpix) = (*(psrcpix)) & QuartetPixelMaskTable[q]; \
-}
-#if PSZ == 24
-#define getstipplepixels24(psrcstip,xt,ones,psrcpix,destpix,stipindex) \
-{ \
-    PixelGroup q; \
-    q = *(psrcstip) >> (xt); \
-    q = ((ones) ? q : ~q) & 1; \
-    *(destpix) = (*(psrcpix)) & QuartetPixelMaskTable[q]; \
-}
-#endif /* PSZ == 24 */
-#endif
-
-extern PixelGroup cfbstarttab[];
-extern PixelGroup cfbendtab[];
-extern PixelGroup cfbstartpartial[];
-extern PixelGroup cfbendpartial[];
-extern PixelGroup cfbrmask[];
-extern PixelGroup cfbmask[];
-extern PixelGroup QuartetBitsTable[];
-extern PixelGroup QuartetPixelMaskTable[];
-#if PSZ == 24
-extern int cfb24Shift[];
-#endif
diff --git a/cfb/cfbpixmap.c b/cfb/cfbpixmap.c
deleted file mode 100644
index 1166f90..0000000
--- a/cfb/cfbpixmap.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-/* pixmap management
-   written by drewry, september 1986
-
-   on a monchrome device, a pixmap is a bitmap.
-*/
-
-#include <string.h>
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "mi.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-
-PixmapPtr
-cfbCreatePixmap (pScreen, width, height, depth, usage_hint)
-    ScreenPtr	pScreen;
-    int		width;
-    int		height;
-    int		depth;
-    unsigned	usage_hint;
-{
-    PixmapPtr pPixmap;
-    size_t datasize;
-    size_t paddedWidth;
-
-    paddedWidth = PixmapBytePad(width, depth);
-
-    if (paddedWidth / 4 > 32767 || height > 32767)
-	return NullPixmap;
-    datasize = height * paddedWidth;
-    pPixmap = AllocatePixmap(pScreen, datasize);
-    if (!pPixmap)
-	return NullPixmap;
-    pPixmap->drawable.type = DRAWABLE_PIXMAP;
-    pPixmap->drawable.class = 0;
-    pPixmap->drawable.pScreen = pScreen;
-    pPixmap->drawable.depth = depth;
-    pPixmap->drawable.bitsPerPixel = BitsPerPixel(depth);
-    pPixmap->drawable.id = 0;
-    pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
-    pPixmap->drawable.x = 0;
-    pPixmap->drawable.y = 0;
-    pPixmap->drawable.width = width;
-    pPixmap->drawable.height = height;
-    pPixmap->devKind = paddedWidth;
-    pPixmap->refcnt = 1;
-    pPixmap->devPrivate.ptr = datasize ?
-		(pointer)((char *)pPixmap + pScreen->totalPixmapSize) : NULL;
-    pPixmap->usage_hint = usage_hint;
-    return pPixmap;
-}
-
-Bool
-cfbDestroyPixmap(pPixmap)
-    PixmapPtr pPixmap;
-{
-    if(--pPixmap->refcnt)
-	return TRUE;
-    dixFreePrivates(pPixmap->devPrivates);
-    xfree(pPixmap);
-    return TRUE;
-}
-
-PixmapPtr
-cfbCopyPixmap(pSrc)
-    register PixmapPtr	pSrc;
-{
-    register PixmapPtr	pDst;
-    int		size;
-    ScreenPtr pScreen;
-
-    size = pSrc->drawable.height * pSrc->devKind;
-    pScreen = pSrc->drawable.pScreen;
-    pDst = (*pScreen->CreatePixmap) (pScreen, pSrc->drawable.width, 
-				pSrc->drawable.height, pSrc->drawable.depth, 0);
-    if (!pDst)
-	return NullPixmap;
-    memmove((char *)pDst->devPrivate.ptr, (char *)pSrc->devPrivate.ptr, size);
-    return pDst;
-}
-
-
-/* replicates a pattern to be a full 32 bits wide.
-   relies on the fact that each scnaline is longword padded.
-   doesn't do anything if pixmap is not a factor of 32 wide.
-   changes width field of pixmap if successful, so that the fast
-	cfbXRotatePixmap code gets used if we rotate the pixmap later.
-	cfbYRotatePixmap code gets used if we rotate the pixmap later.
-
-   calculate number of times to repeat
-   for each scanline of pattern
-      zero out area to be filled with replicate
-      left shift and or in original as many times as needed
-*/
-void
-cfbPadPixmap(pPixmap)
-    PixmapPtr pPixmap;
-{
-    register int width = (pPixmap->drawable.width) * (pPixmap->drawable.bitsPerPixel);
-    register int h;
-    register CfbBits mask;
-    register CfbBits *p;
-    register CfbBits bits; /* real pattern bits */
-    register int i;
-    int rep;                    /* repeat count for pattern */
- 
-    if (width >= PGSZ)
-        return;
-
-    rep = PGSZ/width;
-    if (rep*width != PGSZ)
-        return;
- 
-    mask = mfbGetendtab(width);
- 
-    p = (CfbBits *)(pPixmap->devPrivate.ptr);
-    for (h=0; h < pPixmap->drawable.height; h++)
-    {
-        *p &= mask;
-        bits = *p;
-        for(i=1; i<rep; i++)
-        {
-#if (BITMAP_BIT_ORDER == MSBFirst) 
-            bits >>= width;
-#else
-	    bits <<= width;
-#endif
-            *p |= bits;
-        }
-        p++;
-    }    
-    pPixmap->drawable.width = PGSZ/(pPixmap->drawable.bitsPerPixel);
-}
-
-
-#ifdef notdef
-/*
- * cfb debugging routine -- assumes pixmap is 1 byte deep 
- */
-static cfbdumppixmap(pPix)
-    PixmapPtr	pPix;
-{
-    unsigned int *pw;
-    char *psrc, *pdst;
-    int	i, j;
-    char	line[66];
-
-    ErrorF(  "pPixmap: 0x%x\n", pPix);
-    ErrorF(  "%d wide %d high\n", pPix->drawable.width, pPix->drawable.height);
-    if (pPix->drawable.width > 64)
-    {
-	ErrorF(  "too wide to see\n");
-	return;
-    }
-
-    pw = (unsigned int *) pPix->devPrivate.ptr;
-    psrc = (char *) pw;
-
-/*
-    for ( i=0; i<pPix->drawable.height; ++i )
-	ErrorF( "0x%x\n", pw[i] );
-*/
-
-    for ( i = 0; i < pPix->drawable.height; ++i ) {
-	pdst = line;
-	for(j = 0; j < pPix->drawable.width; j++) {
-	    *pdst++ = *psrc++ ? 'X' : ' ' ;
-	}
-	*pdst++ = '\n';
-	*pdst++ = '\0';
-	ErrorF( "%s", line);
-    }
-}
-#endif /* notdef */
-
-/* Rotates pixmap pPix by w pixels to the right on the screen. Assumes that
- * words are PGSZ bits wide, and that the least significant bit appears on the
- * left.
- */
-void
-cfbXRotatePixmap(pPix, rw)
-    PixmapPtr	pPix;
-    register int rw;
-{
-    register CfbBits	*pw, *pwFinal;
-    register CfbBits	t;
-    int				rot;
-
-    if (pPix == NullPixmap)
-        return;
-
-    switch (((DrawablePtr) pPix)->bitsPerPixel) {
-	case PSZ:
-	    break;
-	case 1:
-	    mfbXRotatePixmap(pPix, rw);
-	    return;
-	default:
-	    ErrorF("cfbXRotatePixmap: unsupported bitsPerPixel %d\n", ((DrawablePtr) pPix)->bitsPerPixel);
-	    return;
-    }
-    pw = (CfbBits *)pPix->devPrivate.ptr;
-    modulus (rw, (int) pPix->drawable.width, rot);
-    if(pPix->drawable.width == PPW)
-    {
-        pwFinal = pw + pPix->drawable.height;
-	while(pw < pwFinal)
-	{
-	    t = *pw;
-	    *pw++ = SCRRIGHT(t, rot) |
-		    (SCRLEFT(t, (PPW-rot)) & cfbendtab[rot]);
-	}
-    }
-    else
-    {
-        ErrorF("cfb internal error: trying to rotate odd-sized pixmap.\n");
-#ifdef notdef
-	register CfbBits *pwTmp;
-	int size, tsize;
-
-	tsize = PixmapBytePad(pPix->drawable.width - rot, pPix->drawable.depth);
-	pwTmp = (CfbBits *) xalloc(pPix->drawable.height * tsize);
-	if (!pwTmp)
-	    return;
-	/* divide pw (the pixmap) in two vertically at (w - rot) and swap */
-	tsize >>= 2;
-	size = pPix->devKind >> SIZE0F(PixelGroup);
-	cfbQuickBlt((CfbBits *)pw, (CfbBits *)pwTmp,
-		    0, 0, 0, 0,
-		    (int)pPix->drawable.width - rot, (int)pPix->drawable.height,
-		    size, tsize);
-	cfbQuickBlt((CfbBits *)pw, (CfbBits *)pw,
-		    (int)pPix->drawable.width - rot, 0, 0, 0,
-		    rot, (int)pPix->drawable.height,
-		    size, size);
-	cfbQuickBlt((CfbBits *)pwTmp, (CfbBits *)pw,
-		    0, 0, rot, 0,
-		    (int)pPix->drawable.width - rot, (int)pPix->drawable.height,
-		    tsize, size);
-	xfree(pwTmp);
-#endif
-    }
-}
-
-/* Rotates pixmap pPix by h lines.  Assumes that h is always less than
-   pPix->drawable.height
-   works on any width.
- */
-void
-cfbYRotatePixmap(pPix, rh)
-    register PixmapPtr	pPix;
-    int	rh;
-{
-    int nbyDown;	/* bytes to move down to row 0; also offset of
-			   row rh */
-    int nbyUp;		/* bytes to move up to line rh; also
-			   offset of first line moved down to 0 */
-    char *pbase;
-    char *ptmp;
-    int	rot;
-
-    if (pPix == NullPixmap)
-	return;
-    switch (((DrawablePtr) pPix)->bitsPerPixel) {
-	case PSZ:
-	    break;
-	case 1:
-	    mfbYRotatePixmap(pPix, rh);
-	    return;
-	default:
-	    ErrorF("cfbYRotatePixmap: unsupported bitsPerPixel %d\n", ((DrawablePtr) pPix)->bitsPerPixel);
-	    return;
-    }
-
-    modulus (rh, (int) pPix->drawable.height, rot);
-    pbase = (char *)pPix->devPrivate.ptr;
-
-    nbyDown = rot * pPix->devKind;
-    nbyUp = (pPix->devKind * pPix->drawable.height) - nbyDown;
-    if(!(ptmp = (char *)xalloc(nbyUp)))
-	return;
-
-    memmove(ptmp, pbase, nbyUp);		/* save the low rows */
-    memmove(pbase, pbase+nbyUp, nbyDown);	/* slide the top rows down */
-    memmove(pbase+nbyDown, ptmp, nbyUp);	/* move lower rows up to row rot */
-    xfree(ptmp);
-}
-
-void
-cfbCopyRotatePixmap(psrcPix, ppdstPix, xrot, yrot)
-    register PixmapPtr psrcPix, *ppdstPix;
-    int	xrot, yrot;
-{
-    register PixmapPtr pdstPix;
-
-    if ((pdstPix = *ppdstPix) &&
-	(pdstPix->devKind == psrcPix->devKind) &&
-	(pdstPix->drawable.height == psrcPix->drawable.height))
-    {
-	memmove((char *)pdstPix->devPrivate.ptr,
-		(char *)psrcPix->devPrivate.ptr,
-	      psrcPix->drawable.height * psrcPix->devKind);
-	pdstPix->drawable.width = psrcPix->drawable.width;
-	pdstPix->drawable.depth = psrcPix->drawable.depth;
-	pdstPix->drawable.bitsPerPixel = psrcPix->drawable.bitsPerPixel;
-	pdstPix->drawable.serialNumber = NEXT_SERIAL_NUMBER;
-    }
-    else
-    {
-	if (pdstPix)
-	    /* FIX XBUG 6168 */
-	    (*pdstPix->drawable.pScreen->DestroyPixmap)(pdstPix);
-	*ppdstPix = pdstPix = cfbCopyPixmap(psrcPix);
-	if (!pdstPix)
-	    return;
-    }
-    cfbPadPixmap(pdstPix);
-    if (xrot)
-	cfbXRotatePixmap(pdstPix, xrot);
-    if (yrot)
-	cfbYRotatePixmap(pdstPix, yrot);
-}
diff --git a/cfb/cfbply1rct.c b/cfb/cfbply1rct.c
deleted file mode 100644
index ce0bcb2..0000000
--- a/cfb/cfbply1rct.c
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <X11/X.h>
-
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "regionstr.h"
-#include "scrnintstr.h"
-#include "mistruct.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "cfbrrop.h"
-
-void
-RROP_NAME(cfbFillPoly1Rect) (pDrawable, pGC, shape, mode, count, ptsIn)
-    DrawablePtr	pDrawable;
-    GCPtr	pGC;
-    int		shape;
-    int		mode;
-    int		count;
-    DDXPointPtr	ptsIn;
-{
-    cfbPrivGCPtr    devPriv;
-    int		    nwidth;
-    CfbBits	    *addrl, *addr;
-#if PSZ == 24
-    CfbBits	    startmask, endmask;
-    register int    pidx;
-#else
-#if PPW > 1
-    CfbBits	    mask, bits = ~((CfbBits)0);
-#endif
-#endif
-    int		    maxy;
-    int		    origin;
-    register int    vertex1, vertex2;
-    int		    c = 0;
-    BoxPtr	    extents;
-    int		    clip;
-    int		    y;
-    int		    *vertex1p = NULL, *vertex2p;
-    int		    *endp;
-    int		    x1 = 0, x2 = 0;
-    int		    dx1 = 0, dx2 = 0;
-    int		    dy1 = 0, dy2 = 0;
-    int		    e1 = 0, e2 = 0;
-    int		    step1 = 0, step2 = 0;
-    int		    sign1 = 0, sign2 = 0;
-    int		    h;
-    int		    l;
-#if PSZ != 24 && PPW > 1
-    int		    r;
-#endif
-    int		    nmiddle;
-    RROP_DECLARE
-
-    if (mode == CoordModePrevious)
-    {
-	miFillPolygon (pDrawable, pGC, shape, mode, count, ptsIn);
-	return;
-    }
-    
-    devPriv = cfbGetGCPrivate(pGC);
-#ifdef NO_ONE_RECT
-    if (REGION_NUM_RECTS(pGC->pCompositeClip) != 1)
-    {
-	miFillPolygon (pDrawable, pGC, shape, mode, count, ptsIn);
-	return;
-    }
-#endif
-    origin = *((int *) &pDrawable->x);
-    vertex2 = origin - ((origin & 0x8000) << 1);
-    extents = &pGC->pCompositeClip->extents;
-    RROP_FETCH_GCPRIV(devPriv);
-    vertex1 = *((int *) &extents->x1) - vertex2;
-    vertex2 = *((int *) &extents->x2) - vertex2 - 0x00010001;
-    clip = 0;
-    y = 32767;
-    maxy = 0;
-    vertex2p = (int *) ptsIn;
-    endp = vertex2p + count;
-    if (shape == Convex)
-    {
-    	while (count--)
-    	{
-	    c = *vertex2p;
-	    clip |= (c - vertex1) | (vertex2 - c);
-	    c = intToY(c);
-	    if (c < y) 
-	    {
-	    	y = c;
-	    	vertex1p = vertex2p;
-	    }
-	    vertex2p++;
-	    if (c > maxy)
-	    	maxy = c;
-    	}
-    }
-    else
-    {
-	int yFlip = 0;
-	dx1 = 1;
-	x2 = -1;
-	x1 = -1;
-    	while (count--)
-    	{
-	    c = *vertex2p;
-	    clip |= (c - vertex1) | (vertex2 - c);
-	    c = intToY(c);
-	    if (c < y) 
-	    {
-	    	y = c;
-	    	vertex1p = vertex2p;
-	    }
-	    vertex2p++;
-	    if (c > maxy)
-	    	maxy = c;
-	    if (c == x1)
-		continue;
-	    if (dx1 > 0)
-	    {
-		if (x2 < 0)
-		    x2 = c;
-		else
-		    dx2 = dx1 = (c - x1) >> 31;
-	    }
-	    else
-		if ((c - x1) >> 31 != dx1) 
-		{
-		    dx1 = ~dx1;
-		    yFlip++;
-		}
-	    x1 = c;
-       	}
-	x1 = (x2 - c) >> 31;
-	if (x1 != dx1)
-	    yFlip++;
-	if (x1 != dx2)
-	    yFlip++;
-	if (yFlip != 2) 
-	    clip = 0x8000;
-    }
-    if (y == maxy)
-	return;
-
-    if (clip & 0x80008000)
-    {
-	miFillPolygon (pDrawable, pGC, shape, mode, vertex2p - (int *) ptsIn, ptsIn);
-	return;
-    }
-
-#define AddrYPlus(a,y)  (CfbBits *) (((unsigned char *) (a)) + (y) * nwidth)
-
-    cfbGetTypedWidthAndPointer(pDrawable, nwidth, addrl, unsigned char, CfbBits);
-    addrl = AddrYPlus(addrl,y + pDrawable->y);
-    origin = intToX(origin);
-    vertex2p = vertex1p;
-    vertex2 = vertex1 = *vertex2p++;
-    if (vertex2p == endp)
-	vertex2p = (int *) ptsIn;
-#define Setup(c,x,vertex,dx,dy,e,sign,step) {\
-    x = intToX(vertex); \
-    if ((dy = intToY(c) - y)) { \
-    	dx = intToX(c) - x; \
-	step = 0; \
-    	if (dx >= 0) \
-    	{ \
-	    e = 0; \
-	    sign = 1; \
-	    if (dx >= dy) {\
-	    	step = dx / dy; \
-	    	dx = dx % dy; \
-	    } \
-    	} \
-    	else \
-    	{ \
-	    e = 1 - dy; \
-	    sign = -1; \
-	    dx = -dx; \
-	    if (dx >= dy) { \
-		step = - (dx / dy); \
-		dx = dx % dy; \
-	    } \
-    	} \
-    } \
-    x += origin; \
-    vertex = c; \
-}
-
-#define Step(x,dx,dy,e,sign,step) {\
-    x += step; \
-    if ((e += dx) > 0) \
-    { \
-	x += sign; \
-	e -= dy; \
-    } \
-}
-    for (;;)
-    {
-	if (y == intToY(vertex1))
-	{
-	    do
-	    {
-	    	if (vertex1p == (int *) ptsIn)
-		    vertex1p = endp;
-	    	c = *--vertex1p;
-	    	Setup (c,x1,vertex1,dx1,dy1,e1,sign1,step1)
-	    } while (y >= intToY(vertex1));
-	    h = dy1;
-	}
-	else
-	{
-	    Step(x1,dx1,dy1,e1,sign1,step1)
-	    h = intToY(vertex1) - y;
-	}
-	if (y == intToY(vertex2))
-	{
-	    do
-	    {
-	    	c = *vertex2p++;
-	    	if (vertex2p == endp)
-		    vertex2p = (int *) ptsIn;
-	    	Setup (c,x2,vertex2,dx2,dy2,e2,sign2,step2)
-	    } while (y >= intToY(vertex2));
-	    if (dy2 < h)
-		h = dy2;
-	}
-	else
-	{
-	    Step(x2,dx2,dy2,e2,sign2,step2)
-	    if ((c = (intToY(vertex2) - y)) < h)
-		h = c;
-	}
-	/* fill spans for this segment */
-	y += h;
-	for (;;)
-	{
-	    l = x1;
-#if PSZ != 24 && PPW > 1
-	    r = x2;
-#endif
-	    nmiddle = x2 - x1;
-    	    if (nmiddle < 0)
-	    {
-	    	nmiddle = -nmiddle;
-	    	l = x2;
-#if PSZ != 24 && PPW > 1
-	    	r = x1;
-#endif
-    	    }
-#if PPW > 1
-	    c = l & PIM;
-	    l -= c;
-#endif
-
-#if PGSZ == 32
-#define LWRD_SHIFT 2
-#else /* PGSZ == 64 */
-#define LWRD_SHIFT 3
-#endif /* PGSZ */
-
-#if PSZ == 24
-	    addr = (CfbBits *)((char *)addrl + ((l * 3) & ~0x03));
-	    if (nmiddle <= 1){
-	      if (nmiddle)
-	        RROP_SOLID24(addr, l);
-	    } else {
-	      maskbits(l, nmiddle, startmask, endmask, nmiddle);
-	      pidx = l & 3;
-	      if (startmask){
-		RROP_SOLID_MASK(addr, startmask, pidx-1);
-		addr++;
-		if (pidx == 3)
-		  pidx = 0;
-	      }
-	      while (--nmiddle >= 0){
-		RROP_SOLID(addr, pidx);
-		addr++;
-		if (++pidx == 3)
-		  pidx = 0;
-	      }
-	      if (endmask)
-		RROP_SOLID_MASK(addr, endmask, pidx);
-	    }
-#else /* PSZ == 24 */
-#if PWSH > LWRD_SHIFT
-	    l = l >> (PWSH - LWRD_SHIFT);
-#endif
-#if PWSH < LWRD_SHIFT
-	    l = l << (LWRD_SHIFT - PWSH);
-#endif
-	    addr = (CfbBits *) (((char *) addrl) + l);
-#if PPW > 1
-	    if (c + nmiddle < PPW)
-	    {
-	    	mask = SCRRIGHT (bits,c) ^ SCRRIGHT (bits,c+nmiddle);
-	    	RROP_SOLID_MASK(addr,mask);
-	    }
-	    else
-	    {
-	    	if (c)
-	    	{
-	    	    mask = SCRRIGHT(bits, c);
-	    	    RROP_SOLID_MASK(addr,mask);
-	    	    nmiddle += c - PPW;
-	    	    addr++;
-	    	}
-#endif
-	    	nmiddle >>= PWSH;
-		while (--nmiddle >= 0) {
-		    RROP_SOLID(addr); addr++;
-		}
-#if PPW > 1
-	    	if ((mask = ~SCRRIGHT(bits, r & PIM)))
-	    	    RROP_SOLID_MASK(addr,mask);
-	    }
-#endif
-#endif /* PSZ == 24 */
-	    if (!--h)
-		break;
-	    addrl = AddrYPlus (addrl, 1);
-	    Step(x1,dx1,dy1,e1,sign1,step1)
-	    Step(x2,dx2,dy2,e2,sign2,step2)
-	}
-	if (y == maxy)
-	    break;
-	addrl = AddrYPlus (addrl, 1);
-    }
-    RROP_UNDECLARE
-}
diff --git a/cfb/cfbpolypnt.c b/cfb/cfbpolypnt.c
deleted file mode 100644
index 06a768e..0000000
--- a/cfb/cfbpolypnt.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/************************************************************
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-********************************************************/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "regionstr.h"
-#include "scrnintstr.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-
-#define isClipped(c,ul,lr)  ((((c) - (ul)) | ((lr) - (c))) & ClipMask)
-
-/* WARNING: pbox contains two shorts. This code assumes they are packed
- * and can be referenced together as an INT32.
- */
-
-#define PointLoop(fill) { \
-    for (nbox = REGION_NUM_RECTS(cclip), pbox = REGION_RECTS(cclip); \
-	 --nbox >= 0; \
-	 pbox++) \
-    { \
-	c1 = *((INT32 *) &pbox->x1) - off; \
-	c2 = *((INT32 *) &pbox->x2) - off - 0x00010001; \
-	for (ppt = (INT32 *) pptInit, i = npt; --i >= 0;) \
-	{ \
-	    pt = *ppt++; \
-	    if (!isClipped(pt,c1,c2)) { \
-		fill \
-	    } \
-	} \
-    } \
-}
-
-#if PSZ == 24
-# include "cfbrrop24.h"
-#endif
-
-void
-cfbPolyPoint(pDrawable, pGC, mode, npt, pptInit)
-    DrawablePtr pDrawable;
-    GCPtr pGC;
-    int mode;
-    int npt;
-    xPoint *pptInit;
-{
-    register INT32   pt;
-    register INT32   c1, c2;
-    register CARD32    ClipMask = 0x80008000;
-    register CfbBits   xor;
-#ifdef PIXEL_ADDR
-    register PixelType   *addrp;
-    register int    npwidth;
-#if PSZ != 24
-    PixelType	    *addrpt;
-#endif
-#else
-    register CfbBits    *addrl;
-    register int    nlwidth;
-    register int    xoffset;
-    CfbBits   *addrlt;
-#endif
-#if PSZ == 24
-    RROP_DECLARE
-    register int xtmp;
-    register PixelType *p;
-#endif
-    register INT32  *ppt;
-    RegionPtr	    cclip;
-    int		    nbox;
-    register int    i;
-    register BoxPtr pbox;
-    CfbBits   and;
-    int		    rop = pGC->alu;
-    int		    off;
-    cfbPrivGCPtr    devPriv;
-    xPoint	    *pptPrev;
-
-    devPriv =cfbGetGCPrivate(pGC);
-    rop = devPriv->rop;
-    if (rop == GXnoop)
-	return;
-    cclip = pGC->pCompositeClip;
-    xor = devPriv->xor;
-    if ((mode == CoordModePrevious) && (npt > 1))
-    {
-	for (pptPrev = pptInit + 1, i = npt - 1; --i >= 0; pptPrev++)
-	{
-	    pptPrev->x += (pptPrev-1)->x;
-	    pptPrev->y += (pptPrev-1)->y;
-	}
-    }
-    off = *((int *) &pDrawable->x);
-    off -= (off & 0x8000) << 1;
-#ifdef PIXEL_ADDR
-    cfbGetPixelWidthAndPointer(pDrawable, npwidth, addrp);
-#if PSZ == 24
-    addrp = addrp + pDrawable->y * npwidth;
-#else
-    addrp = addrp + pDrawable->y * npwidth + pDrawable->x;
-#endif
-    if (rop == GXcopy)
-    {
-#if PSZ == 24
-      RROP_COPY_SETUP(xor)
-#endif
-	if (!(npwidth & (npwidth - 1)))
-	{
-	    npwidth = ffs(npwidth) - 1;
-#if PSZ == 24
-	    PointLoop(
-		      xtmp = pDrawable->x + intToX(pt);
-		      p = addrp + (intToY(pt) << npwidth) + ((xtmp * 3) >>2);
-		      RROP_SOLID24_COPY(p, xtmp))
-#else
-	    PointLoop(*(addrp + (intToY(pt) << npwidth) + intToX(pt)) = xor;)
-#endif
-	}
-#ifdef sun
-	else if (npwidth == 1152)
-	{
-	    register int    y;
-	    PointLoop(y = intToY(pt); *(addrp + (y << 10) + (y << 7) + intToX(pt)) = xor;)
-	}
-#endif
-	else
-	{
-#if PSZ == 24
-	    PointLoop(
-		      xtmp = pDrawable->x + intToX(pt);
-		      p = addrp + intToY(pt) * npwidth + ((xtmp * 3) >> 2);
-		      RROP_SOLID24_COPY(p, xtmp))
-#else
-	    PointLoop(*(addrp + intToY(pt) * npwidth + intToX(pt)) = xor;)
-#endif
-	}
-    }
-    else
-    {
-	and = devPriv->and;
-#if PSZ == 24
-	RROP_SET_SETUP(xor, and)
-	PointLoop(  
-		  xtmp = pDrawable->x + intToX(pt);
-		  p = addrp + intToY(pt) * npwidth + ((xtmp * 3) >> 2);
-		  RROP_SOLID24_SET(p, xtmp))
-#else
-	PointLoop(  addrpt = addrp + intToY(pt) * npwidth + intToX(pt);
-		    *addrpt = DoRRop (*addrpt, and, xor);)
-#endif
-    }
-#else /* !PIXEL_ADDR */
-    cfbGetLongWidthAndPointer(pDrawable, nlwidth, addrl);
-    addrl = addrl + pDrawable->y * nlwidth + (pDrawable->x >> PWSH);
-    xoffset = pDrawable->x & PIM;
-    and = devPriv->and;
-#if PSZ == 24
-    PointLoop(   addrlt = addrl + intToY(pt) * nlwidth
- 	                   + ((intToX(pt) + xoffset) >> PWSH);
- 		   *addrlt = DoRRop (*addrlt,
- 			   and | ~cfbmask[(intToX(pt) + xoffset) & PIM],
- 			   xor & cfbmask[(intToX(pt) + xoffset) & PIM]);
-	     )
-#else
-    PointLoop(   addrlt = addrl + intToY(pt) * nlwidth
- 	                   + ((intToX(pt) + xoffset) >> PWSH);
- 		   *addrlt = DoRRop (*addrlt,
- 			   and | ~cfbmask[((intToX(pt) + xoffset) & 3)<<1],
- 			   xor & cfbmask[((intToX(pt) + xoffset) & 3)<<1]);
-	     )
-#endif
-#endif /* PIXEL_ADDR */
-}
diff --git a/cfb/cfbpush8.c b/cfb/cfbpush8.c
deleted file mode 100644
index 857ec94..0000000
--- a/cfb/cfbpush8.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Push Pixels for 8 bit displays.
- */
-
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-*/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#if PSZ == 8
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"cfb.h"
-#include	"cfbmskbits.h"
-#include	"cfb8bit.h"
-#define MFB_CONSTS_ONLY
-#include	"maskbits.h"
-
-void
-cfbPushPixels8 (pGC, pBitmap, pDrawable, dx, dy, xOrg, yOrg)
-    GCPtr	pGC;
-    PixmapPtr	pBitmap;
-    DrawablePtr	pDrawable;
-    int		dx, dy, xOrg, yOrg;
-{
-    register CfbBits   *src, *dst;
-    register CfbBits   pixel;
-    register CfbBits   c, bits;
-    CfbBits   *pdstLine, *psrcLine;
-    CfbBits   *pdstBase;
-    int		    srcWidth;
-    int		    dstWidth;
-    int		    xoff;
-    int		    nBitmapLongs, nPixmapLongs;
-    int		    nBitmapTmp, nPixmapTmp;
-    CfbBits   rightMask;
-    BoxRec	    bbox;
-    cfbPrivGCPtr    devPriv;
-
-    bbox.x1 = xOrg;
-    bbox.y1 = yOrg;
-    bbox.x2 = bbox.x1 + dx;
-    bbox.y2 = bbox.y1 + dy;
-    devPriv = cfbGetGCPrivate(pGC);
-    
-    switch (RECT_IN_REGION(pGC->pScreen, pGC->pCompositeClip, &bbox))
-    {
-      case rgnPART:
-	mfbPushPixels(pGC, pBitmap, pDrawable, dx, dy, xOrg, yOrg);
-      case rgnOUT:
-	return;
-    }
-
-    cfbGetLongWidthAndPointer (pDrawable, dstWidth, pdstBase)
-
-    psrcLine = (CfbBits *) pBitmap->devPrivate.ptr;
-    srcWidth = (int) pBitmap->devKind >> PWSH;
-    
-    pixel = devPriv->xor;
-    xoff = xOrg & PIM;
-    nBitmapLongs = (dx + xoff) >> MFB_PWSH;
-    nPixmapLongs = (dx + PGSZB + xoff) >> PWSH;
-
-    rightMask = ~cfb8BitLenMasks[((dx + xoff) & MFB_PIM)];
-
-    pdstLine = pdstBase + (yOrg * dstWidth) + (xOrg >> PWSH);
-
-    while (dy--)
-    {
-	c = 0;
-	nPixmapTmp = nPixmapLongs;
-	nBitmapTmp = nBitmapLongs;
-	src = psrcLine;
-	dst = pdstLine;
-	while (nBitmapTmp--)
-	{
-	    bits = *src++;
-	    c |= BitRight (bits, xoff);
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	    nPixmapTmp -= 8;
-	    c = 0;
-	    if (xoff)
-		c = BitLeft (bits, PGSZ - xoff);
-	}
-	if (BitLeft (rightMask, xoff))
-	    c |= BitRight (*src, xoff);
-	c &= rightMask;
-	switch (nPixmapTmp) {
-	case 8:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 7:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 6:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 5:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 4:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 3:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 2:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 1:
-	    WriteBitGroup(dst, pixel, GetBitGroup(c));
-	    NextBitGroup(c);
-	    dst++;
-	case 0:
-	    break;
-	}
-	pdstLine += dstWidth;
-	psrcLine += srcWidth;
-    }
-}
-
-#endif
diff --git a/cfb/cfbrctstp8.c b/cfb/cfbrctstp8.c
deleted file mode 100644
index 485d409..0000000
--- a/cfb/cfbrctstp8.c
+++ /dev/null
@@ -1,593 +0,0 @@
-/*
- * Fill 32 bit stippled rectangles for 8 bit frame buffers
- */
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Author: Keith Packard, MIT X Consortium
-
-*/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#if PSZ == 8
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "gcstruct.h"
-#include "window.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "cfb8bit.h"
-
-#define MFB_CONSTS_ONLY
-#include "maskbits.h"
-
-void
-cfb8FillRectOpaqueStippled32 (pDrawable, pGC, nBox, pBox)
-    DrawablePtr	    pDrawable;
-    GCPtr	    pGC;
-    int		    nBox;	/* number of boxes to fill */
-    register BoxPtr pBox;	/* pointer to list of boxes to fill */
-{
-    CfbBits   *src;
-    int stippleHeight;
-
-    int nlwDst;		/* width in longwords of the dest pixmap */
-    int w;		/* width of current box */
-    register int h;	/* height of current box */
-    CfbBits startmask;
-    CfbBits endmask;	/* masks for reggedy bits at either end of line */
-    int nlwMiddle;	/* number of longwords between sides of boxes */
-    register int nlw;			/* loop version of nlwMiddle */
-    CfbBits *dstLine;
-    register CfbBits *dst;	/* pointer to bits we're writing */
-    CfbBits *dstTmp;
-    int y;				/* current scan line */
-
-    CfbBits *pbits;/* pointer to start of pixmap */
-    register CfbBits bits;	/* bits from stipple */
-    int	rot;
-    register CfbBits xor;
-    PixmapPtr		    stipple;
-    int	    wEnd;
-
-    stipple = pGC->pRotatedPixmap;
-
-    cfb8CheckOpaqueStipple(pGC->alu, pGC->fgPixel, pGC->bgPixel, pGC->planemask);
-
-    stippleHeight = stipple->drawable.height;
-    src = (CfbBits *)stipple->devPrivate.ptr;
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pbits)
-
-    while (nBox--)
-    {
-	w = pBox->x2 - pBox->x1;
-	h = pBox->y2 - pBox->y1;
-	y = pBox->y1;
-	dstLine = pbits + (pBox->y1 * nlwDst) + ((pBox->x1 & ~PIM) >> PWSH);
-	if (((pBox->x1 & PIM) + w) <= PPW)
-	{
-	    maskpartialbits(pBox->x1, w, startmask);
-	    nlwMiddle = 0;
-	    endmask = 0;
-	}
-	else
-	{
-	    maskbits (pBox->x1, w, startmask, endmask, nlwMiddle);
-	}
-	rot = (pBox->x1 & ((PGSZ-1) & ~PIM));
-	pBox++;
-	y = y % stippleHeight;
-#if PPW == 4
-	if (cfb8StippleRRop == GXcopy)
-	{
-	    if (w < PGSZ*2)
-	    {
-	    	while (h--)
-	    	{
-	    	    bits = src[y];
-	    	    y++;
-	    	    if (y == stippleHeight)
-		    	y = 0;
-	    	    if (rot)
-		    	RotBitsLeft(bits,rot);
-		    dst = dstLine;
-	    	    dstLine += nlwDst;
-	    	    if (startmask)
-	    	    {
-		    	*dst = (*dst & ~startmask) |
-			       (GetPixelGroup (bits) & startmask);
-		    	dst++;
-		    	RotBitsLeft (bits, PGSZB);
-	    	    }
-		    nlw = nlwMiddle;
-	    	    while (nlw--)
-	    	    {
-			*dst++ = GetPixelGroup(bits);
-		    	RotBitsLeft (bits, PGSZB);
-	    	    }
-	    	    if (endmask)
-	    	    {
-			*dst = (*dst & ~endmask) |
-			       (GetPixelGroup (bits) & endmask);
-	    	    }
-	    	}
-	    }
-	    else
-	    {
-		wEnd = 7 - (nlwMiddle & 7);
-		nlwMiddle = (nlwMiddle >> 3) + 1;
-	    	while (h--)
-	    	{
-		    bits = src[y];
-		    y++;
-		    if (y == stippleHeight)
-			y = 0;
-	    	    if (rot != 0)
-			RotBitsLeft (bits, rot);
-	    	    dstTmp = dstLine;
-	    	    dstLine += nlwDst;
-		    if (startmask)
-		    {
-			*dstTmp = (*dstTmp & ~startmask) |
-				  (GetPixelGroup (bits) & startmask);
-			dstTmp++;
-			RotBitsLeft (bits, PGSZB);
-		    }
-		    w = 7 - wEnd;
-		    while (w--)
-		    {
-			nlw = nlwMiddle;
-			dst = dstTmp;
-			dstTmp++;
-			xor = GetPixelGroup (bits);
-			while (nlw--)
-			{
-			    *dst = xor;
-			    dst += 8;
-			}
-			NextBitGroup (bits);
-		    }
-		    nlwMiddle--;
-		    w = wEnd + 1;
-		    if (endmask)
-		    {
-			dst = dstTmp + (nlwMiddle << 3);
-			*dst = (*dst & ~endmask) |
-			       (GetPixelGroup(bits) & endmask);
-		    }
-		    while (w--)
-		    {
-			nlw = nlwMiddle;
-			dst = dstTmp;
-			dstTmp++;
-			xor = GetPixelGroup (bits);
-			while (nlw--)
-			{
-			    *dst = xor;
-			    dst += 8;
-			}
-			NextBitGroup (bits);
-		    }
-		    nlwMiddle++;
-		}
-	    }
-	}
-	else
-#endif /* PPW == 4 */
-	{
-	    while (h--)
-	    {
-	    	bits = src[y];
-	    	y++;
-	    	if (y == stippleHeight)
-		    y = 0;
-	    	if (rot)
-		    RotBitsLeft(bits,rot);
-		dst = dstLine;
-	    	dstLine += nlwDst;
-	    	if (startmask)
-	    	{
-		    xor = GetBitGroup(bits);
-		    *dst = MaskRRopPixels(*dst, xor, startmask);
-		    dst++;
-		    RotBitsLeft (bits, PGSZB);
-	    	}
-		nlw = nlwMiddle;
-	    	while (nlw--)
-	    	{
-		    RRopBitGroup(dst, GetBitGroup(bits));
-		    dst++;
-		    RotBitsLeft (bits, PGSZB);
-	    	}
-	    	if (endmask)
-	    	{
-		    xor = GetBitGroup(bits);
-		    *dst = MaskRRopPixels(*dst, xor, endmask);
-	    	}
-	    }
-	}
-    }
-}
-
-void
-cfb8FillRectTransparentStippled32 (pDrawable, pGC, nBox, pBox)
-    DrawablePtr	    pDrawable;
-    GCPtr	    pGC;
-    int		    nBox;	/* number of boxes to fill */
-    BoxPtr 	    pBox;	/* pointer to list of boxes to fill */
-{
-    int		    x, y, w, h;
-    int		    nlwMiddle, nlwDst;
-    CfbBits   startmask, endmask;
-    register CfbBits   *dst;
-    CfbBits   *dstLine, *pbits, *dstTmp;
-    CfbBits   *src;
-    register CfbBits   xor;
-    register CfbBits   bits, mask;
-    int		    rot;
-    int		    wEnd;
-    cfbPrivGCPtr    devPriv;
-    PixmapPtr	    stipple;
-    int		    stippleHeight;
-    register int    nlw;
-    
-    devPriv = cfbGetGCPrivate(pGC);
-    stipple = pGC->pRotatedPixmap;
-    src = (CfbBits *)stipple->devPrivate.ptr;
-    stippleHeight = stipple->drawable.height;
-
-    cfb8CheckStipple (pGC->alu, pGC->fgPixel, pGC->planemask);
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pbits)
-
-    while (nBox--)
-    {
-	x = pBox->x1;
-    	w = pBox->x2 - x;
-	if (((x & PIM) + w) <= PPW)
-	{
-	    maskpartialbits(x, w, startmask);
-	    endmask = 0;
-	    nlwMiddle = 0;
-	}
-	else
-	{
-	    maskbits (x, w, startmask, endmask, nlwMiddle);
-	}
-	rot = (x & ((PGSZ-1) & ~PIM));
-    	y = pBox->y1;
-    	dstLine = pbits + (y * nlwDst) + (x >> PWSH);
-    	h = pBox->y2 - y;
-	pBox++;
-	y %= stippleHeight;
-#if PPW == 4
-	if (cfb8StippleRRop == GXcopy)
-	{
-	    xor = devPriv->xor;
-	    if (w < PGSZ*2)
-	    {
-	    	while (h--)
-	    	{
-		    bits = src[y];
-		    y++;
-		    if (y == stippleHeight)
-			y = 0;
-	    	    if (rot != 0)
-			RotBitsLeft (bits, rot);
-	    	    dst = dstLine;
-	    	    dstLine += nlwDst;
-	    	    if (startmask)
-	    	    {
-		    	mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    	*dst = (*dst & ~(mask & startmask)) |
-		       	       (xor & (mask & startmask));
-		    	dst++;
-		    	RotBitsLeft (bits, PGSZB);
-	    	    }
-		    nlw = nlwMiddle;
-	    	    while (nlw--)
-	    	    {
-		    	WriteBitGroup (dst,xor,GetBitGroup(bits))
-		    	dst++;
-		    	RotBitsLeft (bits, PGSZB);
-	    	    }
-	    	    if (endmask)
-	    	    {
-		    	mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    	*dst = (*dst & ~(mask & endmask)) |
-		       	       (xor & (mask & endmask));
-	    	    }
-	    	}
-	    }
-	    else
-	    {
-		wEnd = 7 - (nlwMiddle & 7);
-		nlwMiddle = (nlwMiddle >> 3) + 1;
-	    	while (h--)
-	    	{
-		    bits = src[y];
-		    y++;
-		    if (y == stippleHeight)
-			y = 0;
-	    	    if (rot != 0)
-			RotBitsLeft (bits, rot);
-	    	    dstTmp = dstLine;
-	    	    dstLine += nlwDst;
-		    if (startmask)
-		    {
-		    	mask = cfb8PixelMasks[GetBitGroup(bits)];
-		    	*dstTmp = (*dstTmp & ~(mask & startmask)) |
-		       	       (xor & (mask & startmask));
-		    	dstTmp++;
-		    	RotBitsLeft (bits, PGSZB);
-		    }
-		    w = 7 - wEnd;
-		    while (w--)
-		    {
-			nlw = nlwMiddle;
-			dst = dstTmp;
-			dstTmp++;
-#if defined(__GNUC__) && defined(mc68020)
-			mask = cfb8PixelMasks[GetBitGroup(bits)];
-			xor = xor & mask;
-			mask = ~mask;
-			while (nlw--)
-			{
-			    *dst = (*dst & mask) | xor;
-			    dst += 8;
-			}
-			xor = devPriv->xor;
-#else
-#define SwitchBitsLoop(body) \
-	while (nlw--)	\
-	{		\
-	    body	\
-	    dst += 8;	\
-	}
-			SwitchBitGroup(dst, xor, GetBitGroup(bits));
-#undef SwitchBitsLoop
-#endif
-			NextBitGroup (bits);
-		    }
-		    nlwMiddle--;
-		    w = wEnd + 1;
-		    if (endmask)
-		    {
-			mask = cfb8PixelMasks[GetBitGroup(bits)];
-			dst = dstTmp + (nlwMiddle << 3);
-			*dst = (*dst & ~(mask & endmask)) |
-			       (xor &  (mask & endmask));
-		    }
-		    while (w--)
-		    {
-			nlw = nlwMiddle;
-			dst = dstTmp;
-			dstTmp++;
-#if defined(__GNUC__) && defined(mc68020)
-			mask = cfb8PixelMasks[GetBitGroup(bits)];
-			xor = xor & mask;
-			mask = ~mask;
-			while (nlw--)
-			{
-			    *dst = (*dst & mask) | xor;
-			    dst += 8;
-			}
-			xor = devPriv->xor;
-#else
-#define SwitchBitsLoop(body) \
-	while (nlw--)	\
-	{		\
-	    body	\
-	    dst += 8;	\
-	}
-			SwitchBitGroup(dst, xor, GetBitGroup(bits));
-#undef SwitchBitsLoop
-#endif
-			NextBitGroup (bits);
-		    }
-		    nlwMiddle++;
-		}
-	    }
-	}
-	else
-#endif /* PPW == 4 */
-	{
-	    while (h--)
-	    {
-		bits = src[y];
-		y++;
-		if (y == stippleHeight)
-		    y = 0;
-	    	if (rot != 0)
-		    RotBitsLeft (bits, rot);
-	    	dst = dstLine;
-	    	dstLine += nlwDst;
-	    	if (startmask)
-	    	{
-		    xor = GetBitGroup(bits);
-		    *dst = MaskRRopPixels(*dst, xor, startmask);
-		    dst++;
-		    RotBitsLeft (bits, PGSZB);
-	    	}
-		nlw = nlwMiddle;
-	    	while (nlw--)
-	    	{
-		    RRopBitGroup(dst, GetBitGroup(bits));
-		    dst++;
-		    RotBitsLeft (bits, PGSZB);
-	    	}
-	    	if (endmask)
-	    	{
-		    xor = GetBitGroup(bits);
-		    *dst = MaskRRopPixels(*dst, xor, endmask);
-	    	}
-	    }
-	}
-    }
-}
-
-
-void
-cfb8FillRectStippledUnnatural (pDrawable, pGC, nBox, pBox)
-    DrawablePtr	    pDrawable;
-    GCPtr	    pGC;
-    int		    nBox;
-    register BoxPtr pBox;
-{
-    CfbBits   *pdstBase;	/* pointer to start of bitmap */
-    CfbBits   *pdstLine;	/* current destination line */
-    int		    nlwDst;	/* width in longwords of bitmap */
-    PixmapPtr	    pStipple;	/* pointer to stipple we want to fill with */
-    int		    nlwMiddle;
-    register int    nlw;
-    int		    x, y, w, h, xrem, xSrc, ySrc;
-    int		    stwidth, stippleWidth;
-    int		    stippleHeight;
-    register CfbBits  bits, inputBits;
-    register int    partBitsLeft;
-    int		    nextPartBits;
-    int		    bitsLeft, bitsWhole;
-    register CfbBits    *pdst;	/* pointer to current word in bitmap */
-    CfbBits   *srcTemp, *srcStart;
-    CfbBits   *psrcBase;
-    CfbBits   startmask, endmask;
-
-    if (pGC->fillStyle == FillStippled)
-	cfb8CheckStipple (pGC->alu, pGC->fgPixel, pGC->planemask);
-    else
-	cfb8CheckOpaqueStipple (pGC->alu, pGC->fgPixel, pGC->bgPixel, pGC->planemask);
-
-    if (cfb8StippleRRop == GXnoop)
-	return;
-
-    /*
-     *  OK,  so what's going on here?  We have two Drawables:
-     *
-     *  The Stipple:
-     *		Depth = 1
-     *		Width = stippleWidth
-     *		Words per scanline = stwidth
-     *		Pointer to pixels = pStipple->devPrivate.ptr
-     */
-
-    pStipple = pGC->stipple;
-
-    stwidth = pStipple->devKind >> PWSH;
-    stippleWidth = pStipple->drawable.width;
-    stippleHeight = pStipple->drawable.height;
-    psrcBase = (CfbBits *) pStipple->devPrivate.ptr;
-
-    /*
-     *	The Target:
-     *		Depth = PSZ
-     *		Width = determined from *pwidth
-     *		Words per scanline = nlwDst
-     *		Pointer to pixels = addrlBase
-     */
-
-    xSrc = pDrawable->x;
-    ySrc = pDrawable->y;
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pdstBase)
-
-    /* this replaces rotating the stipple. Instead we just adjust the offset
-     * at which we start grabbing bits from the stipple.
-     * Ensure that ppt->x - xSrc >= 0 and ppt->y - ySrc >= 0,
-     * so that iline and xrem always stay within the stipple bounds.
-     */
-
-    xSrc += (pGC->patOrg.x % stippleWidth) - stippleWidth;
-    ySrc += (pGC->patOrg.y % stippleHeight) - stippleHeight;
-
-    bitsWhole = stippleWidth;
-
-    while (nBox--)
-    {
-	x = pBox->x1;
-	y = pBox->y1;
-	w = pBox->x2 - x;
-	h = pBox->y2 - y;
-	pBox++;
-	pdstLine = pdstBase + y * nlwDst + (x >> PWSH);
-	y = (y - ySrc) % stippleHeight;
-	srcStart = psrcBase + y * stwidth;
-	xrem = ((x & ~PIM) - xSrc) % stippleWidth;
-	if (((x & PIM) + w) < PPW)
-	{
-	    maskpartialbits (x, w, startmask);
-	    nlwMiddle = 0;
-	    endmask = 0;
-	}
-	else
-	{
-	    maskbits (x, w, startmask, endmask, nlwMiddle);
-	}
-	while (h--)
-	{
-    	    srcTemp = srcStart + (xrem >> MFB_PWSH);
-    	    bitsLeft = stippleWidth - (xrem & ~MFB_PIM);
-	    NextUnnaturalStippleWord
-	    NextSomeBits (inputBits, (xrem & MFB_PIM));
-	    partBitsLeft -= (xrem & MFB_PIM);
-	    NextUnnaturalStippleBits
-	    nlw = nlwMiddle;
-	    pdst = pdstLine;
-	    if (startmask)
-	    {
-		*pdst = MaskRRopPixels(*pdst,bits,startmask);
-		pdst++;
-		NextUnnaturalStippleBits
-	    }
-	    while (nlw--)
-	    {
-		*pdst = RRopPixels(*pdst,bits);
-		pdst++;
-		NextUnnaturalStippleBits
-	    }
-	    if (endmask)
-		*pdst = MaskRRopPixels(*pdst,bits,endmask);
-	    pdstLine += nlwDst;
-	    y++;
-	    srcStart += stwidth;
-	    if (y == stippleHeight)
-	    {
-		y = 0;
-		srcStart = psrcBase;
-	    }
-	}
-    }
-}
-
-#endif /* PSZ == 8 */
diff --git a/cfb/cfbrrop.c b/cfb/cfbrrop.c
deleted file mode 100644
index ffd8138..0000000
--- a/cfb/cfbrrop.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- *
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-/* cfb reduced rasterop computations */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include <X11/Xproto.h>
-#include "cfb.h"
-#include "cfbmskbits.h"
-
-/* A description:
- *
- * There are four possible operations on each bit in the destination word,
- *
- *	    1	2   3	4
- *
- *    0	    0	0   1	1
- *    1	    0	1   0	1
- *
- * On examination of the reduced rop equation (dst = (dst & and) ^ xor),
- * these four fall to reduced rops as follows:
- *
- *  and	    0	1   1	0
- *  xor	    0	0   1	1
- *
- * or, (if 'and' is expensive) (dst = (dst | or) ^ xor)
- *
- *  or	    1	0   0	1
- *  xor	    1	0   1	0
- *
- * The trouble with using this later equation is that trivial
- * rasterop reduction is more difficult; some common rasterops
- * use complicated expressions of xor/and instead of the simple
- * ones while other common rasterops are not made any simpler:
- *
- * GXcopy:	*dst = ~xor		instead of  *dst = xor
- * GXand:	*dst = *dst & ~or	instead of  *dst = *dst & and
- * GXor:	*dst = *dst | or	instead of  *dst = *dst | xor
- * GXxor:	*dst = *dst ^ xor	instead of  *dst = *dst ^ xor
- *
- * If you're really set on using this second mechanism, the changes
- * are pretty simple.
- *
- * All that remains is to provide a mechanism for computing and/xor values
- * based on the raster op and foreground value.
- *
- * The 16 rops fall as follows, with the associated reduced
- * rop and/xor and or/xor values.  The values in parenthesis following the
- * reduced values gives an equation using the source value for
- * the reduced value, and is one of {0, src, ~src, 1} as appropriate.
- *
- *	clear		and		andReverse	copy
- *     src  0	1	    0   1	    0	1	    0	1
- *  dst	0   0	0	0   0   0	0   0	1	0   0	1
- *	1   0	0	1   0   1	1   0	0	1   0	1
- *
- *  and	    0	0 (0)	    0   1 (src)	    0	1 (src)	    0	0 (0)
- *  xor	    0	0 (0)	    0   0 (0)	    0	1 (src)	    0	1 (src)
- *
- *  or	    1	1 (1)	    1	0 (~src)    1	0 (~src)    1	1 (1)
- *  xor	    1	1 (1)	    1	0 (~src)    1	1 (1)	    1	0 (~src)
- *
- *	andInverted	noop		xor		or
- *     src  0	1	    0   1	    0	1	    0	1
- *  dst	0   0	0	0   0   0	0   0	1	0   0	1
- *	1   1	0	1   1   1	1   1	0	1   1	1
- *
- *  and	    1	0 (~src)    1   1 (1)	    1	1 (1)	    1	0 (~src)
- *  xor	    0	0 (0)	    0   0 (0)	    0	1 (src)	    0	1 (src)
- *
- *  or	    0	1 (src)	    0	0 (0)	    0	0 (0)	    0	1 (src)
- *  xor	    0	1 (src)	    0	0 (0)	    0	1 (src)	    0	0 (0)
- *
- *	nor		equiv		invert		orReverse
- *     src  0	1	    0   1	    0	1	    0	1
- *  dst	0   1	0	0   1   0	0   1	1	0   1	1
- *	1   0	0	1   0   1	1   0	0	1   0	1
- *
- *  and	    1	0 (~src)    1   1 (1)	    1	1 (1)	    1	0 (~src)
- *  xor	    1	0 (~src)    1   0 (~src)    1	1 (1)	    1	1 (1)
- *
- *  or	    0	1 (src)	    0	0 (0)	    0	0 (0)	    0	1 (src)
- *  xor	    1	1 (1)	    1	0 (~src)    1	1 (1)	    1	0 (~src)
- *
- *	copyInverted	orInverted	nand		set
- *     src  0	1	    0   1	    0	1	    0	1
- *  dst	0   1	0	0   1   0	0   1	1	0   1	1
- *	1   1	0	1   1   1	1   1	0	1   1	1
- *
- *  and	    0	0 (0)	    0   1 (src)	    0	1 (src)	    0	0 (0)
- *  xor	    1	0 (~src)    1   0 (~src)    1	1 (1)	    1	1 (1)
- *
- *  or	    1	1 (1)	    1	0 (~src)    1	0 (~src)    1	1 (1)
- *  xor	    0	1 (src)	    0	0 (0)	    0	1 (src)	    0	0 (0)
- */
-
-int
-cfbReduceRasterOp (rop, fg, pm, andp, xorp)
-    int		    rop;
-    CfbBits   fg, pm;
-    CfbBits   *andp, *xorp;
-{
-    CfbBits   and, xor;
-    int		    rrop;
-
-    fg = PFILL (fg);
-    pm = PFILL (pm);
-    switch (rop)
-    {
-    case GXclear:
-    	and = 0;
-    	xor = 0;
-	break;
-    case GXand:
-	and = fg;
-	xor = 0;
-	break;
-    case GXandReverse:
-	and = fg;
-	xor = fg;
-	break;
-    case GXcopy:
-	and = 0;
-	xor = fg;
-	break;
-    case GXandInverted:
-	and = ~fg;
-	xor = 0;
-	break;
-    case GXnoop:
-	and = ~0;
-	xor = 0;
-	break;
-    case GXxor:
-	and = ~0;
-	xor = fg;
-	break;
-    case GXor:
-	and = ~fg;
-	xor = fg;
-	break;
-    case GXnor:
-	and = ~fg;
-	xor = ~fg;
-	break;
-    case GXequiv:
-	and = ~0;
-	xor = ~fg;
-	break;
-    case GXinvert:
-	and = ~0;
-	xor = ~0;
-	break;
-    case GXorReverse:
-	and = ~fg;
-	xor = ~0;
-	break;
-    case GXcopyInverted:
-	and = 0;
-	xor = ~fg;
-	break;
-    case GXorInverted:
-	and = fg;
-	xor = ~fg;
-	break;
-    case GXnand:
-	and = fg;
-	xor = ~0;
-	break;
-    case GXset:
-	and = 0;
-	xor = ~0;
-	break;
-    default:
-	and = xor = 0;
-	break;
-    }
-    and |= ~pm;
-    xor &= pm;
-    *andp = and;
-    *xorp = xor;
-    /* check for some special cases to reduce computation */
-    if (and == 0)
-	rrop = GXcopy;
-    /* nothing checks for GXnoop
-    else if (and == ~0 && xor == 0)
-	rrop = GXnoop;
-    */
-    else if (and == ~0)
-	rrop = GXxor;
-    else if (xor == 0)
-	rrop = GXand;
-    else if ( (and ^ xor) == ~0) /* fix XBUG 6541 */
-	rrop = GXor;
-    else
-	rrop = GXset;   /* rop not reduced */
-    return rrop;
-}
diff --git a/cfb/cfbrrop.h b/cfb/cfbrrop.h
deleted file mode 100644
index e9ca881..0000000
--- a/cfb/cfbrrop.h
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- *
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#ifndef GXcopy
-#include <X11/X.h>
-#endif
-
-#define RROP_FETCH_GC(gc) \
-    RROP_FETCH_GCPRIV((cfbPrivGCPtr)dixLookupPrivate(&(gc)->devPrivates, \
-						     cfbGCPrivateKey))
-
-#ifndef RROP
-#define RROP GXset
-#endif
-
-#if RROP == GXcopy
-#if PSZ == 24
-#define RROP_DECLARE	register CfbBits	rrop_xor; \
-    CfbBits piQxelXor[3], spiQxelXor[8];
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_xor = (devPriv)->xor; \
-    spiQxelXor[0] = rrop_xor & 0xFFFFFF; \
-    spiQxelXor[2] = rrop_xor << 24; \
-    spiQxelXor[3] = (rrop_xor & 0xFFFF00)>> 8; \
-    spiQxelXor[4] = rrop_xor << 16; \
-    spiQxelXor[5] = (rrop_xor & 0xFF0000)>> 16; \
-    spiQxelXor[6] = rrop_xor << 8; \
-    spiQxelXor[1] = spiQxelXor[7] = 0; \
-    piQxelXor[0] = (rrop_xor & 0xFFFFFF)|(rrop_xor << 24); \
-    piQxelXor[1] = (rrop_xor << 16)|((rrop_xor & 0xFFFF00)>> 8); \
-    piQxelXor[2] = (rrop_xor << 8)|((rrop_xor & 0xFF0000)>> 16);
-#define RROP_SOLID24(dst,index)	    {\
-	    register int idx = ((index) & 3)<< 1; \
-	    *(dst) = (*(dst) & cfbrmask[idx])|spiQxelXor[idx]; \
-	    if (idx == 2  ||  idx == 4){ \
-              idx++; \
-	      *((dst)+1) = (*((dst)+1) & cfbrmask[idx])|spiQxelXor[idx]; \
-	    } \
-	}
-#define RROP_SOLID(dst, idx) \
-	    (*(dst) = piQxelXor[(idx)])
-#define RROP_SOLID_MASK(dst,mask,idx) \
-	    (*(dst) = (*(dst) & ~(mask))|(piQxelXor[(idx)] & (mask)))
-#define RROP_UNDECLARE (void)piQxelXor;  (void)spiQxelXor;
-#else
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_xor = (devPriv)->xor;
-#define RROP_DECLARE	register CfbBits	rrop_xor;
-#define RROP_SOLID(dst)	    (*(dst) = (rrop_xor))
-#define RROP_SOLID_MASK(dst,mask) (*(dst) = (*(dst) & ~(mask)) | ((rrop_xor) & (mask)))
-#define RROP_UNDECLARE
-#endif
-#define RROP_NAME(prefix)   RROP_NAME_CAT(prefix,Copy)
-#endif /* GXcopy */
-
-#if RROP == GXxor
-#if PSZ == 24
-#define RROP_DECLARE	register CfbBits	rrop_xor; \
-    CfbBits piQxelXor[3], spiQxelXor[8];
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_xor = (devPriv)->xor; \
-    spiQxelXor[0] = rrop_xor & 0xFFFFFF; \
-    spiQxelXor[2] = rrop_xor << 24; \
-    spiQxelXor[3] = (rrop_xor & 0xFFFF00)>> 8; \
-    spiQxelXor[4] = rrop_xor << 16; \
-    spiQxelXor[5] = (rrop_xor & 0xFF0000)>> 16; \
-    spiQxelXor[6] = rrop_xor << 8; \
-    spiQxelXor[1] = spiQxelXor[7] = 0; \
-    piQxelXor[0] = (rrop_xor & 0xFFFFFF)|(rrop_xor << 24); \
-    piQxelXor[1] = (rrop_xor << 16)|((rrop_xor & 0xFFFF00)>> 8); \
-    piQxelXor[2] = (rrop_xor << 8)|((rrop_xor & 0xFF0000)>> 16);
-#define RROP_SOLID24(dst,index)	     {\
-	    register int idx = ((index) & 3)<< 1; \
-	    *(dst) ^= spiQxelXor[idx]; \
-	    if (idx == 2  ||  idx == 4) \
-	      *((dst)+1) ^= spiQxelXor[idx+1]; \
-	}
-#define RROP_SOLID(dst,idx) \
-	    (*(dst) ^= piQxelXor[(idx)])
-#define RROP_SOLID_MASK(dst,mask,idx) \
-	    (*(dst) ^= (piQxelXor[(idx)] & (mask)))
-#define RROP_UNDECLARE (void)piQxelXor; (void)spiQxelXor;
-#else
-#define RROP_DECLARE	register CfbBits	rrop_xor;
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_xor = (devPriv)->xor;
-#define RROP_SOLID(dst)	    (*(dst) ^= (rrop_xor))
-#define RROP_SOLID_MASK(dst,mask) (*(dst) ^= ((rrop_xor) & (mask)))
-#define RROP_UNDECLARE
-#endif
-#define RROP_NAME(prefix)   RROP_NAME_CAT(prefix,Xor)
-#endif /* GXxor */
-
-#if RROP == GXand
-#if PSZ == 24
-#define RROP_DECLARE	register CfbBits	rrop_and; \
-    CfbBits piQxelAnd[3], spiQxelAnd[6];
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_and = (devPriv)->and; \
-    spiQxelAnd[0] = (rrop_and & 0xFFFFFF) | 0xFF000000; \
-    spiQxelAnd[2] = (rrop_and << 24) | 0xFFFFFF; \
-    spiQxelAnd[3] = ((rrop_and & 0xFFFF00)>> 8) | 0xFFFF0000; \
-    spiQxelAnd[4] = (rrop_and << 16) | 0xFFFF; \
-    spiQxelAnd[5] = ((rrop_and & 0xFF0000)>> 16) | 0xFFFFFF00; \
-    spiQxelAnd[1] = (rrop_and << 8) | 0xFF; \
-    piQxelAnd[0] = (rrop_and & 0xFFFFFF)|(rrop_and << 24); \
-    piQxelAnd[1] = (rrop_and << 16)|((rrop_and & 0xFFFF00)>> 8); \
-    piQxelAnd[2] = (rrop_and << 8)|((rrop_and & 0xFF0000)>> 16); 
-#define RROP_SOLID24(dst,index)	    {\
-	    switch((index) & 3){ \
-	    case 0: \
-	      *(dst) &= spiQxelAnd[0]; \
-	      break; \
-	    case 3: \
-	      *(dst) &= spiQxelAnd[1]; \
-	      break; \
-	    case 1: \
-	      *(dst) &= spiQxelAnd[2]; \
-	      *((dst)+1) &= spiQxelAnd[3]; \
-	      break; \
-	    case 2: \
-	      *(dst) &= spiQxelAnd[4]; \
-	      *((dst)+1) &= spiQxelAnd[5]; \
-	      break; \
-	    } \
-	    }
-#define RROP_SOLID(dst,idx) \
-	    (*(dst) &= piQxelAnd[(idx)])
-#define RROP_SOLID_MASK(dst,mask,idx) \
-	    (*(dst) &= (piQxelAnd[(idx)] | ~(mask)))
-#define RROP_UNDECLARE (void)piQxelAnd; (void)spiQxelAnd;
-#else
-#define RROP_DECLARE	register CfbBits	rrop_and;
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_and = (devPriv)->and;
-#define RROP_SOLID(dst)	    (*(dst) &= (rrop_and))
-#define RROP_SOLID_MASK(dst,mask) (*(dst) &= ((rrop_and) | ~(mask)))
-#define RROP_UNDECLARE
-#endif
-#define RROP_NAME(prefix)   RROP_NAME_CAT(prefix,And)
-#endif /* GXand */
-
-#if RROP == GXor
-#if PSZ == 24
-#define RROP_DECLARE	register CfbBits	rrop_or; \
-    CfbBits piQxelOr[3], spiQxelOr[6];
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_or = (devPriv)->xor; \
-    spiQxelOr[0] = rrop_or & 0xFFFFFF; \
-    spiQxelOr[1] = rrop_or << 24; \
-    spiQxelOr[2] = rrop_or << 16; \
-    spiQxelOr[3] = rrop_or << 8; \
-    spiQxelOr[4] = (rrop_or & 0xFFFF00)>> 8; \
-    spiQxelOr[5] = (rrop_or & 0xFF0000)>> 16; \
-    piQxelOr[0] = (rrop_or & 0xFFFFFF)|(rrop_or << 24); \
-    piQxelOr[1] = (rrop_or << 16)|((rrop_or & 0xFFFF00)>> 8); \
-    piQxelOr[2] = (rrop_or << 8)|((rrop_or & 0xFF0000)>> 16);
-#define RROP_SOLID24(dst,index)	     {\
-	    switch((index) & 3){ \
-	    case 0: \
-	      *(dst) |= spiQxelOr[0]; \
-	      break; \
-	    case 3: \
-	      *(dst) |= spiQxelOr[3]; \
-	      break; \
-	    case 1: \
-	      *(dst) |= spiQxelOr[1]; \
-	      *((dst)+1) |= spiQxelOr[4]; \
-	      break; \
-	    case 2: \
-	      *(dst) |= spiQxelOr[2]; \
-	      *((dst)+1) |= spiQxelOr[5]; \
-	      break; \
-	    } \
-	    }
-#define RROP_SOLID(dst,idx) \
-	    (*(dst) |= piQxelOr[(idx)])
-#define RROP_SOLID_MASK(dst,mask,idx) \
-	    (*(dst) |= (piQxelOr[(idx)] & (mask)))
-#define RROP_UNDECLARE (void)piQxelOr;  (void)spiQxelOr;
-#else
-#define RROP_DECLARE	register CfbBits	rrop_or;
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_or = (devPriv)->xor;
-#define RROP_SOLID(dst)	    (*(dst) |= (rrop_or))
-#define RROP_SOLID_MASK(dst,mask) (*(dst) |= ((rrop_or) & (mask)))
-#define RROP_UNDECLARE
-#endif
-#define RROP_NAME(prefix)   RROP_NAME_CAT(prefix,Or)
-#endif /* GXor */
-
-#if RROP == GXnoop
-#define RROP_DECLARE
-#define RROP_FETCH_GCPRIV(devPriv)
-#define RROP_SOLID(dst)
-#define RROP_SOLID_MASK(dst,mask)
-#define RROP_NAME(prefix)   RROP_NAME_CAT(prefix,Noop)
-#define RROP_UNDECLARE
-#endif /* GXnoop */
-
-#if RROP ==  GXset
-#if PSZ == 24
-#define RROP_DECLARE	    register CfbBits	rrop_and, rrop_xor; \
-    CfbBits piQxelAnd[3], piQxelXor[3],  spiQxelAnd[6], spiQxelXor[6];
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_and = (devPriv)->and; \
-				    rrop_xor = (devPriv)->xor; \
-    spiQxelXor[0] = rrop_xor & 0xFFFFFF; \
-    spiQxelXor[1] = rrop_xor << 24; \
-    spiQxelXor[2] = rrop_xor << 16; \
-    spiQxelXor[3] = rrop_xor << 8; \
-    spiQxelXor[4] = (rrop_xor & 0xFFFF00)>> 8; \
-    spiQxelXor[5] = (rrop_xor & 0xFF0000)>> 16; \
-    spiQxelAnd[0] = (rrop_and & 0xFFFFFF) | 0xFF000000; \
-    spiQxelAnd[1] = (rrop_and << 24) | 0xFFFFFF; \
-    spiQxelAnd[2] = (rrop_and << 16) | 0xFFFF; \
-    spiQxelAnd[3] = (rrop_and << 8) | 0xFF; \
-    spiQxelAnd[4] = ((rrop_and & 0xFFFF00)>> 8) | 0xFFFF0000; \
-    spiQxelAnd[5] = ((rrop_and & 0xFF0000)>> 16) | 0xFFFFFF00; \
-    piQxelAnd[0] = (rrop_and & 0xFFFFFF)|(rrop_and << 24); \
-    piQxelAnd[1] = (rrop_and << 16)|((rrop_and & 0xFFFF00)>> 8); \
-    piQxelAnd[2] = (rrop_and << 8)|((rrop_and & 0xFF0000)>> 16); \
-    piQxelXor[0] = (rrop_xor & 0xFFFFFF)|(rrop_xor << 24); \
-    piQxelXor[1] = (rrop_xor << 16)|((rrop_xor & 0xFFFF00)>> 8); \
-    piQxelXor[2] = (rrop_xor << 8)|((rrop_xor & 0xFF0000)>> 16);
-#define RROP_SOLID24(dst,index)	     {\
-	    switch((index) & 3){ \
-	    case 0: \
-	      *(dst) = ((*(dst) & (piQxelAnd[0] |0xFF000000))^(piQxelXor[0] & 0xFFFFFF)); \
-	      break; \
-	    case 3: \
-	      *(dst) = ((*(dst) & (piQxelAnd[2]|0xFF))^(piQxelXor[2] & 0xFFFFFF00)); \
-	      break; \
-	    case 1: \
-	      *(dst) = ((*(dst) & (piQxelAnd[0]|0xFFFFFF))^(piQxelXor[0] & 0xFF000000)); \
-	      *((dst)+1) = ((*((dst)+1) & (piQxelAnd[1]|0xFFFF0000))^(piQxelXor[1] & 0xFFFF)); \
-	      break; \
-	    case 2: \
-	      *(dst) = ((*(dst) & (piQxelAnd[1]|0xFFFF))^(piQxelXor[1] & 0xFFFF0000)); \
-	      *((dst)+1) = ((*((dst)+1) & (piQxelAnd[2]|0xFFFFFF00))^(piQxelXor[2] & 0xFF)); \
-	      break; \
-	    } \
-	    }
-#define RROP_SOLID(dst,idx) \
-	    (*(dst) = DoRRop (*(dst), piQxelAnd[(idx)], piQxelXor[(idx)]))
-#define RROP_SOLID_MASK(dst,mask,idx) \
-	    (*(dst) = DoMaskRRop (*(dst), piQxelAnd[(idx)], piQxelXor[(idx)], (mask)))
-#define RROP_UNDECLARE (void)piQxelAnd;  (void)piQxelXor; \
-		       (void)spiQxelAnd;  (void)spiQxelXor;
-#else
-#define RROP_DECLARE	    register CfbBits	rrop_and, rrop_xor;
-#define RROP_FETCH_GCPRIV(devPriv)  rrop_and = (devPriv)->and; \
-				    rrop_xor = (devPriv)->xor;
-#define RROP_SOLID(dst)	    (*(dst) = DoRRop (*(dst), rrop_and, rrop_xor))
-#define RROP_SOLID_MASK(dst,mask)   (*(dst) = DoMaskRRop (*(dst), rrop_and, rrop_xor, (mask)))
-#define RROP_UNDECLARE
-#endif
-#define RROP_NAME(prefix)   RROP_NAME_CAT(prefix,General)
-#endif /* GXset */
-
-#define RROP_UNROLL_CASE1(p,i)    case (i): RROP_SOLID((p) - (i));
-#define RROP_UNROLL_CASE2(p,i)    RROP_UNROLL_CASE1(p,(i)+1) RROP_UNROLL_CASE1(p,i)
-#define RROP_UNROLL_CASE4(p,i)    RROP_UNROLL_CASE2(p,(i)+2) RROP_UNROLL_CASE2(p,i)
-#define RROP_UNROLL_CASE8(p,i)    RROP_UNROLL_CASE4(p,(i)+4) RROP_UNROLL_CASE4(p,i)
-#define RROP_UNROLL_CASE16(p,i)   RROP_UNROLL_CASE8(p,(i)+8) RROP_UNROLL_CASE8(p,i)
-#define RROP_UNROLL_CASE32(p,i)   RROP_UNROLL_CASE16(p,(i)+16) RROP_UNROLL_CASE16(p,i)
-#define RROP_UNROLL_CASE3(p)	RROP_UNROLL_CASE2(p,2) RROP_UNROLL_CASE1(p,1)
-#define RROP_UNROLL_CASE7(p)	RROP_UNROLL_CASE4(p,4) RROP_UNROLL_CASE3(p)
-#define RROP_UNROLL_CASE15(p)	RROP_UNROLL_CASE8(p,8) RROP_UNROLL_CASE7(p)
-#define RROP_UNROLL_CASE31(p)	RROP_UNROLL_CASE16(p,16) RROP_UNROLL_CASE15(p)
-#ifdef LONG64
-#define RROP_UNROLL_CASE63(p)	RROP_UNROLL_CASE32(p,32) RROP_UNROLL_CASE31(p)
-#endif /* LONG64 */
-
-#define RROP_UNROLL_LOOP1(p,i) RROP_SOLID((p) + (i));
-#define RROP_UNROLL_LOOP2(p,i) RROP_UNROLL_LOOP1(p,(i)) RROP_UNROLL_LOOP1(p,(i)+1)
-#define RROP_UNROLL_LOOP4(p,i) RROP_UNROLL_LOOP2(p,(i)) RROP_UNROLL_LOOP2(p,(i)+2)
-#define RROP_UNROLL_LOOP8(p,i) RROP_UNROLL_LOOP4(p,(i)) RROP_UNROLL_LOOP4(p,(i)+4)
-#define RROP_UNROLL_LOOP16(p,i) RROP_UNROLL_LOOP8(p,(i)) RROP_UNROLL_LOOP8(p,(i)+8)
-#define RROP_UNROLL_LOOP32(p,i) RROP_UNROLL_LOOP16(p,(i)) RROP_UNROLL_LOOP16(p,(i)+16)
-#ifdef LONG64
-#define RROP_UNROLL_LOOP64(p,i) RROP_UNROLL_LOOP32(p,(i)) RROP_UNROLL_LOOP32(p,(i)+32)
-#endif /* LONG64 */
-
-#if defined (FAST_CONSTANT_OFFSET_MODE) && defined (SHARED_IDCACHE) && (RROP == GXcopy)
-
-#ifdef LONG64
-#define RROP_UNROLL_SHIFT	6
-#define RROP_UNROLL_CASE(p)	RROP_UNROLL_CASE63(p)
-#define RROP_UNROLL_LOOP(p)	RROP_UNROLL_LOOP64(p,-64)
-#else /* not LONG64 */
-#define RROP_UNROLL_SHIFT	5
-#define RROP_UNROLL_CASE(p)	RROP_UNROLL_CASE31(p)
-#define RROP_UNROLL_LOOP(p)	RROP_UNROLL_LOOP32(p,-32)
-#endif /* LONG64 */
-#define RROP_UNROLL		(1<<RROP_UNROLL_SHIFT)
-#define RROP_UNROLL_MASK	(RROP_UNROLL-1)
-
-#define RROP_SPAN(pdst,nmiddle) {\
-    int part = (nmiddle) & RROP_UNROLL_MASK; \
-    (nmiddle) >>= RROP_UNROLL_SHIFT; \
-    (pdst) += part * (sizeof (CfbBits) / sizeof (*pdst)); \
-    switch (part) {\
-	RROP_UNROLL_CASE((CfbBits *) (pdst)) \
-    } \
-    while (--(nmiddle) >= 0) { \
-	(pdst) += RROP_UNROLL * (sizeof (CfbBits) / sizeof (*pdst)); \
-	RROP_UNROLL_LOOP((CfbBits *) (pdst)) \
-    } \
-}
-#else
-#define RROP_SPAN(pdst,nmiddle) \
-    while (--(nmiddle) >= 0) { \
-	RROP_SOLID((CfbBits *) (pdst)); \
-	(pdst) += sizeof (CfbBits) / sizeof (*pdst); \
-    }
-#endif
-
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define RROP_NAME_CAT(prefix,suffix)	prefix##suffix
-#else
-#define RROP_NAME_CAT(prefix,suffix)	prefix/**/suffix
-#endif
diff --git a/cfb/cfbscrinit.c b/cfb/cfbscrinit.c
deleted file mode 100644
index 6f9ba2e..0000000
--- a/cfb/cfbscrinit.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/************************************************************
-Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
-
-                    All Rights Reserved
-
-Permission  to  use,  copy,  modify,  and  distribute   this
-software  and  its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright no-
-tice  appear  in all copies and that both that copyright no-
-tice and this permission notice appear in  supporting  docu-
-mentation,  and  that the names of Sun or The Open Group
-not be used in advertising or publicity pertaining to 
-distribution  of  the software  without specific prior 
-written permission. Sun and The Open Group make no 
-representations about the suitability of this software for 
-any purpose. It is provided "as is" without any express or 
-implied warranty.
-
-SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO  THIS  SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
-NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE  LI-
-ABLE  FOR  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  DATA  OR
-PROFITS,  WHETHER  IN  AN  ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "resource.h"
-#include "colormap.h"
-#include "colormapst.h"
-#include "cfb.h"
-#include "mi.h"
-#include "mistruct.h"
-#include "dix.h"
-#include "cfbmskbits.h"
-#include "mibstore.h"
-
-Bool
-cfbCloseScreen (index, pScreen)
-    int		index;
-    ScreenPtr	pScreen;
-{
-    int	    d;
-    DepthPtr	depths = pScreen->allowedDepths;
-
-    for (d = 0; d < pScreen->numDepths; d++)
-	xfree (depths[d].vids);
-    xfree (depths);
-    xfree (pScreen->visuals);
-#ifdef CFB_NEED_SCREEN_PRIVATE
-    xfree (dixLookupPrivate(&pScreen->devPrivates, cfbScreenPrivateKey));
-#else
-    xfree (pScreen->devPrivate);
-#endif
-    return TRUE;
-}
-
-static void DestroyColormapNoop(
-        ColormapPtr pColormap)
-{
-    /* NOOP */
-}
-
-static void StoreColorsNoop(
-        ColormapPtr pColormap,
-        int ndef,
-        xColorItem * pdef)
-{
-    /* NOOP */
-}
-
-Bool
-cfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width)
-    register ScreenPtr pScreen;
-    pointer pbits;		/* pointer to screen bitmap */
-    int xsize, ysize;		/* in pixels */
-    int dpix, dpiy;		/* dots per inch */
-    int width;			/* pixel width of frame buffer */
-{
-    if (!cfbAllocatePrivates(pScreen, NULL))
-	return FALSE;
-    pScreen->defColormap = FakeClientID(0);
-    /* let CreateDefColormap do whatever it wants for pixels */ 
-    pScreen->blackPixel = pScreen->whitePixel = (Pixel) 0;
-    pScreen->QueryBestSize = mfbQueryBestSizeWeak();
-    /* SaveScreen */
-    pScreen->GetImage = cfbGetImage;
-    pScreen->GetSpans = cfbGetSpans;
-    pScreen->CreateWindow = cfbCreateWindow;
-    pScreen->DestroyWindow = cfbDestroyWindow;
-    pScreen->PositionWindow = cfbPositionWindow;
-    pScreen->ChangeWindowAttributes = cfbChangeWindowAttributes;
-    pScreen->RealizeWindow = cfbMapWindow;
-    pScreen->UnrealizeWindow = cfbUnmapWindow;
-    pScreen->CopyWindow = cfbCopyWindow;
-    pScreen->CreatePixmap = cfbCreatePixmap;
-    pScreen->DestroyPixmap = cfbDestroyPixmap;
-    pScreen->RealizeFont = mfbRealizeFontWeak();
-    pScreen->UnrealizeFont = mfbUnrealizeFontWeak();
-    pScreen->CreateGC = cfbCreateGC;
-    pScreen->CreateColormap = cfbInitializeColormap;
-    pScreen->DestroyColormap = DestroyColormapNoop;
-    pScreen->InstallColormap = cfbInstallColormap;
-    pScreen->UninstallColormap = cfbUninstallColormap;
-    pScreen->ListInstalledColormaps = cfbListInstalledColormaps;
-    pScreen->StoreColors = StoreColorsNoop;
-    pScreen->ResolveColor = cfbResolveColor;
-    pScreen->BitmapToRegion = mfbPixmapToRegionWeak();
-
-    mfbRegisterCopyPlaneProc (pScreen, cfbCopyPlane);
-    return TRUE;
-}
-
-#ifdef CFB_NEED_SCREEN_PRIVATE
-Bool
-cfbCreateScreenResources(pScreen)
-    ScreenPtr pScreen;
-{
-    Bool retval;
-
-    pointer oldDevPrivate = pScreen->devPrivate;
-    pScreen->devPrivate = dixLookupPrivate(&pScreen->devPrivates,
-					   cfbScreenPrivateKey);
-    retval = miCreateScreenResources(pScreen);
-    dixSetPrivate(&pScreen->devPrivates, cfbScreenPrivateKey,
-		  pScreen->devPrivate);
-    pScreen->devPrivate = oldDevPrivate;
-    return retval;
-}
-#endif
-
-Bool
-cfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width)
-    register ScreenPtr pScreen;
-    pointer pbits;		/* pointer to screen bitmap */
-    int xsize, ysize;		/* in pixels */
-    int dpix, dpiy;		/* dots per inch */
-    int width;			/* pixel width of frame buffer */
-{
-#ifdef CFB_NEED_SCREEN_PRIVATE
-    pointer oldDevPrivate;
-#endif
-    VisualPtr	visuals;
-    DepthPtr	depths;
-    int		nvisuals;
-    int		ndepths;
-    int		rootdepth;
-    VisualID	defaultVisual;
-
-    rootdepth = 0;
-    if (!cfbInitVisuals (&visuals, &depths, &nvisuals, &ndepths, &rootdepth,
-			 &defaultVisual,((unsigned long)1<<(PSZ-1)), 8))
-	return FALSE;
-#ifdef CFB_NEED_SCREEN_PRIVATE
-    oldDevPrivate = pScreen->devPrivate;
-#endif
-    if (! miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width,
-			rootdepth, ndepths, depths,
-			defaultVisual, nvisuals, visuals))
-	return FALSE;
-    /* overwrite miCloseScreen with our own */
-    pScreen->CloseScreen = cfbCloseScreen;
-#ifdef CFB_NEED_SCREEN_PRIVATE
-    pScreen->CreateScreenResources = cfbCreateScreenResources;
-    dixSetPrivate(&pScreen->devPrivates, cfbScreenPrivateKey,
-		  pScreen->devPrivate);
-    pScreen->devPrivate = oldDevPrivate;
-#endif
-    pScreen->GetScreenPixmap = cfbGetScreenPixmap;
-    pScreen->SetScreenPixmap = cfbSetScreenPixmap;
-    return TRUE;
-}
-
-/* dts * (inch/dot) * (25.4 mm / inch) = mm */
-Bool
-cfbScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width)
-    register ScreenPtr pScreen;
-    pointer pbits;		/* pointer to screen bitmap */
-    int xsize, ysize;		/* in pixels */
-    int dpix, dpiy;		/* dots per inch */
-    int width;			/* pixel width of frame buffer */
-{
-    if (!cfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width))
-	return FALSE;
-    return cfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width);
-}
-
-PixmapPtr
-cfbGetScreenPixmap(pScreen)
-    ScreenPtr pScreen;
-{
-#ifdef CFB_NEED_SCREEN_PRIVATE
-    return (PixmapPtr)dixLookupPrivate(&pScreen->devPrivates,
-				       cfbScreenPrivateKey);
-#else
-    return (PixmapPtr)pScreen->devPrivate;
-#endif
-}
-
-void
-cfbSetScreenPixmap(pPix)
-    PixmapPtr pPix;
-{
-#ifdef CFB_NEED_SCREEN_PRIVATE
-    if (pPix)
-	dixSetPrivate(&pPix->drawable.pScreen->devPrivates,
-		      cfbScreenPrivateKey, pPix);
-#else
-    if (pPix)
-	pPix->drawable.pScreen->devPrivate = (pointer)pPix;
-#endif
-}
diff --git a/cfb/cfbsetsp.c b/cfb/cfbsetsp.c
deleted file mode 100644
index a000fd9..0000000
--- a/cfb/cfbsetsp.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-
-#include "misc.h"
-#include "regionstr.h"
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include <mergerop.h>
-
-/* cfbSetScanline -- copies the bits from psrc to the drawable starting at
- * (xStart, y) and continuing to (xEnd, y).  xOrigin tells us where psrc 
- * starts on the scanline. (I.e., if this scanline passes through multiple
- * boxes, we may not want to start grabbing bits at psrc but at some offset
- * further on.) 
- */
-void
-cfbSetScanline(y, xOrigin, xStart, xEnd, psrc, alu, pdstBase, widthDst, planemask)
-    int			y;
-    int			xOrigin;	/* where this scanline starts */
-    int			xStart;		/* first bit to use from scanline */
-    int			xEnd;		/* last bit to use from scanline + 1 */
-    register unsigned int *psrc;
-    register int	alu;		/* raster op */
-    int			*pdstBase;	/* start of the drawable */
-    int			widthDst;	/* width of drawable in words */
-    unsigned long	planemask;
-{
-    int			w;		/* width of scanline in bits */
-    register int	*pdst;		/* where to put the bits */
-    register int	tmpSrc;		/* scratch buffer to collect bits in */
-    int			offSrc;
-    int			nl;
-#if PSZ == 24
-    register char *psrcb, *pdstb;
-    register int	xIndex;
-#else
-    int			dstBit;		/* offset in bits from beginning of
-					 * word */
-    register int	nstart; 	/* number of bits from first partial */
-#if PSZ != 32 || PPW != 1
-    register int	nend; 		/* " " last partial word */
-#endif
-    int			startmask, endmask, nlMiddle;
-#endif
-    DeclareMergeRop()
-
-    InitializeMergeRop(alu,planemask);
-#if PSZ == 24
-    pdst = pdstBase + (y * widthDst);
-    xIndex = xStart;
-    pdstb = (char *)pdst + (xStart * 3);
-    offSrc = xStart - xOrigin;
-    psrcb = (char *)psrc + (offSrc * 3);
-#else
-    pdst = pdstBase + (y * widthDst) + (xStart >> PWSH); 
-    psrc += (xStart - xOrigin) >> PWSH;
-    offSrc = (xStart - xOrigin) & PIM;
-#endif
-    w = xEnd - xStart;
-
-#if PSZ == 24
-    nl = w;
-    while (nl--){
-      psrc = (unsigned int *)((unsigned long)psrcb & ~0x03);
-      getbits24(psrc, tmpSrc, offSrc);
-      pdst = (int *)((unsigned long)pdstb & ~0x03);
-      DoMergeRop24(tmpSrc, pdst, xIndex);
-      offSrc++;
-      psrcb += 3;
-      xIndex++;
-      pdstb += 3;
-    } 
-#else /* PSZ == 24 */
-    dstBit = xStart & PIM;
-    if (dstBit + w <= PPW) 
-    { 
-	maskpartialbits(dstBit, w, startmask);
-	endmask = 0;
-	nlMiddle = 0;
-    } 
-    else 
-    { 
-	maskbits(xStart, w, startmask, endmask, nlMiddle);
-    }
-    if (startmask) 
-	nstart = PPW - dstBit; 
-    else 
-	nstart = 0; 
-#if PSZ != 32 || PPW != 1
-    if (endmask) 
-	nend = xEnd & PIM; 
-    else 
-	nend = 0; 
-#endif
-    if (startmask) 
-    { 
-	getbits(psrc, offSrc, nstart, tmpSrc);
-	putbitsmropshort(tmpSrc, dstBit, nstart, pdst);
-	pdst++; 
-	offSrc += nstart;
-	if (offSrc > PLST)
-	{
-	    psrc++;
-	    offSrc -= PPW;
-	}
-    } 
-    nl = nlMiddle; 
-    while (nl--) 
-    { 
-	getbits(psrc, offSrc, PPW, tmpSrc);
-	*pdst = DoMergeRop(tmpSrc, *pdst);
-	pdst++; 
-	psrc++; 
-    } 
-    if (endmask) 
-    { 
-	getbits(psrc, offSrc, nend, tmpSrc);
-	putbitsmropshort(tmpSrc, 0, nend, pdst);
-    } 
-#endif /* PSZ == 24 */
-}
-
-
-
-/* SetSpans -- for each span copy pwidth[i] bits from psrc to pDrawable at
- * ppt[i] using the raster op from the GC.  If fSorted is TRUE, the scanlines
- * are in increasing Y order.
- * Source bit lines are server scanline padded so that they always begin
- * on a word boundary.
- */ 
-void
-cfbSetSpans(pDrawable, pGC, pcharsrc, ppt, pwidth, nspans, fSorted)
-    DrawablePtr		pDrawable;
-    GCPtr		pGC;
-    char		*pcharsrc;
-    register DDXPointPtr ppt;
-    int			*pwidth;
-    int			nspans;
-    int			fSorted;
-{
-    unsigned int	*psrc = (unsigned int *)pcharsrc;
-    CfbBits	*pdstBase;	/* start of dst bitmap */
-    int 		widthDst;	/* width of bitmap in words */
-    register BoxPtr 	pbox, pboxLast, pboxTest;
-    register DDXPointPtr pptLast;
-    int 		alu;
-    RegionPtr 		prgnDst;
-    int			xStart, xEnd;
-    int			yMax;
-
-    alu = pGC->alu;
-    prgnDst = cfbGetCompositeClip(pGC);
-    pptLast = ppt + nspans;
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-    yMax = (int) pDrawable->y + (int) pDrawable->height;
-
-    pbox = REGION_RECTS(prgnDst);
-    pboxLast = pbox + REGION_NUM_RECTS(prgnDst);
-
-    if(fSorted)
-    {
-    /* scan lines sorted in ascending order. Because they are sorted, we
-     * don't have to check each scanline against each clip box.  We can be
-     * sure that this scanline only has to be clipped to boxes at or after the
-     * beginning of this y-band 
-     */
-	pboxTest = pbox;
-	while(ppt < pptLast)
-	{
-	    pbox = pboxTest;
-	    if(ppt->y >= yMax)
-		break;
-	    while(pbox < pboxLast)
-	    {
-		if(pbox->y1 > ppt->y)
-		{
-		    /* scanline is before clip box */
-		    break;
-		}
-		else if(pbox->y2 <= ppt->y)
-		{
-		    /* clip box is before scanline */
-		    pboxTest = ++pbox;
-		    continue;
-		}
-		else if(pbox->x1 > ppt->x + *pwidth) 
-		{
-		    /* clip box is to right of scanline */
-		    break;
-		}
-		else if(pbox->x2 <= ppt->x)
-		{
-		    /* scanline is to right of clip box */
-		    pbox++;
-		    continue;
-		}
-
-		/* at least some of the scanline is in the current clip box */
-		xStart = max(pbox->x1, ppt->x);
-		xEnd = min(ppt->x + *pwidth, pbox->x2);
-		cfbSetScanline(ppt->y, ppt->x, xStart, xEnd, psrc, alu,
-		    (int *)pdstBase, widthDst, pGC->planemask);
-		if(ppt->x + *pwidth <= pbox->x2)
-		{
-		    /* End of the line, as it were */
-		    break;
-		}
-		else
-		    pbox++;
-	    }
-	    /* We've tried this line against every box; it must be outside them
-	     * all.  move on to the next point */
-	    ppt++;
-	    psrc += PixmapWidthInPadUnits(*pwidth, pDrawable->depth);
-	    pwidth++;
-	}
-    }
-    else
-    {
-    /* scan lines not sorted. We must clip each line against all the boxes */
-	while(ppt < pptLast)
-	{
-	    if(ppt->y >= 0 && ppt->y < yMax)
-	    {
-		
-		for(pbox = REGION_RECTS(prgnDst); pbox< pboxLast; pbox++)
-		{
-		    if(pbox->y1 > ppt->y)
-		    {
-			/* rest of clip region is above this scanline,
-			 * skip it */
-			break;
-		    }
-		    if(pbox->y2 <= ppt->y)
-		    {
-			/* clip box is below scanline */
-			pbox++;
-			break;
-		    }
-		    if(pbox->x1 <= ppt->x + *pwidth &&
-		       pbox->x2 > ppt->x)
-		    {
-			xStart = max(pbox->x1, ppt->x);
-			xEnd = min(pbox->x2, ppt->x + *pwidth);
-			cfbSetScanline(ppt->y, ppt->x, xStart, xEnd, psrc, alu,
-			    (int *)pdstBase, widthDst, pGC->planemask);
-		    }
-
-		}
-	    }
-	psrc += PixmapWidthInPadUnits(*pwidth, pDrawable->depth);
-	ppt++;
-	pwidth++;
-	}
-    }
-}
-
diff --git a/cfb/cfbsolid.c b/cfb/cfbsolid.c
deleted file mode 100644
index 6b8238d..0000000
--- a/cfb/cfbsolid.c
+++ /dev/null
@@ -1,1365 +0,0 @@
-/*
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "gcstruct.h"
-#include "window.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "cfbrrop.h"
-
-#include "mi.h"
-#include "mispans.h"
-
-#if defined(FAST_CONSTANT_OFFSET_MODE) && (RROP != GXcopy)
-# define Expand(left,right,leftAdjust) {\
-    int part = nmiddle & 3; \
-    int widthStep; \
-    widthStep = widthDst - nmiddle - leftAdjust; \
-    nmiddle >>= 2; \
-    pdst = pdstRect; \
-    while (h--) { \
-	left \
-	pdst += part; \
-	switch (part) { \
-	    RROP_UNROLL_CASE3(pdst) \
-	} \
-	m = nmiddle; \
-	while (m) { \
-	    pdst += 4; \
-	    RROP_UNROLL_LOOP4(pdst,-4) \
-	    m--; \
-	} \
-	right \
-	pdst += widthStep; \
-    } \
-}
-#else
-# ifdef RROP_UNROLL
-#  define Expand(left,right,leftAdjust) {\
-    int part = nmiddle & RROP_UNROLL_MASK; \
-    int widthStep; \
-    widthStep = widthDst - nmiddle - leftAdjust; \
-    nmiddle >>= RROP_UNROLL_SHIFT; \
-    pdst = pdstRect; \
-    while (h--) { \
-	left \
-	pdst += part; \
-	switch (part) { \
-	    RROP_UNROLL_CASE(pdst) \
-	} \
-	m = nmiddle; \
-	while (m) { \
-	    pdst += RROP_UNROLL; \
-	    RROP_UNROLL_LOOP(pdst) \
-	    m--; \
-	} \
-	right \
-	pdst += widthStep; \
-    } \
-}
-
-# else
-#  define Expand(left, right, leftAdjust) { \
-    while (h--) { \
-	pdst = pdstRect; \
-	left \
-	m = nmiddle; \
-	while (m--) {\
-	    RROP_SOLID(pdst); \
-	    pdst++; \
-	} \
-	right \
-	pdstRect += widthDst; \
-    } \
-}
-# endif
-#endif
-	
-
-void
-RROP_NAME(cfbFillRectSolid) (pDrawable, pGC, nBox, pBox)
-    DrawablePtr	    pDrawable;
-    GCPtr	    pGC;
-    int		    nBox;
-    BoxPtr	    pBox;
-{
-    register int    m;
-    register CfbBits   *pdst;
-    RROP_DECLARE
-    CfbBits   *pdstBase, *pdstRect;
-    int		    nmiddle;
-    int		    h;
-    int		    w;
-    int		    widthDst;
-#if PSZ == 24
-    int		    leftIndex, rightIndex;
-#else
-    register CfbBits   leftMask, rightMask;
-#endif
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-    RROP_FETCH_GC(pGC)
-    
-    for (; nBox; nBox--, pBox++)
-    {
-    	pdstRect = pdstBase + pBox->y1 * widthDst;
-    	h = pBox->y2 - pBox->y1;
-	w = pBox->x2 - pBox->x1;
-#if PSZ == 8
-	if (w == 1)
-	{
-	    register char    *pdstb = ((char *) pdstRect) + pBox->x1;
-	    int	    incr = widthDst * PGSZB;
-
-	    while (h--)
-	    {
-		RROP_SOLID (pdstb);
-		pdstb += incr;
-	    }
-	}
-	else
-	{
-#endif
-#if PSZ == 24
-	leftIndex = pBox->x1 &3;
-/*	rightIndex = ((leftIndex+w)<5)?0:pBox->x2 &3;*/
-	rightIndex = pBox->x2 &3;
-
-	nmiddle = w - rightIndex;
-	if(leftIndex){
-	  nmiddle -= (4 - leftIndex);
-	}
-	nmiddle >>= 2;
-	if(nmiddle < 0)
-	  nmiddle = 0;
-
-	pdstRect += (pBox->x1 * 3) >> 2;
-	pdst = pdstRect;	
-	switch(leftIndex+w){
-	case 4:
-	    switch(leftIndex){
-	    case 0:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst++ = piQxelXor[0];
-		    *pdst++ = piQxelXor[1];
-		    *pdst-- = piQxelXor[2];
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= piQxelXor[0];
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-		    *pdst++ &= piQxelAnd[0];
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-		    *pdst++ |= piQxelOr[0];
-		    *pdst++ |= piQxelOr[1];
-		    *pdst-- |= piQxelOr[2];
-#endif
-#if RROP == GXset
-		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-		    pdst--;
-#endif
-		    pdst--;
-		    pdst += widthDst;
-		}
-		break;
-	    case 1:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		    pdst++;
-		    *pdst++ = piQxelXor[1];
-		    *pdst-- = piQxelXor[2];
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[0] | 0x00FFFFFF);
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[0] & 0xFF000000);
-		    *pdst++ |= piQxelOr[1];
-		    *pdst-- |= piQxelOr[2];
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-		    pdst--;
-#endif
-		    pdst--;
-		    pdst += widthDst;
-		}
-		break;
-	    case 2:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		    pdst++;
-		    *pdst-- = piQxelXor[2];
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[1] & 0xFFFF0000);
-		    *pdst-- ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[1] | 0xFFFF);
-		    *pdst-- &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[1] & 0xFFFF0000);
-		    *pdst-- |= piQxelOr[2];
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-		    pdst--;
-#endif
-		    pdst += widthDst;
-		}
-		break;
-	    case 3:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXxor
-		    *pdst ^= (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXand
-		    *pdst &= (piQxelAnd[2] | 0xFF);
-#endif
-#if RROP == GXor
-		    *pdst |= (piQxelOr[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);
-#endif
-		    pdst += widthDst;
-		}
-		break;
-	    }
-	    break;
-	case 3:
-	    switch(leftIndex){
-	    case 0:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst++ = piQxelXor[0];
-		    *pdst++ = piQxelXor[1];
-		    *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= piQxelXor[0];
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= piQxelAnd[0];
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= (piQxeAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		    *pdst++ |= piQxelOr[0];
-		    *pdst++ |= piQxelOr[1];
-		    *pdst-- |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		    pdst--;
-#endif
-		    pdst--;
-		    pdst += widthDst;
-		}
-		break;
-	    case 1:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		    pdst++;
-		    *pdst++ = piQxelXor[1];
-		    *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[0] | 0x00FFFFFF);
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[0] & 0xFF000000);
-		    *pdst++ |= piQxelOr[1];
-		    *pdst-- |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		    pdst--;
-#endif
-		    pdst--;
-		    pdst += widthDst;
-		}
-		break;
-	    case 2:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		    pdst++;
-		    *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[1] & 0xFFFF0000);
-		    *pdst-- ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[1] | 0xFFFF);
-		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[1] & 0xFFFF0000);
-		    *pdst-- |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		    pdst--;
-#endif
-		    pdst += widthDst;
-		}
-		break;
-	    case 3:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXxor
-		    *pdst ^= (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXand
-		    *pdst &= (piQxelAnd[2] | 0xFF);
-#endif
-#if RROP == GXor
-		    *pdst |= (piQxelOr[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);
-#endif
-		    pdst += widthDst;
-		}
-		break;
-	    }
-	    break;
-	case 2: /* leftIndex + w = 2*/
-	    switch(leftIndex){
-	    case 2:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		    pdst++;
-		    *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[1] & 0xFFFF0000);
-		    *pdst-- ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[1] | 0xFFFF0000);
-		    *pdst-- &= (piQxelAnd[2] | 0xFF);
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[1] & 0xFFFF0000);
-		    *pdst-- |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		    pdst--;
-#endif
-		    pdst += widthDst;
-		  }
-		break;
-	    case 1:
-		while(h--){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		    pdst++;
-		    *pdst = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);
-		    *pdst-- ^= (piQxelXor[1] & 0xFFFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[0] | 0xFFFFFF);
-		    *pdst-- &= (piQxelAnd[1] | 0xFFFF0000);
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[0] & 0xFF000000);
-		    *pdst-- |= (piQxelOr[1] & 0xFFFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);
-		    pdst--;
-#endif
-		    pdst += widthDst;
-		  }
-		break;
-	    case 0: /*case 2 leftIndex == 0 */
-		while(h--){
-#if RROP == GXcopy
-		    *pdst++ = piQxelXor[0];
-		    *pdst = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= piQxelXor[0];
-		    *pdst-- ^= (piQxelXor[1] & 0xFFFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= piQxelAnd[0];
-		    *pdst-- &= (piQxelAnd[1] | 0xFFFF0000);
-#endif
-#if RROP == GXor
-		    *pdst++ |= piQxelOr[0];
-		    *pdst-- |= (piQxelOr[1] & 0xFFFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);
-		    pdst--;
-#endif
-		    pdst += widthDst;
-		}
-		break;
-	    }
-	    break;
-	case 1: /*only if leftIndex = 0 and w = 1*/
-	    while(h--){
-#if RROP == GXcopy
-		*pdst = ((*pdst) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);
-#endif
-#if RROP == GXxor
-		*pdst ^= (piQxelXor[0] & 0xFFFFFF);
-#endif
-#if RROP == GXand
-		*pdst &= (piQxelAnd[0] | 0xFF000000);
-#endif
-#if RROP == GXor
-		*pdst |= (piQxelOr[0] & 0xFFFFFF);
-#endif
-#if RROP == GXset
-		*pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFFFFFF);
-#endif
-		pdst += widthDst;
-	    }
-	    break;
-	case 0: /*never*/
-	    break;
-	default:
-	    {
-		while(h--){
-		    pdst = pdstRect;
-		    switch(leftIndex){
-		    case 0:
-			break;
-		    case 1:
-#if RROP == GXcopy
-			*pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-			pdst++;
-			*pdst++ = piQxelXor[1];
-			*pdst++ = piQxelXor[2];
-#endif
-#if RROP == GXxor
-			*pdst++ ^= (piQxelXor[0] & 0xFF000000);
-			*pdst++ ^= piQxelXor[1];
-			*pdst++ ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-			*pdst++ &= (piQxelAnd[0] | 0xFFFFFF);
-			*pdst++ &= piQxelAnd[1];
-			*pdst++ &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-			*pdst++ |= (piQxelOr[0] & 0xFF000000);
-			*pdst++ |= piQxelOr[1];
-			*pdst++ |= piQxelOr[2];
-#endif
-#if RROP == GXset
-			*pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-			pdst++;
-#endif
-		    break;
-		    case 2:
-#if RROP == GXcopy
-			*pdst = (((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000));
-			pdst++;
-			*pdst++ = piQxelXor[2];
-#endif
-#if RROP == GXxor
-			*pdst++ ^=(piQxelXor[1] & 0xFFFF0000);
-			*pdst++ ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-			*pdst++ &= (piQxelAnd[1] | 0xFFFF);
-			*pdst++ &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-			*pdst++ |= (piQxelOr[1] & 0xFFFF0000);
-			*pdst++ |= piQxelOr[2];
-#endif
-#if RROP == GXset
-			*pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-			pdst++;
-#endif
-			break;
-		    case 3:
-#if RROP == GXcopy
-			*pdst = ((*pdst) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-			pdst++;
-#endif
-#if RROP == GXxor
-			*pdst++ ^= (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXand
-			*pdst++ &= (piQxelAnd[2] | 0xFF);
-#endif
-#if RROP == GXor
-			*pdst++ |= (piQxelOr[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXset
-			*pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);
-			pdst++;
-#endif
-			break;
-		      }
-		    m = nmiddle;
-		    while(m--){
-#if RROP == GXcopy
-			*pdst++ = piQxelXor[0];
-			*pdst++ = piQxelXor[1];
-			*pdst++ = piQxelXor[2];
-#endif
-#if RROP == GXxor
-			*pdst++ ^= piQxelXor[0];
-			*pdst++ ^= piQxelXor[1];
-			*pdst++ ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-			*pdst++ &= piQxelAnd[0];
-			*pdst++ &= piQxelAnd[1];
-			*pdst++ &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-			*pdst++ |= piQxelOr[0];
-			*pdst++ |= piQxelOr[1];
-			*pdst++ |= piQxelOr[2];
-#endif
-#if RROP == GXset
-			*pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-			pdst++;
-#endif
-		}
-		switch(rightIndex){
-		case 0:
-		  break;
-		case 1:
-#if RROP == GXcopy
-		  *pdst = ((*pdst) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);
-		  pdst++;
-#endif
-#if RROP == GXxor
-		  *pdst++ ^= (piQxelXor[0] & 0xFFFFFF);
-#endif
-#if RROP == GXand
-		  *pdst++ &= (piQxelAnd[0] | 0xFF);
-#endif
-#if RROP == GXor
-		  *pdst++ |= (piQxelOr[0] & 0xFFFFFF);
-#endif
-#if RROP == GXset
-		  *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFFFFFF);
-		  pdst++;
-#endif
-		  break;
-		case 2:
-#if RROP == GXcopy
-		  *pdst++ = piQxelXor[0];
-		  *pdst = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		  pdst++;
-#endif
-#if RROP == GXxor
-		  *pdst++ ^= piQxelXor[0];
-		  *pdst++ ^= (piQxelXor[1] & 0xFFFF);
-#endif
-#if RROP == GXand
-		  *pdst++ &= piQxelAnd[0];
-		  *pdst++ &= (piQxelAnd[1] | 0xFFFF0000);
-#endif
-#if RROP == GXor
-		  *pdst++ |= piQxelOr[0];
-		  *pdst++ |= (piQxelOr[1] & 0xFFFF);
-#endif
-#if RROP == GXset
-		  *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		  pdst++;
-		  *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);
-		  pdst++;
-#endif
-		  break;
-		case 3:
-#if RROP == GXcopy
-		  *pdst++ = piQxelXor[0];
-		  *pdst++ = piQxelXor[1];
-		  *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		  pdst++;
-#endif
-#if RROP == GXxor
-		  *pdst++ ^= piQxelXor[0];
-		  *pdst++ ^= piQxelXor[1];
-		  *pdst++ ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		  *pdst++ &= piQxelAnd[0];
-		  *pdst++ &= piQxelAnd[1];
-		  *pdst++ &= (piQxelAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		  *pdst++ |= piQxelOr[0];
-		  *pdst++ |= piQxelOr[1];
-		  *pdst++ |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		  *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		  pdst++;
-		  *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		  pdst++;
-		  *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		  pdst++;
-#endif
-		  break;
-		}
-		pdstRect += widthDst;
-	    }
-	}
-	}
-#else /* PSZ != 24 */
-	pdstRect += (pBox->x1 >> PWSH);
-	if ((pBox->x1 & PIM) + w <= PPW)
-	{
-	    maskpartialbits(pBox->x1, w, leftMask);
-	    pdst = pdstRect;
-	    while (h--) {
-		RROP_SOLID_MASK (pdst, leftMask);
-		pdst += widthDst;
-	    }
-	}
-	else
-	{
-	    maskbits (pBox->x1, w, leftMask, rightMask, nmiddle);
-	    if (leftMask)
-	    {
-		if (rightMask)	/* left mask and right mask */
-		{
-		    Expand(RROP_SOLID_MASK (pdst, leftMask); pdst++;,
-			   RROP_SOLID_MASK (pdst, rightMask);, 1)
-		}
-		else	/* left mask and no right mask */
-		{
-		    Expand(RROP_SOLID_MASK (pdst, leftMask); pdst++;,
-			   ;, 1)
-		}
-	    }
-	    else
-	    {
-		if (rightMask)	/* no left mask and right mask */
-		{
-		    Expand(;,
-			   RROP_SOLID_MASK (pdst, rightMask);, 0)
-		}
-		else	/* no left mask and no right mask */
-		{
-		    Expand(;,
-			    ;, 0)
-		}
-	    }
-	}
-#endif
-#if PSZ == 8
-	}
-#endif
-    }
-    RROP_UNDECLARE
-}
-
-void
-RROP_NAME(cfbSolidSpans) (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted)
-    DrawablePtr pDrawable;
-    GCPtr	pGC;
-    int		nInit;			/* number of spans to fill */
-    DDXPointPtr pptInit;		/* pointer to list of start points */
-    int		*pwidthInit;		/* pointer to list of n widths */
-    int 	fSorted;
-{
-    CfbBits   *pdstBase;
-    int		    widthDst;
-
-    RROP_DECLARE
-    
-    register CfbBits  *pdst;
-    register int	    nlmiddle;
-    register int	    w;
-    int			    x;
-    
-				/* next three parameters are post-clip */
-    int		    n;		/* number of spans to fill */
-    DDXPointPtr	    ppt;	/* pointer to list of start points */
-    int		    *pwidthFree;/* copies of the pointers to free */
-    DDXPointPtr	    pptFree;
-    int		    *pwidth;
-    cfbPrivGCPtr    devPriv;
-#if PSZ == 24
-    int		    leftIndex, rightIndex;
-#else
-    register CfbBits  startmask, endmask;
-#endif
-
-    devPriv = cfbGetGCPrivate(pGC);
-    RROP_FETCH_GCPRIV(devPriv)
-    n = nInit * miFindMaxBand(pGC->pCompositeClip);
-    pwidthFree = (int *)xalloc(n * sizeof(int));
-    pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec));
-    if(!pptFree || !pwidthFree)
-    {
-	if (pptFree) xfree(pptFree);
-	if (pwidthFree) xfree(pwidthFree);
-	return;
-    }
-    pwidth = pwidthFree;
-    ppt = pptFree;
-    n = miClipSpans(pGC->pCompositeClip, pptInit, pwidthInit, nInit,
-		     ppt, pwidth, fSorted);
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-    while (n--)
-    {
-	x = ppt->x;
-	pdst = pdstBase + (ppt->y * widthDst);
-	++ppt;
-	w = *pwidth++;
-	if (!w)
-	    continue;
-#if PSZ == 24
-	leftIndex = x &3;
-/*	rightIndex = ((leftIndex+w)<5)?0:(x+w)&3;*/
-	rightIndex = (x+w)&3;
-
-	nlmiddle = w - rightIndex;
-	if(leftIndex){
-	  nlmiddle -= (4 - leftIndex);
-	}
-/*	nlmiddle += 3;*/
-	nlmiddle >>= 2;
-	if(nlmiddle < 0)
-	  nlmiddle = 0;
-
-	pdst += (x >> 2)*3;
-	pdst += leftIndex? (leftIndex -1):0;
-	switch(leftIndex+w){
-	case 4:
-	    switch(leftIndex){
-	    case 0:
-#if RROP == GXcopy
-		    *pdst++ = piQxelXor[0];
-		    *pdst++ = piQxelXor[1];
-		    *pdst-- = piQxelXor[2];
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= piQxelXor[0];
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-		    *pdst++ &= piQxelAnd[0];
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-		    *pdst++ |= piQxelOr[0];
-		    *pdst++ |= piQxelOr[1];
-		    *pdst-- |= piQxelOr[2];
-#endif
-#if RROP == GXset
-		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-		    pdst--;
-#endif
-		    pdst--;
-		break;
-	    case 1:
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		    pdst++;
-		    *pdst++ = piQxelXor[1];
-		    *pdst-- = piQxelXor[2];
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[0] | 0x00FFFFFF);
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[0] & 0xFF000000);
-		    *pdst++ |= piQxelOr[1];
-		    *pdst-- |= piQxelOr[2];
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-		    pdst--;
-#endif
-		    pdst--;
-		break;
-	    case 2:
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		    pdst++;
-		    *pdst-- = piQxelXor[2];
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[1] & 0xFFFF0000);
-		    *pdst-- ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[1] | 0xFFFF);
-		    *pdst-- &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[1] & 0xFFFF0000);
-		    *pdst-- |= piQxelOr[2];
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-		    pdst--;
-#endif
-		break;
-	    case 3:
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXxor
-		    *pdst ^= (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXand
-		    *pdst &= (piQxelAnd[2] | 0xFF);
-#endif
-#if RROP == GXor
-		    *pdst |= (piQxelOr[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);
-#endif
-		break;
-	    }
-	    break;
-	case 3:
-	    switch(leftIndex){
-	    case 0:
-#if RROP == GXcopy
-		    *pdst++ = piQxelXor[0];
-		    *pdst++ = piQxelXor[1];
-		    *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= piQxelXor[0];
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= piQxelAnd[0];
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		    *pdst++ |= piQxelOr[0];
-		    *pdst++ |= piQxelOr[1];
-
-		    *pdst-- |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		    pdst--;
-#endif
-		    pdst--;
-		break;
-	    case 1:
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		    pdst++;
-		    *pdst++ = piQxelXor[1];
-		    *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);
-		    *pdst++ ^= piQxelXor[1];
-		    *pdst-- ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[0] | 0x00FFFFFF);
-		    *pdst++ &= piQxelAnd[1];
-		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[0] & 0xFF000000);
-		    *pdst++ |= piQxelOr[1];
-		    *pdst-- |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-		    pdst++;
-		    *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		    pdst--;
-#endif
-		    pdst--;
-		break;
-	    case 2:
-/*		pdst++;*/
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000);
-		    pdst++;
-		    *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[1] & 0xFFFF0000);
-		    *pdst-- ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[1] | 0xFFFF);
-		    *pdst-- &= (piQxelAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[1] & 0xFFFF0000);
-		    *pdst-- |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		    pdst--;
-#endif
-		break;
-	    }
-	    break;
-	case 2: /* leftIndex + w = 2*/
-	    if(leftIndex){
-#if RROP == GXcopy
-		    *pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-		    pdst++;
-		    *pdst = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= (piQxelXor[0] & 0xFF000000);
-		    *pdst-- ^= (piQxelXor[1] & 0xFFFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= (piQxelAnd[0] | 0xFFFFFF);
-		    *pdst-- &= (piQxelAnd[1] | 0xFFFF0000);
-#endif
-#if RROP == GXor
-		    *pdst++ |= (piQxelOr[0] & 0xFF000000);
-		    *pdst-- |= (piQxelOr[1] & 0xFFFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);
-		    pdst--;
-#endif
-	    }
-	    else{ /*case 2 leftIndex === 0 */
-#if RROP == GXcopy
-		    *pdst++ = piQxelXor[0];
-		    *pdst = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		    pdst--;
-#endif
-#if RROP == GXxor
-		    *pdst++ ^= piQxelXor[0];
-		    *pdst-- ^= (piQxelXor[1] & 0xFFFF);
-#endif
-#if RROP == GXand
-		    *pdst++ &= piQxelAnd[0];
-		    *pdst-- &= (piQxelAnd[1] | 0xFFFF0000);
-#endif
-#if RROP == GXor
-		    *pdst++ |= piQxelOr[0];
-		    *pdst-- |= (piQxelOr[1] & 0xFFFF);
-#endif
-#if RROP == GXset
-		    *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		    pdst++;
-		    *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);
-		    pdst--;
-#endif
-	    }
-	    break;
-	case 1: /*only if leftIndex = 0 and w = 1*/
-#if RROP == GXcopy
-		*pdst = ((*pdst) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);
-#endif
-#if RROP == GXxor
-		*pdst ^= (piQxelXor[0] & 0xFFFFFF);
-#endif
-#if RROP == GXand
-		*pdst &= (piQxelAnd[0] | 0xFF000000);
-#endif
-#if RROP == GXor
-		*pdst |= (piQxelOr[0] & 0xFFFFFF);
-#endif
-#if RROP == GXset
-		*pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFFFFFF);
-#endif
-	    break;
-	case 0: /*never*/
-	    break;
-	default:
-	{
-	    switch(leftIndex){
-		    case 0:
-			break;
-		    case 1:
-#if RROP == GXcopy
-			*pdst = ((*pdst) & 0xFFFFFF) | (piQxelXor[0] & 0xFF000000);
-			pdst++;
-			*pdst++ = piQxelXor[1];
-			*pdst++ = piQxelXor[2];
-#endif
-#if RROP == GXxor
-			*pdst++ ^= (piQxelXor[0] & 0xFF000000);
-			*pdst++ ^= piQxelXor[1];
-			*pdst++ ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-			*pdst++ &= (piQxelAnd[0] | 0xFFFFFF);
-			*pdst++ &= piQxelAnd[1];
-			*pdst++ &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-			*pdst++ |= (piQxelOr[0] & 0xFF000000);
-			*pdst++ |= piQxelOr[1];
-			*pdst++ |= piQxelOr[2];
-#endif
-#if RROP == GXset
-			*pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFF000000);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-			pdst++;
-#endif
-		    break;
-		    case 2:
-#if RROP == GXcopy
-			*pdst = (((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000));
-			pdst++;
-			*pdst++ = piQxelXor[2];
-#endif
-#if RROP == GXxor
-			*pdst++ ^=(piQxelXor[1] & 0xFFFF0000);
-			*pdst++ ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-			*pdst++ &= (piQxelAnd[1] | 0xFFFF);
-			*pdst++ &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-			*pdst++ |= (piQxelOr[1] & 0xFFFF0000);
-			*pdst++ |= piQxelOr[2];
-#endif
-#if RROP == GXset
-			*pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF0000);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-			pdst++;
-#endif
-			break;
-		    case 3:
-#if RROP == GXcopy
-			*pdst = ((*pdst) & 0xFF) | (piQxelXor[2] & 0xFFFFFF00);
-			pdst++;
-#endif
-#if RROP == GXxor
-			*pdst++ ^= (piQxelXor[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXand
-			*pdst++ &= (piQxelAnd[2] | 0xFF);
-#endif
-#if RROP == GXor
-			*pdst++ |= (piQxelOr[2] & 0xFFFFFF00);
-#endif
-#if RROP == GXset
-			*pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFFFFFF00);
-			pdst++;
-#endif
-			break;
-		    }
-		    while(nlmiddle--){
-#if RROP == GXcopy
-			*pdst++ = piQxelXor[0];
-			*pdst++ = piQxelXor[1];
-			*pdst++ = piQxelXor[2];
-#endif
-#if RROP == GXxor
-			*pdst++ ^= piQxelXor[0];
-			*pdst++ ^= piQxelXor[1];
-			*pdst++ ^= piQxelXor[2];
-#endif
-#if RROP == GXand
-			*pdst++ &= piQxelAnd[0];
-			*pdst++ &= piQxelAnd[1];
-			*pdst++ &= piQxelAnd[2];
-#endif
-#if RROP == GXor
-			*pdst++ |= piQxelOr[0];
-			*pdst++ |= piQxelOr[1];
-			*pdst++ |= piQxelOr[2];
-#endif
-#if RROP == GXset
-			*pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-			pdst++;
-			*pdst = DoRRop((*pdst), piQxelAnd[2], piQxelXor[2]);
-			pdst++;
-#endif
-		}
-		switch(rightIndex){
-		case 0:
-		  break;
-		case 1:
-#if RROP == GXcopy
-		  *pdst = ((*pdst) & 0xFF000000) | (piQxelXor[0] & 0xFFFFFF);
-		  pdst++;
-#endif
-#if RROP == GXxor
-		  *pdst++ ^= (piQxelXor[0] & 0xFFFFFF);
-#endif
-#if RROP == GXand
-		  *pdst++ &= (piQxelAnd[0] | 0xFF);
-#endif
-#if RROP == GXor
-		  *pdst++ |= (piQxelOr[0] & 0xFFFFFF);
-#endif
-#if RROP == GXset
-		  *pdst = DoMaskRRop((*pdst), piQxelAnd[0], piQxelXor[0], 0xFFFFFF);
-#endif
-		  break;
-		case 2:
-#if RROP == GXcopy
-		  *pdst++ = piQxelXor[0];
-		  *pdst = ((*pdst) & 0xFFFF0000) | (piQxelXor[1] & 0xFFFF);
-		  pdst++;
-#endif
-#if RROP == GXxor
-		  *pdst++ ^= piQxelXor[0];
-		  *pdst++ ^= (piQxelXor[1] & 0xFFFF);
-#endif
-#if RROP == GXand
-		  *pdst++ &= piQxelAnd[0];
-		  *pdst++ &= (piQxelAnd[1] | 0xFFFF0000);
-#endif
-#if RROP == GXor
-		  *pdst++ |= piQxelOr[0];
-		  *pdst++ |= (piQxelOr[1] & 0xFFFF);
-#endif
-#if RROP == GXset
-		  *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		  pdst++;
-		  *pdst = DoMaskRRop((*pdst), piQxelAnd[1], piQxelXor[1], 0xFFFF);
-		  pdst++;
-#endif
-		  break;
-		case 3:
-#if RROP == GXcopy
-		  *pdst++ = piQxelXor[0];
-		  *pdst++ = piQxelXor[1];
-		  *pdst = ((*pdst) & 0xFFFFFF00) | (piQxelXor[2] & 0xFF);
-		  pdst++;
-#endif
-#if RROP == GXxor
-		  *pdst++ ^= piQxelXor[0];
-		  *pdst++ ^= piQxelXor[1];
-		  *pdst++ ^= (piQxelXor[2] & 0xFF);
-#endif
-#if RROP == GXand
-		  *pdst++ &= piQxelAnd[0];
-		  *pdst++ &= piQxelAnd[1];
-		  *pdst++ &= (piQxelAnd[2] | 0xFFFFFF00);
-#endif
-#if RROP == GXor
-		  *pdst++ |= piQxelOr[0];
-		  *pdst++ |= piQxelOr[1];
-		  *pdst++ |= (piQxelOr[2] & 0xFF);
-#endif
-#if RROP == GXset
-		  *pdst = DoRRop((*pdst), piQxelAnd[0], piQxelXor[0]);
-		  pdst++;
-		  *pdst = DoRRop((*pdst), piQxelAnd[1], piQxelXor[1]);
-		  pdst++;
-		  *pdst = DoMaskRRop((*pdst), piQxelAnd[2], piQxelXor[2], 0xFF);
-		  pdst++;
-#endif
-		  break;
-		}
-	}
-}
-#else
-#if PSZ == 8
-	if (w <= PGSZB)
-	{
-	    register char   *addrb;
-
-	    addrb = ((char *) pdst) + x;
-	    while (w--)
-	    {
-		RROP_SOLID (addrb);
-		addrb++;
-	    }
-	}
-#else
-	if ((x & PIM) + w <= PPW)
-	{
-	    pdst += x >> PWSH;
-	    maskpartialbits (x, w, startmask);
-	    RROP_SOLID_MASK (pdst, startmask);
-	}
-#endif
-	else
-	{
-	    pdst += x >> PWSH;
-	    maskbits (x, w, startmask, endmask, nlmiddle);
-	    if (startmask)
-	    {
-		RROP_SOLID_MASK (pdst, startmask);
-		++pdst;
-	    }
-	    
-	    RROP_SPAN(pdst,nlmiddle)
-	    if (endmask)
-	    {
-		RROP_SOLID_MASK (pdst, endmask);
-	    }
-	}
-#endif
-    }
-    xfree(pptFree);
-    xfree(pwidthFree);
-    RROP_UNDECLARE
-}
diff --git a/cfb/cfbteblt8.c b/cfb/cfbteblt8.c
deleted file mode 100644
index 9d4ce57..0000000
--- a/cfb/cfbteblt8.c
+++ /dev/null
@@ -1,589 +0,0 @@
-/*
- * TEGblt - ImageText expanded glyph fonts only.  For
- * 8 bit displays, in Copy mode with no clipping.
- */
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-*/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#if PSZ == 8
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"cfb.h"
-#include	<X11/fonts/fontstruct.h>
-#include	"dixfontstr.h"
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"cfbmskbits.h"
-#include	"cfb8bit.h"
-
-/*
- * this code supports up to 5 characters at a time.  The performance
- * differences between 4 and 5 is usually small (~7% on PMAX) and
- * frequently negative (SPARC and Sun3), so this file is compiled
- * only once for now.  If you want to use the other options, you'll
- * need to hack cfbgc.c as well.
- */
-
-#ifndef NGLYPHS
-#define NGLYPHS 4
-#define DO_COMMON
-#endif
-
-#ifdef DO_COMMON
-#define CFBTEGBLT8 cfbTEGlyphBlt8
-#endif
-
-/*
- * On little-endian machines (or where fonts are padded to 32-bit
- * boundaries) we can use some magic to avoid the expense of getleftbits
- */
-
-#if ((BITMAP_BIT_ORDER == LSBFirst && NGLYPHS >= 4) || GLYPHPADBYTES == 4)
-
-#if GLYPHPADBYTES == 1
-typedef unsigned char	*glyphPointer;
-#define USE_LEFTBITS
-#endif
-
-#if GLYPHPADBYTES == 2
-typedef unsigned short	*glyphPointer;
-#define USE_LEFTBITS
-#endif
-
-#if GLYPHPADBYTES == 4
-typedef unsigned int	*glyphPointer;
-#endif
-
-#define GetBitsL       c = BitLeft (*leftChar++, lshift)
-#define NGetBits1S(r)   c = BitRight(*char1++ r, xoff1)
-#define NGetBits1L(r)   GetBitsL | BitRight(*char1++ r, xoff1)
-#define NGetBits1U(r)   c = *char1++ r
-#define NGetBits2S(r)   NGetBits1S(| BitRight(*char2++ r, widthGlyph))
-#define NGetBits2L(r)   NGetBits1L(| BitRight(*char2++ r, widthGlyph))
-#define NGetBits2U(r)   NGetBits1U(| BitRight(*char2++ r, widthGlyph))
-#define NGetBits3S(r)   NGetBits2S(| BitRight(*char3++ r, widthGlyph))
-#define NGetBits3L(r)   NGetBits2L(| BitRight(*char3++ r, widthGlyph))
-#define NGetBits3U(r)   NGetBits2U(| BitRight(*char3++ r, widthGlyph))
-#define NGetBits4S(r)   NGetBits3S(| BitRight(*char4++ r, widthGlyph))
-#define NGetBits4L(r)   NGetBits3L(| BitRight(*char4++ r, widthGlyph))
-#define NGetBits4U(r)   NGetBits3U(| BitRight(*char4++ r, widthGlyph))
-#define NGetBits5S(r)   NGetBits4S(| BitRight(*char5++ r, widthGlyph))
-#define NGetBits5L(r)   NGetBits4L(| BitRight(*char5++ r, widthGlyph))
-#define NGetBits5U(r)   NGetBits4U(| BitRight(*char5++ r, widthGlyph))
-#define GetBits1S   c = BitRight(*char1++, xoff1)
-#define GetBits1L   GetBitsL | BitRight(*char1++, xoff1)
-#define GetBits1U   c = *char1++
-#define GetBits2S   NGetBits1S(| BitRight(*char2++, widthGlyph))
-#define GetBits2L   NGetBits1L(| BitRight(*char2++, widthGlyph))
-#define GetBits2U   NGetBits1U(| BitRight(*char2++, widthGlyph))
-#define GetBits3S   NGetBits2S(| BitRight(*char3++, widthGlyph))
-#define GetBits3L   NGetBits2L(| BitRight(*char3++, widthGlyph))
-#define GetBits3U   NGetBits2U(| BitRight(*char3++, widthGlyph))
-#define GetBits4S   NGetBits3S(| BitRight(*char4++, widthGlyph))
-#define GetBits4L   NGetBits3L(| BitRight(*char4++, widthGlyph))
-#define GetBits4U   NGetBits3U(| BitRight(*char4++, widthGlyph))
-#define GetBits5S   NGetBits4S(| BitRight(*char5++, widthGlyph))
-#define GetBits5L   NGetBits4L(| BitRight(*char5++, widthGlyph))
-#define GetBits5U   NGetBits4U(| BitRight(*char5++, widthGlyph))
-
-#else
-
-typedef unsigned int	*glyphPointer;
-
-#define USE_LEFTBITS
-#define ALL_LEFTBITS
-
-#define GetBitsL    WGetBitsL
-#define GetBits1S   WGetBits1S
-#define GetBits1L   WGetBits1L
-#define GetBits1U   WGetBits1U
-
-#define GetBits2S   GetBits1S Get1Bits (char2, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff2);
-#define GetBits2L   GetBits1L Get1Bits (char2, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff2);
-#define GetBits2U   GetBits1U Get1Bits (char2, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff2);
-
-#define GetBits3S   GetBits2S Get1Bits (char3, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff3);
-#define GetBits3L   GetBits2L Get1Bits (char3, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff3);
-#define GetBits3U   GetBits2U Get1Bits (char3, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff3);
-
-#define GetBits4S   GetBits3S Get1Bits (char4, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff4);
-#define GetBits4L   GetBits3L Get1Bits (char4, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff4);
-#define GetBits4U   GetBits3U Get1Bits (char4, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff4);
-
-#define GetBits5S   GetBits4S Get1Bits (char5, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff5);
-#define GetBits5L   GetBits4L Get1Bits (char5, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff5);
-#define GetBits5U   GetBits4U Get1Bits (char5, tmpSrc) \
-		    c |= BitRight(tmpSrc, xoff5);
-
-#endif
-
-#ifdef USE_LEFTBITS
-
-#define IncChar(c)  (c = (glyphPointer) (((char *) c) + glyphBytes))
-
-#define Get1Bits(ch,dst)    glyphbits (ch, widthGlyph, glyphMask, dst); \
-			    IncChar (ch);
-
-#define glyphbits(bits,width,mask,dst)	getleftbits(bits,width,dst); \
-					dst &= mask;
-
-#define WGetBitsL   Get1Bits(leftChar,c); \
-		    c = BitLeft (c, lshift);
-#define WGetBits1S  Get1Bits (char1, c) \
-		    c = BitRight (c, xoff1);
-#define WGetBits1L  WGetBitsL Get1Bits (char1, tmpSrc) \
-		    c |= BitRight (tmpSrc, xoff1);
-#define WGetBits1U  Get1Bits (char1, c)
-
-#else
-#define WGetBitsL   GetBitsL
-#define WGetBits1S  GetBits1S
-#define WGetBits1L  GetBits1L
-#define WGetBits1U  GetBits1U
-#endif
-
-#if NGLYPHS == 2
-# define GetBitsNS GetBits2S
-# define GetBitsNL GetBits2L
-# define GetBitsNU GetBits2U
-# define LastChar char2
-#ifndef CFBTEGBLT8
-# define CFBTEGBLT8 cfbTEGlyphBlt8x2
-#endif
-#endif
-#if NGLYPHS == 3
-# define GetBitsNS GetBits3S
-# define GetBitsNL GetBits3L
-# define GetBitsNU GetBits3U
-# define LastChar char3
-#ifndef CFBTEGBLT8
-# define CFBTEGBLT8 cfbTEGlyphBlt8x3
-#endif
-#endif
-#if NGLYPHS == 4
-# define GetBitsNS GetBits4S
-# define GetBitsNL GetBits4L
-# define GetBitsNU GetBits4U
-# define LastChar char4
-#ifndef CFBTEGBLT8
-# define CFBTEGBLT8 cfbTEGlyphBlt8x4
-#endif
-#endif
-#if NGLYPHS == 5
-# define GetBitsNS GetBits5S
-# define GetBitsNL GetBits5L
-# define GetBitsNU GetBits5U
-# define LastChar char5
-#ifndef CFBTEGBLT8
-# define CFBTEGBLT8 cfbTEGlyphBlt8x5
-#endif
-#endif
-
-/* another ugly giant macro */
-#define SwitchEm    switch (ew) \
-		    { \
-		    case 0: \
-		    	break; \
-		    case 1: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 \
-			    Loop \
-		    	} \
-		    	break; \
-		    case 2: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 FirstStep StoreBits(1) \
-			    Loop \
-		    	} \
-		    	break; \
-		    case 3: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 FirstStep StoreBits(1) Step StoreBits(2) \
-			    Loop \
-		    	} \
-		    	break; \
-		    case 4: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 FirstStep StoreBits(1) Step \
-			    StoreBits(2) Step StoreBits(3) \
-			    Loop \
-		    	} \
-		    	break; \
-		    case 5: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 FirstStep StoreBits(1) Step \
-			    StoreBits(2) Step StoreBits(3) Step \
-			    StoreBits(4) \
-			    Loop \
-		    	} \
-		    	break; \
-		    case 6: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 FirstStep StoreBits(1) Step \
- 			    StoreBits(2) Step StoreBits(3) Step \
-			    StoreBits(4) Step StoreBits(5) \
-			    Loop \
-		    	} \
-		    	break; \
-		    case 7: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 FirstStep StoreBits(1) Step \
-			    StoreBits(2) Step StoreBits(3) Step \
-			    StoreBits(4) Step StoreBits(5) Step \
-			    StoreBits(6) \
-			    Loop \
-		    	} \
-		    	break; \
-		    case 8: \
-		    	while (hTmp--) { \
-			    GetBits; \
-			    StoreBits0 FirstStep StoreBits(1) Step \
-			    StoreBits(2) Step StoreBits(3) Step \
-			    StoreBits(4) Step StoreBits(5) Step \
-			    StoreBits(6) Step StoreBits(7) \
-			    Loop \
-		    	} \
-		    	break; \
-		    }
-
-#ifdef FAST_CONSTANT_OFFSET_MODE
-#define StorePixels(o,p)    dst[o] = p
-#define Loop		    dst += widthDst;
-#else
-#define StorePixels(o,p)    do { *dst = (p); dst++; } while (0)
-#define Loop		    dst += widthLeft;
-#endif
-
-#define Step		    NextBitGroup(c);
-
-#if (BITMAP_BIT_ORDER == MSBFirst)
-#define StoreBits(o)	StorePixels(o,GetPixelGroup(c));
-#define FirstStep	Step
-#else
-#if PGSZ == 64
-#define StoreBits(o)	StorePixels(o,cfb8Pixels[(c) & PGSZBMSK]);
-#define FirstStep	Step
-#else /* PGSZ == 32 */
-#define StoreBits(o)	StorePixels(o,*((CfbBits *) (((char *) cfb8Pixels) + (c & 0x3c))));
-#define FirstStep	c = BitLeft (c, 2);
-#endif /* PGSZ */
-#endif /* BITMAP_BIT_ORDER */
-
-
-void
-CFBTEGBLT8 (pDrawable, pGC, xInit, yInit, nglyph, ppci, pglyphBase)
-    DrawablePtr pDrawable;
-    GC 		*pGC;
-    int 	xInit, yInit;
-    unsigned int nglyph;
-    CharInfoPtr *ppci;		/* array of character info */
-    pointer	pglyphBase;	/* start of array of glyphs */
-{
-    register CfbBits  c;
-    register CfbBits  *dst;
-    register CfbBits  leftMask, rightMask;
-    register int	    hTmp;
-    register int	    xoff1;
-    register glyphPointer   char1;
-    register glyphPointer   char2;
-#if NGLYPHS >= 3
-    register glyphPointer   char3;
-#endif
-#if NGLYPHS >= 4
-    register glyphPointer   char4;
-#endif
-#if NGLYPHS >= 5
-    register glyphPointer   char5;
-#endif
-#ifdef ALL_LEFTBITS
-    int xoff2, xoff3, xoff4, xoff5;
-#endif
-
-    FontPtr		pfont = pGC->font;
-    CfbBits	*dstLine;
-    glyphPointer	oldRightChar;
-    CfbBits	*pdstBase;
-    glyphPointer	leftChar;
-    int			widthDst;
-#ifndef FAST_CONSTANT_OFFSET_MODE
-    int			widthLeft;
-#endif
-    int			widthGlyph;
-    int			h;
-    int			ew;
-    int			x, y;
-    BoxRec		bbox;		/* for clipping */
-    int			lshift;
-    int			widthGlyphs;
-#ifdef USE_LEFTBITS
-    register CfbBits  glyphMask;
-    register CfbBits  tmpSrc;
-    register int	    glyphBytes;
-#endif
-
-    widthGlyph = FONTMAXBOUNDS(pfont,characterWidth);
-    h = FONTASCENT(pfont) + FONTDESCENT(pfont);
-    if (!h)
-	return;
-    x = xInit + FONTMAXBOUNDS(pfont,leftSideBearing) + pDrawable->x;
-    y = yInit - FONTASCENT(pfont) + pDrawable->y;
-    bbox.x1 = x;
-    bbox.x2 = x + (widthGlyph * nglyph);
-    bbox.y1 = y;
-    bbox.y2 = y + h;
-
-    switch (RECT_IN_REGION(pGC->pScreen,  cfbGetCompositeClip(pGC), &bbox))
-    {
-      case rgnPART:
-	cfbImageGlyphBlt8(pDrawable, pGC, xInit, yInit, nglyph, ppci, pglyphBase);
-      case rgnOUT:
-	return;
-    }
-
-    if (!cfb8CheckPixels (pGC->fgPixel, pGC->bgPixel))
-	cfb8SetPixels (pGC->fgPixel, pGC->bgPixel);
-
-    leftChar = 0;
-
-    cfbGetLongWidthAndPointer(pDrawable, widthDst, pdstBase)
-
-#if NGLYPHS == 2
-    widthGlyphs = widthGlyph << 1;
-#else
-#if NGLYPHS == 4
-    widthGlyphs = widthGlyph << 2;
-#else
-    widthGlyphs = widthGlyph * NGLYPHS;
-#endif
-#endif
-
-#ifdef USE_LEFTBITS
-    glyphMask = mfbGetendtab(widthGlyph);
-    glyphBytes = GLYPHWIDTHBYTESPADDED(*ppci);
-#endif
-
-    pdstBase += y * widthDst;
-#ifdef DO_COMMON
-    if (widthGlyphs <= 32)
-#endif
-    	while (nglyph >= NGLYPHS)
-    	{
-	    nglyph -= NGLYPHS;
-	    hTmp = h;
-	    dstLine = pdstBase + (x >> PWSH);
-	    xoff1 = x & PIM;
-	    char1 = (glyphPointer) FONTGLYPHBITS(pglyphBase, *ppci++);
-	    char2 = (glyphPointer) FONTGLYPHBITS(pglyphBase, *ppci++);
-#ifdef ALL_LEFTBITS
-	    xoff2 = xoff1 + widthGlyph;
-#endif
-#if NGLYPHS >= 3
-	    char3 = (glyphPointer) FONTGLYPHBITS(pglyphBase, *ppci++);
-#ifdef ALL_LEFTBITS
-	    xoff3 = xoff2 + widthGlyph;
-#endif
-#endif
-#if NGLYPHS >= 4
-	    char4 = (glyphPointer) FONTGLYPHBITS(pglyphBase, *ppci++);
-#ifdef ALL_LEFTBITS
-	    xoff4 = xoff3 + widthGlyph;
-#endif
-#endif
-#if NGLYPHS >= 5
-	    char5 = (glyphPointer) FONTGLYPHBITS(pglyphBase, *ppci++);
-#ifdef ALL_LEFTBITS
-	    xoff5 = xoff4 + widthGlyph;
-#endif
-#endif
-	    oldRightChar = LastChar;
-	    dst = dstLine;
-	    if (xoff1)
-	    {
-		ew = ((widthGlyphs - (PGSZB - xoff1)) >> PWSH) + 1;
-#ifndef FAST_CONSTANT_OFFSET_MODE
-		widthLeft = widthDst - ew;
-#endif
-	    	if (!leftChar)
-	    	{
-		    leftMask = cfbendtab[xoff1];
-		    rightMask = cfbstarttab[xoff1];
-
-#define StoreBits0	StorePixels (0, (dst[0] & leftMask) | \
-					(GetPixelGroup(c) & rightMask));
-#define GetBits GetBitsNS
-
-		    SwitchEm
-
-#undef GetBits
-#undef StoreBits0
-
-	    	}
-	    	else
-	    	{
-		    lshift = widthGlyph - xoff1;
-    
-#define StoreBits0  StorePixels (0,GetPixelGroup(c));
-#define GetBits GetBitsNL
-    
-		    SwitchEm
-    
-#undef GetBits
-#undef StoreBits0
-    
-	    	}
-	    }
-	    else
-	    {
-#if NGLYPHS == 4 && PGSZ == 32
-	    	ew = widthGlyph;    /* widthGlyphs >> 2 */
-#else
-	    	ew = widthGlyphs >> PWSH;
-#endif
-#ifndef FAST_CONSTANT_OFFSET_MODE
-		widthLeft = widthDst - ew;
-#endif
-
-#define StoreBits0  StorePixels (0,GetPixelGroup(c));
-#define GetBits	GetBitsNU
-
-	    	SwitchEm
-
-#undef GetBits
-#undef StoreBits0
-
-	    }
-	    x += widthGlyphs;
-	    leftChar = oldRightChar;
-    	}
-    while (nglyph--)
-    {
-	xoff1 = x & PIM;
-	char1 = (glyphPointer) FONTGLYPHBITS(pglyphBase, *ppci++);
-	hTmp = h;
-	dstLine = pdstBase + (x >> PWSH);
-	oldRightChar = char1;
-	dst = dstLine;
-	if (xoff1)
-	{
-	    ew = ((widthGlyph - (PGSZB - xoff1)) >> PWSH) + 1;
-#ifndef FAST_CONSTANT_OFFSET_MODE
-	    widthLeft = widthDst - ew;
-#endif
-	    if (!leftChar)
-	    {
-		leftMask = cfbendtab[xoff1];
-		rightMask = cfbstarttab[xoff1];
-
-#define StoreBits0	StorePixels (0, (dst[0] & leftMask) | \
-					(GetPixelGroup(c) & rightMask));
-#define GetBits	WGetBits1S
-
-		SwitchEm
-#undef GetBits
-#undef StoreBits0
-
-	    }
-	    else
-	    {
-		lshift = widthGlyph - xoff1;
-
-#define StoreBits0  StorePixels (0,GetPixelGroup(c));
-#define GetBits WGetBits1L
-
-		SwitchEm
-#undef GetBits
-#undef StoreBits0
-
-	    }
-	}
-	else
-	{
-	    ew = widthGlyph >> PWSH;
-
-#ifndef FAST_CONSTANT_OFFSET_MODE
-	    widthLeft = widthDst - ew;
-#endif
-
-#define StoreBits0  StorePixels (0,GetPixelGroup(c));
-#define GetBits	WGetBits1U
-
-	    SwitchEm
-
-#undef GetBits
-#undef StoreBits0
-
-	}
-	x += widthGlyph;
-	leftChar = oldRightChar;
-    }
-    /*
-     * draw the tail of the last character
-     */
-    xoff1 = x & PIM;
-    if (xoff1)
-    {
-	rightMask = cfbstarttab[xoff1];
-	leftMask = cfbendtab[xoff1];
-	lshift = widthGlyph - xoff1;
-	dst = pdstBase + (x >> PWSH);
-	hTmp = h;
-	while (hTmp--)
-	{
-	    GetBitsL;
-	    *dst = (*dst & rightMask) | (GetPixelGroup(c) & leftMask);
-	    dst += widthDst;
-	}
-    }
-}
-#endif /* PSZ == 8 */
diff --git a/cfb/cfbtegblt.c b/cfb/cfbtegblt.c
deleted file mode 100644
index f04ee3f..0000000
--- a/cfb/cfbtegblt.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include	<X11/X.h>
-#include	<X11/Xmd.h>
-#include	<X11/Xproto.h>
-#include	"cfb.h"
-#include	<X11/fonts/fontstruct.h>
-#include	"dixfontstr.h"
-#include	"gcstruct.h"
-#include	"windowstr.h"
-#include	"scrnintstr.h"
-#include	"pixmapstr.h"
-#include	"regionstr.h"
-#include	"cfbmskbits.h"
-#include	"mi.h"
-#define MFB_CONSTS_ONLY
-#include	"maskbits.h"
-
-/*
-    this works for fonts with glyphs <= 32 bits wide, on an
-    arbitrarily deep display.  Use cfbTEGlyphBlt8 for 8 bit displays.
-
-    This should be called only with a terminal-emulator font;
-this means that the FIXED_METRICS flag is set, and that
-glyphbounds == charbounds.
-
-    in theory, this goes faster; even if it doesn't, it reduces the
-flicker caused by writing a string over itself with image text (since
-the background gets repainted per character instead of per string.)
-this seems to be important for some converted X10 applications.
-
-    Image text looks at the bits in the glyph and the fg and bg in the
-GC.  it paints a rectangle, as defined in the protocol dcoument,
-and the paints the characters.
-
-*/
-
-void
-cfbTEGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase)
-    DrawablePtr pDrawable;
-    GC 		*pGC;
-    int 	x, y;
-    unsigned int nglyph;
-    CharInfoPtr *ppci;		/* array of character info */
-    pointer	pglyphBase;	/* start of array of glyphs */
-{
-    FontPtr	pfont = pGC->font;
-    int widthDst;
-    CfbBits *pdstBase;	/* pointer to longword with top row 
-				   of current glyph */
-
-    int w;			/* width of glyph and char */
-    int h;			/* height of glyph and char */
-    register int xpos=x;	/* current x%32  */
-    int ypos=y;			/* current y%32 */
-    register unsigned char *pglyph;
-    int widthGlyph;
-
-    register CfbBits *pdst;/* pointer to current longword in dst */
-    int hTmp;			/* counter for height */
-    BoxRec bbox;		/* for clipping */
-
-    register int wtmp,xtemp,width;
-    CfbBits bgfill,fgfill,*ptemp,tmpDst1,tmpDst2,*pdtmp;
-#if PSZ != 24
-    int tmpx;
-#endif
-
-    xpos += pDrawable->x;
-    ypos += pDrawable->y;
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-    wtmp = FONTMAXBOUNDS(pfont,characterWidth);
-    h = FONTASCENT(pfont) + FONTDESCENT(pfont);
-    widthGlyph = GLYPHWIDTHBYTESPADDED(*ppci);
-
-    xpos += FONTMAXBOUNDS(pfont,leftSideBearing);
-    ypos -= FONTASCENT(pfont);
-
-    bbox.x1 = xpos;
-    bbox.x2 = xpos + (wtmp * nglyph);
-    bbox.y1 = ypos;
-    bbox.y2 = ypos + h;
-
-    fgfill = PFILL(pGC->fgPixel);
-    bgfill = PFILL(pGC->bgPixel);
-
-    switch (RECT_IN_REGION(pGC->pScreen,  cfbGetCompositeClip(pGC), &bbox))
-    {
-      case rgnOUT:
-	break;
-      case rgnPART:
-	/* this is the WRONG thing to do, but it works.
-	   calling the non-terminal text is easy, but slow, given
-	   what we know about the font.
-
-	   the right thing to do is something like:
-	    for each clip rectangle
-		compute at which row the glyph starts to be in it,
-		   and at which row the glyph ceases to be in it
-		compute which is the first glyph inside the left
-		    edge, and the last one inside the right edge
-		draw a fractional first glyph, using only
-		    the rows we know are in
-		draw all the whole glyphs, using the appropriate rows
-		draw any pieces of the last glyph, using the right rows
-
-	   this way, the code would take advantage of knowing that
-	   all glyphs are the same height and don't overlap.
-
-	   one day...
-	*/
-	cfbImageGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-	break;
-      case rgnIN:
-
-        pdtmp = pdstBase + (widthDst * ypos);
-        while(nglyph--)
-        {
-
-	    pglyph = FONTGLYPHBITS(pglyphBase, *ppci++);
-            pdst = pdtmp;
-	    hTmp = h;
-
-	    while (hTmp--)
-	    {
-		x = xpos;
-		width = wtmp;
- 	        xtemp = 0;
-
-		while (width > 0)
-		{
-#if PSZ == 24
-		    w = 1;
-		    ptemp = (CfbBits *)(pglyph + ((xtemp *3)>> 2));
-		    getstipplepixels24(ptemp,xtemp,0,&bgfill,&tmpDst1, xtemp);
-		    getstipplepixels24(ptemp,xtemp,1,&fgfill,&tmpDst2, xtemp);
-#else
-		    tmpx = x & PIM;
-		    w = min(width, PPW - tmpx);
-		    w = min(w, (PGSZ - xtemp));
-		    ptemp = (CfbBits *)(pglyph + (xtemp >> MFB_PWSH));
-		    getstipplepixels(ptemp,xtemp,w,0,&bgfill,&tmpDst1);
-		    getstipplepixels(ptemp,xtemp,w,1,&fgfill,&tmpDst2);
-#endif
-
-		    {
-			CfbBits tmpDst = tmpDst1 | tmpDst2;
-#if PSZ == 24
-			CfbBits *pdsttmp = pdst + ((x*3) >> 2);
-			putbits24(tmpDst,w,pdsttmp,pGC->planemask,x);
-#else
-			CfbBits *pdsttmp = pdst + (x >> PWSH);
-			putbits(tmpDst,tmpx,w,pdsttmp,pGC->planemask);
-#endif
-		    }
-		    x += w;
-		    xtemp += w;
-		    width -= w;
-		}
-		pglyph += widthGlyph;
-                pdst += widthDst;
-	    }
-	    xpos += wtmp;
-        }     
-	break;
-    }
-}
diff --git a/cfb/cfbtile32.c b/cfb/cfbtile32.c
deleted file mode 100644
index be016a7..0000000
--- a/cfb/cfbtile32.c
+++ /dev/null
@@ -1,517 +0,0 @@
-/*
- * Fill 32 bit tiled rectangles.  Used by PolyFillRect.
- * no depth dependencies.
- */
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-*/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "gcstruct.h"
-#include "window.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "cfb8bit.h"
-
-#include "mergerop.h"
-
-#include "mi.h"
-#include "mispans.h"
-
-#ifdef sparc
-#define SHARED_IDCACHE
-#endif
-
-#if PSZ == 24
-#define STORE(p)    (*(p) = MROP_PREBUILT_SOLID(srcpix,*(p)))
-/*#define STORE24(p,index)    {\
-	    register int idx = ((index) & 3)<< 1; \
-	    *(p) = (((MROP_PREBUILT_SOLID(srcpix,*(p))<<cfb24Shift[idx])&cfbmask[idx])| \
-	            (*(p)&cfbrmask[idx])); \
-	    idx++; \
-	    (p)++; \
-	    *(p) = (((MROP_PREBUILT_SOLID(srcpix,*(p))>>cfb24Shift[idx])&cfbmask[idx])| \
-	            (*(p)&cfbrmask[idx])); \
-	    (p)--; \
-	}*/
-#define STORE24(p,index)    MROP_PREBUILT_SOLID24(srcpix, (p), index)
-
-#define STORE_MASK(p,mask)    (*(p) = MROP_PREBUILT_MASK(srcpix,*(p),(mask)))
-#define QSTORE(p)    ((*(p) = MROP_PREBUILT_SOLID(((srcpix<<24)|srcpix),*(p))), \
-                      (p)++,(*(p) = MROP_PREBUILT_SOLID(((srcpix<<16)|(srcpix>>8)),*(p))), \
-                      (p)++,(*(p) = MROP_PREBUILT_SOLID(((srcpix<<8)|(srcpix>>16)),*(p))))
-
-#if (MROP == Mcopy) && defined(FAST_CONSTANT_OFFSET_MODE) && defined(SHARED_IDCACHE)
-# define Expand(left,right) {\
-    int part = nlwMiddle & ((PGSZB*2)-1); \
-    nlwMiddle *= 3; \
-    nlwMiddle >>= PWSH + 3; \
-    while (h--) { \
-	srcpix = psrc[srcy]; \
-	MROP_PREBUILD(srcpix); \
-	++srcy; \
-	if (srcy == tileHeight) \
-	    srcy = 0; \
-	left \
-	p += part; \
-	switch (part) { \
-	case 7: \
-	    STORE24(p - 7, xtmp - 7); \
-	case 6: \
-	    STORE24(p - 6, xtmp - 6); \
-	case 5: \
-	    STORE24(p - 5, xtmp - 5); \
-	case 4: \
-	    STORE24(p - 4, xtmp - 4); \
-	case 3: \
-	    STORE24(p - 3, xtmp - 3); \
-	case 2: \
-	    STORE24(p - 2, xtmp - 2); \
-	case 1: \
-	    STORE24(p - 1, xtmp - 1); \
-	} \
-	nlw = nlwMiddle; \
-	while (nlw) { \
-	    STORE24 (p + 0, xtmp + 0); \
-	    STORE24 (p + 1, xtmp + 1); \
-	    STORE24 (p + 2, xtmp + 2); \
-	    STORE24 (p + 3, xtmp + 3); \
-	    STORE24 (p + 4, xtmp + 4); \
-	    STORE24 (p + 5, xtmp + 5); \
-	    STORE24 (p + 6, xtmp + 6); \
-	    STORE24 (p + 7, xtmp + 7); \
-	    p += 8; \
-	    xtmp += 8; \
-	    nlw--; \
-	} \
-	right \
-	p += nlwExtra; \
-    } \
-}
-#else
-#define Expand(left,right) {\
-    while (h--)	{ \
-	srcpix = psrc[srcy]; \
-	MROP_PREBUILD(srcpix); \
-	++srcy; \
-	if (srcy == tileHeight) \
-	    srcy = 0; \
-	left \
-	while (nlw--) \
-	{ \
-	    STORE24(p,xtmp); \
-	    if(xtmp&3) p++; \
-	    xtmp++; \
-	} \
-	right \
-	p += nlwExtra; \
-    } \
-}
-#endif
-#else /*PSZ != 24*/
-#define STORE(p)    (*(p) = MROP_PREBUILT_SOLID(srcpix,*(p)))
-
-#if (MROP == Mcopy) && defined(FAST_CONSTANT_OFFSET_MODE) && defined(SHARED_IDCACHE)
-# define Expand(left,right) {\
-    int part = nlwMiddle & ((PGSZB*2)-1); \
-    nlwMiddle >>= PWSH + 1; \
-    while (h--) { \
-	srcpix = psrc[srcy]; \
-	MROP_PREBUILD(srcpix); \
-	++srcy; \
-	if (srcy == tileHeight) \
-	    srcy = 0; \
-	left \
-	p += part; \
-	switch (part) { \
-	case 7: \
-	    STORE(p - 7); \
-	case 6: \
-	    STORE(p - 6); \
-	case 5: \
-	    STORE(p - 5); \
-	case 4: \
-	    STORE(p - 4); \
-	case 3: \
-	    STORE(p - 3); \
-	case 2: \
-	    STORE(p - 2); \
-	case 1: \
-	    STORE(p - 1); \
-	} \
-	nlw = nlwMiddle; \
-	while (nlw) { \
-	    STORE (p + 0); \
-	    STORE (p + 1); \
-	    STORE (p + 2); \
-	    STORE (p + 3); \
-	    STORE (p + 4); \
-	    STORE (p + 5); \
-	    STORE (p + 6); \
-	    STORE (p + 7); \
-	    p += 8; \
-	    nlw--; \
-	} \
-	right \
-	p += nlwExtra; \
-    } \
-}
-#else
-#define Expand(left,right) {\
-    while (h--)	{ \
-	srcpix = psrc[srcy]; \
-	MROP_PREBUILD(srcpix); \
-	++srcy; \
-	if (srcy == tileHeight) \
-	    srcy = 0; \
-	left \
-	nlw = nlwMiddle; \
-	while (nlw--) \
-	{ \
-	    STORE(p); \
-	    p++; \
-	} \
-	right \
-	p += nlwExtra; \
-    } \
-}
-#endif
-#endif /*PSZ == 24*/
-
-void
-MROP_NAME(cfbFillRectTile32) (pDrawable, pGC, nBox, pBox)
-    DrawablePtr	    pDrawable;
-    GCPtr	    pGC;
-    int		    nBox;	/* number of boxes to fill */
-    BoxPtr 	    pBox;	/* pointer to list of boxes to fill */
-{
-    register CfbBits srcpix;	
-    CfbBits *psrc;		/* pointer to bits in tile, if needed */
-    int tileHeight;	/* height of the tile */
-
-    int nlwDst;		/* width in longwords of the dest pixmap */
-    int w;		/* width of current box */
-    register int h;	/* height of current box */
-    register CfbBits startmask;
-    register CfbBits endmask; /* masks for reggedy bits at either end of line */
-    int nlwMiddle;	/* number of longwords between sides of boxes */
-    int nlwExtra;	/* to get from right of box to left of next span */
-    register int nlw = 0;	/* loop version of nlwMiddle */
-    register CfbBits *p;	/* pointer to bits we're writing */
-    int y;		/* current scan line */
-    int srcy;		/* current tile position */
-
-    CfbBits *pbits;/* pointer to start of pixmap */
-    PixmapPtr	    tile;	/* rotated, expanded tile */
-#if MROP == 0 && PSZ == 24
-    DeclareMergeRop()
-#else
-    MROP_DECLARE_REG()
-#endif
-    MROP_PREBUILT_DECLARE()
-#if PSZ == 24
-    CfbBits xtmp;
-#endif
-
-    tile = pGC->pRotatedPixmap;
-    tileHeight = tile->drawable.height;
-    psrc = (CfbBits *)tile->devPrivate.ptr;
-
-#if MROP == 0 && PSZ == 24
-    InitializeMergeRop(pGC->alu, pGC->planemask);
-#else
-    MROP_INITIALIZE(pGC->alu, pGC->planemask);
-#endif
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pbits)
-
-    while (nBox--)
-    {
-	w = pBox->x2 - pBox->x1;
-	h = pBox->y2 - pBox->y1;
-	y = pBox->y1;
-#if PSZ == 24
-	xtmp = pBox->x1;
-	p = pbits + (y * nlwDst) + ((pBox->x1*3) >> 2);
-/*	p = pbits + (y * nlwDst) + ((pBox->x1>> 2)*3);*/
-#else
-	p = pbits + (y * nlwDst) + (pBox->x1 >> PWSH);
-#endif
-	srcy = y % tileHeight;
-
-#if PSZ == 24
-	if (w == 1  &&  ((pBox->x1 & 3) == 0  ||  (pBox->x1 & 3) == 3))
-#else
-	if ( ((pBox->x1 & PIM) + w) <= PPW)
-#endif
-	{
-	    maskpartialbits(pBox->x1, w, startmask);
-	    nlwExtra = nlwDst;
-	    while (h--)
-	    {
-		srcpix = psrc[srcy];
-		MROP_PREBUILD(srcpix);
-		++srcy;
-		if (srcy == tileHeight)
-		    srcy = 0;
-		*p = MROP_PREBUILT_MASK (srcpix, *p, startmask);
-		p += nlwExtra;
-	    }
-	}
-	else
-	{
-	    maskbits(pBox->x1, w, startmask, endmask, nlwMiddle);
-	    nlwExtra = nlwDst - nlwMiddle;
-
-	    if (startmask)
-	    {
-		nlwExtra -= 1;
-		if (endmask)
-		{
-		    Expand(*p = MROP_PREBUILT_MASK(srcpix, *p, startmask); p++;,
-			   *p = MROP_PREBUILT_MASK(srcpix, *p, endmask);)
-		}
-		else
-		{
-		    Expand(*p = MROP_PREBUILT_MASK(srcpix, *p, startmask); p++;,
-			   ;)
-		}
-	    }
-	    else
-	    {
-		if (endmask)
-		{
-		    Expand(;,
-			   *p = MROP_PREBUILT_MASK(srcpix, *p, endmask);)
-		}
-		else
-		{
-		    Expand(;,
-			   ;)
-		}
-	    }
-	}
-        pBox++;
-    }
-}
-
-void
-MROP_NAME(cfbTile32FS)(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted)
-    DrawablePtr pDrawable;
-    GCPtr	pGC;
-    int		nInit;			/* number of spans to fill */
-    DDXPointPtr pptInit;		/* pointer to list of start points */
-    int		*pwidthInit;		/* pointer to list of n widths */
-    int 	fSorted;
-{
-				/* next three parameters are post-clip */
-    int			n;	/* number of spans to fill */
-    DDXPointPtr		ppt;	/* pointer to list of start points */
-    int			*pwidth;/* pointer to list of n widths */
-    CfbBits	*pbits;	/* pointer to start of bitmap */
-    int			nlwDst;	/* width in longwords of bitmap */
-    register CfbBits *p;	/* pointer to current longword in bitmap */
-    register int	w;	/* current span width */
-    register int	nlw;
-    register int	x;
-    register CfbBits startmask;
-    register CfbBits endmask;
-    register CfbBits  srcpix;
-    int			y;
-    int			*pwidthFree;/* copies of the pointers to free */
-    DDXPointPtr		pptFree;
-    PixmapPtr		tile;
-    CfbBits	*psrc;	/* pointer to bits in tile */
-    int			tileHeight;/* height of the tile */
-#if MROP == 0 && PSZ == 24
-    DeclareMergeRop()
-#else
-    MROP_DECLARE_REG()
-#endif
-    MROP_PREBUILT_DECLARE()
-#if PSZ == 24      
-    CfbBits	xtmp;
-#endif
-
-    n = nInit * miFindMaxBand( cfbGetCompositeClip(pGC) );
-    pwidthFree = (int *)xalloc(n * sizeof(int));
-    pptFree = (DDXPointRec *)xalloc(n * sizeof(DDXPointRec));
-    if(!pptFree || !pwidthFree)
-    {
-	if (pptFree) xfree(pptFree);
-	if (pwidthFree) xfree(pwidthFree);
-	return;
-    }
-    pwidth = pwidthFree;
-    ppt = pptFree;
-    n = miClipSpans( cfbGetCompositeClip(pGC),
-		     pptInit, pwidthInit, nInit,
-		     ppt, pwidth, fSorted);
-
-    tile = pGC->pRotatedPixmap;
-    tileHeight = tile->drawable.height;
-    psrc = (CfbBits *)tile->devPrivate.ptr;
-
-#if MROP == 0 && PSZ == 24
-    InitializeMergeRop(pGC->alu, pGC->planemask);
-#else
-    MROP_INITIALIZE(pGC->alu, pGC->planemask);
-#endif
-
-    cfbGetLongWidthAndPointer (pDrawable, nlwDst, pbits)
-
-#if MROP == Mcopy
-    if (!(tileHeight & (tileHeight-1)))
-    {
-	tileHeight--;
-    	while (n--)
-    	{
-	    x = ppt->x;
-	    y = ppt->y;
-	    ++ppt;
-	    w = *pwidth++;
-#if PSZ == 24
-/*	    p = pbits + (y * nlwDst) + ((x*3) >> 2);*/
-	    xtmp = x;
-	    p = pbits + (y * nlwDst) + ((x >> 2)*3);
-#else
-	    p = pbits + (y * nlwDst) + (x >> PWSH);
-#endif
-	    srcpix = psrc[y & tileHeight];
-	    MROP_PREBUILD(srcpix);
-    
-#if PSZ == 24
-	    if ((x & 3) + w < 5)
-#else
-	    if ((x & PIM) + w < PPW)
-#endif
-	    {
-	    	maskpartialbits(x, w, startmask);
-	    	*p = MROP_PREBUILT_MASK (srcpix, *p, startmask);
-	    }
-	    else
-	    {
-	    	maskbits(x, w, startmask, endmask, nlw);
-	    	if (startmask)
-	    	{
-		    *p = MROP_PREBUILT_MASK(srcpix, *p, startmask);
-#if PSZ == 24
-		    if(xtmp&3) p++;
-		    xtmp++;
-#else
-		    p++;
-#endif
-	    	}
-	    	while (nlw--)
-	    	{
-#if PSZ == 24
-		    STORE24(p,xtmp);
-		    if(xtmp&3) p++;
-		    ++xtmp;
-#else
-		    STORE(p);
-		    ++p;
-#endif
-	    	}
-	    	if (endmask)
-	    	{
-		    *p = MROP_PREBUILT_MASK(srcpix, *p, endmask);
-	    	}
-	    }
-    	}
-    }
-    else
-#endif
-    {
-    	while (n--)
-    	{
-	    x = ppt->x;
-	    y = ppt->y;
-	    ++ppt;
-	    w = *pwidth++;
-#if PSZ == 24
-/*	    p = pbits + (y * nlwDst) + ((x *3)>> 2);*/
-	    p = pbits + (y * nlwDst) + ((x >> 2)*3);
-	    xtmp = x;
-#else
-	    p = pbits + (y * nlwDst) + (x >> PWSH);
-#endif
-	    srcpix = psrc[y % tileHeight];
-	    MROP_PREBUILD(srcpix);
-    
-#if PSZ == 24
-	    if ((x & 3) + w < 5)
-#else
-	    if ((x & PIM) + w < PPW)
-#endif
-	    {
-	    	maskpartialbits(x, w, startmask);
-	    	*p = MROP_PREBUILT_MASK (srcpix, *p, startmask);
-	    }
-	    else
-	    {
-	    	maskbits(x, w, startmask, endmask, nlw);
-	    	if (startmask)
-	    	{
-		    *p = MROP_PREBUILT_MASK(srcpix, *p, startmask);
-#if PSZ == 24
-		    if(xtmp&3)p++;
-		    xtmp++;
-#else
-		    p++;
-#endif
-	    	}
-	    	while (nlw--)
-	    	{
-#if PSZ == 24
-		    STORE24(p,xtmp);
-		    if(xtmp&3)p++;
-		    xtmp++;
-#else
-		    STORE(p);
-		    ++p;
-#endif
-	    	}
-	    	if (endmask)
-	    	{
-		    *p = MROP_PREBUILT_MASK(srcpix, *p, endmask);
-	    	}
-	    }
-    	}
-    }
-    xfree(pptFree);
-    xfree(pwidthFree);
-}
diff --git a/cfb/cfbtileodd.c b/cfb/cfbtileodd.c
deleted file mode 100644
index 86a3fa5..0000000
--- a/cfb/cfbtileodd.c
+++ /dev/null
@@ -1,1245 +0,0 @@
-/*
- * Fill odd tiled rectangles and spans.
- * no depth dependencies.
- */
-
-/*
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-*/
-
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "gcstruct.h"
-#include "window.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "cfb8bit.h"
-
-#include "mergerop.h"
-
-#if PSZ == 24
-#define LEFTSHIFT_AMT (3)
-#else /* PSZ != 24 */
-#define LEFTSHIFT_AMT (5 - PWSH)
-#endif /* PSZ == 24*/
-
-#define LastTileBits {\
-    tmp = bits; \
-    if (tileEndPart) \
-	bits = (*pSrc & tileEndMask) | BitRight (*pSrcLine, tileEndLeftShift); \
-    else \
-	bits = *pSrc; \
-}
-
-#if PSZ == 24
-#define ResetTileBits {\
-    pSrc = pSrcLine; \
-    nlwSrc = widthSrc;\
-    if (tileEndPart) { \
-	if (4 - xoff + tileEndPart <= 4) {\
-	    bits = *pSrc++; \
-	    nlwSrc--; \
-	} else \
-	    bits = BitLeft(tmp, tileEndLeftShift) | \
-		   BitRight(bits, tileEndRightShift); \
-	xoff = (xoff + xoffStep) & 3; \
-	leftShift = xoff << LEFTSHIFT_AMT; \
-	rightShift = PGSZ - leftShift; \
-    }\
-}
-#else
-#define ResetTileBits {\
-    pSrc = pSrcLine; \
-    nlwSrc = widthSrc;\
-    if (tileEndPart) { \
-	if (PPW - xoff + tileEndPart <= PPW) {\
-	    bits = *pSrc++; \
-	    nlwSrc--; \
-	} else \
-	    bits = BitLeft(tmp, tileEndLeftShift) | \
-		   BitRight(bits, tileEndRightShift); \
-	xoff = (xoff + xoffStep) & PIM; \
-	leftShift = xoff << LEFTSHIFT_AMT; \
-	rightShift = PGSZ - leftShift; \
-    }\
-}
-#endif
-
-#define NextTileBits {\
-    if (nlwSrc == 1) {\
-	LastTileBits\
-    } else { \
-    	if (nlwSrc == 0) {\
-	    ResetTileBits\
-    	} \
-	if (nlwSrc == 1) {\
-	    LastTileBits\
-	} else {\
-	    tmp = bits; \
-	    bits = *pSrc++; \
-	}\
-    }\
-    nlwSrc--; \
-}
-
-void
-MROP_NAME(cfbFillBoxTileOdd) (pDrawable, nBox, pBox, tile, xrot, yrot, alu, planemask)
-    DrawablePtr	    pDrawable;
-    int		    nBox;	/* number of boxes to fill */
-    register BoxPtr pBox;	/* pointer to list of boxes to fill */
-    PixmapPtr	    tile;	/* tile */
-    int		    xrot, yrot;
-    int		    alu;
-    unsigned long   planemask;
-{
-    int tileWidth;	/* width of tile in pixels */
-    int tileHeight;	/* height of the tile */
-    int widthSrc;
-
-    int widthDst;	/* width in longwords of the dest pixmap */
-    int w;		/* width of current box */
-    int h;		/* height of current box */
-    CfbBits startmask;
-    CfbBits endmask;/* masks for reggedy bits at either end of line */
-    int nlwMiddle;	/* number of longwords between sides of boxes */
-    int nlwSrc;		/* number of whole longwords in source */
-    
-    register int nlw;	/* loop version of nlwMiddle */
-    int srcy;		/* current tile y position */
-    int srcx;		/* current tile x position */
-    int xoffDst, xoffSrc;
-    int leftShift, rightShift;
-
-#if MROP == 0 && PSZ == 24
-    DeclareMergeRop24()
-#else
-    MROP_DECLARE_REG()
-#endif
-
-    CfbBits *pdstBase;	/* pointer to start of dest */
-    CfbBits *pDstLine;	/* poitner to start of dest box */
-    CfbBits *pSrcBase;	/* pointer to start of source */
-    CfbBits *pSrcLine;	/* pointer to start of source line */
-    register CfbBits *pDst;
-    register CfbBits *pSrc;
-    register CfbBits bits, tmp = 0;
-    int xoffStart, xoff;
-    int leftShiftStart, rightShiftStart, nlwSrcStart;
-    CfbBits tileEndMask;
-    int tileEndLeftShift, tileEndRightShift;
-    int	xoffStep;
-    int tileEndPart;
-    int needFirst;
-    CfbBits   narrow[2];
-    CfbBits   narrowMask = 0;
-    int	    narrowShift = 0;
-    Bool    narrowTile;
-
-#if MROP == 0 && PSZ == 24
-    InitializeMergeRop24 (alu, planemask)
-#else
-    MROP_INITIALIZE (alu, planemask)
-#endif
-
-    tileHeight = tile->drawable.height;
-    tileWidth = tile->drawable.width;
-    widthSrc = tile->devKind / PGSZB;
-    narrowTile = FALSE;
-    if (widthSrc == 1)
-    {
-	narrowShift = tileWidth;
-	narrowMask = cfbendpartial [tileWidth];
-	tileWidth *= 2;
-	widthSrc = 2;
-	narrowTile = TRUE;
-    }
-    pSrcBase = (CfbBits *)tile->devPrivate.ptr;
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-#if PSZ == 24
-    tileEndPart = (4 - tileWidth) & 3;
-    tileEndMask = cfbendpartial[tileWidth & 3];
-#else
-    tileEndPart = tileWidth & PIM;
-    tileEndMask = cfbendpartial[tileEndPart];
-#endif /* PSZ == 24 */
-    tileEndLeftShift = (tileEndPart) << LEFTSHIFT_AMT;
-    tileEndRightShift = PGSZ - tileEndLeftShift;
-#if PSZ == 24
-    xoffStep = 4 - tileEndPart;
-#else
-    xoffStep = PPW - tileEndPart;
-#endif /* PSZ == 24 */
-    /*
-     * current assumptions: tile > 32 bits wide.
-     */
-    while (nBox--)
-    {
-	w = pBox->x2 - pBox->x1;
-	h = pBox->y2 - pBox->y1;
-	modulus (pBox->x1 - xrot, tileWidth, srcx);
-	modulus (pBox->y1 - yrot, tileHeight, srcy);
-#if PSZ == 24
-	xoffDst = (4 - pBox->x1) & 3;
-	if (w == 1  &&  (xoffDst == 0  ||  xoffDst == 1))
-#else
-	xoffDst = pBox->x1 & PIM;
-	if (xoffDst + w < PPW)
-#endif
-	{
-	    maskpartialbits(pBox->x1, w, startmask);
-	    endmask = 0;
-	    nlwMiddle = 0;
-	}
-	else
-	{
-	    maskbits (pBox->x1, w, startmask, endmask, nlwMiddle)
-	}
-#if PSZ == 24
-	pDstLine = pdstBase + (pBox->y1 * widthDst) + ((pBox->x1*3) >> 2);
-#else
-	pDstLine = pdstBase + (pBox->y1 * widthDst) + (pBox->x1 >> PWSH);
-#endif
-	pSrcLine = pSrcBase + (srcy * widthSrc);
-#if PSZ == 24
-	xoffSrc = (4 - srcx) & 3;
-#else
-	xoffSrc = srcx & PIM;
-#endif
-	if (xoffSrc >= xoffDst)
-	{
-	    xoffStart = xoffSrc - xoffDst;
-	    needFirst = 1;
-	}
-	else
-	{
-#if PSZ == 24
-	    xoffStart = 4 - (xoffDst - xoffSrc);
-#else
-	    xoffStart = PPW - (xoffDst - xoffSrc);
-#endif
-	    needFirst = 0;
-	}
-	leftShiftStart = (xoffStart) << LEFTSHIFT_AMT;
-	rightShiftStart = PGSZ - leftShiftStart;
-#if PSZ == 24
-	nlwSrcStart = widthSrc - ((srcx*3) >> 2);
-#else
-	nlwSrcStart = widthSrc - (srcx >> PWSH);
-#endif
-	while (h--)
-	{
-	    /* XXX only works when narrowShift >= PPW/2 */
-	    if (narrowTile)
-	    {
-		tmp = pSrcBase[srcy] & narrowMask; /* source width == 1 */
-		narrow[0] = tmp | SCRRIGHT (tmp, narrowShift);
-#if PSZ == 24
-		narrow[1] = BitLeft (tmp, 8) |
-			    BitRight(tmp, 16);
-#else
-		narrow[1] = SCRLEFT (tmp, PPW - narrowShift) |
-			    SCRRIGHT(tmp, 2 * narrowShift - PPW);
-#endif
-		pSrcLine = narrow;
-	    }
-	    xoff = xoffStart;
-	    leftShift = leftShiftStart;
-	    rightShift = rightShiftStart;
-	    nlwSrc = nlwSrcStart;
-#if PSZ == 24
-	    pSrc = pSrcLine + ((srcx * 3) >> 2);
-#else
-	    pSrc = pSrcLine + (srcx >> PWSH);
-#endif
-	    pDst = pDstLine;
-	    bits = 0;
-	    if (needFirst)
-	    {
-		NextTileBits
-	    }
-	    if (startmask)
-	    {
-		NextTileBits
-		tmp = BitLeft(tmp, leftShift);
- 		if (rightShift != PGSZ)
-		    tmp |= BitRight(bits,rightShift);
-		*pDst = MROP_MASK (tmp, *pDst, startmask);
-		++pDst;
-	    }
-	    nlw = nlwMiddle;
-	    while (nlw)
-	    {
-#if MROP == Mcopy
-		if (nlwSrc > 1)
-		{
-		    int nlwPart = nlw;
-
-		    if (nlwPart >= nlwSrc)
-			nlwPart = nlwSrc - 1;
-		    nlw -= nlwPart;
-		    nlwSrc -= nlwPart;
-		    if (rightShift != PGSZ)
-		    {
-			while (nlwPart--)
-			{
-			    tmp = bits;
-			    bits = *pSrc++;
-			    *pDst = MROP_SOLID(BitLeft(tmp, leftShift) |
-					      BitRight (bits, rightShift),
-					      *pDst);
-			    ++pDst;
-			}
-		    }
-		    else
-		    {
-			if (nlwPart)
-			{
-			    *pDst = MROP_SOLID (bits, *pDst);
-			    ++pDst;
-			    nlwPart--;
-			    while (nlwPart--)
-			    {
-				*pDst = MROP_SOLID(*pSrc, *pDst);
-				++pDst; ++pSrc;
-			    }
-			    bits = *pSrc++;
-			}
-		    }
-		}
-		else
-#endif
-		{
-		    NextTileBits
-		    if (rightShift != PGSZ)
-		    {
-			*pDst = MROP_SOLID(BitLeft(tmp, leftShift) |
-					   BitRight(bits, rightShift),
-					   *pDst);
-		    }
-		    else
-		    {
-			*pDst = MROP_SOLID (tmp, *pDst);
-		    }
-		    ++pDst;
-		    nlw--;
-		}
-	    }
-	    if (endmask)
-	    {
-		NextTileBits
-		if (rightShift == PGSZ)
-		    bits = 0;
-		*pDst = MROP_MASK (BitLeft(tmp, leftShift) |
-				   BitRight(bits,rightShift),
-				   *pDst, endmask);
-	    }
-	    pDstLine += widthDst;
-	    pSrcLine += widthSrc;
-	    if (++srcy == tileHeight)
-	    {
-		srcy = 0;
-		pSrcLine = pSrcBase;
-	    }
-	}
-	pBox++;
-    }
-}
-
-void
-MROP_NAME(cfbFillSpanTileOdd) (pDrawable, n, ppt, pwidth, tile, xrot, yrot, alu, planemask)
-    DrawablePtr	pDrawable;
-    int		n;
-    DDXPointPtr	ppt;
-    int		*pwidth;
-    PixmapPtr	tile;
-    int		xrot, yrot;
-    int		alu;
-    unsigned long   planemask;
-{
-    int tileWidth;	/* width of tile in pixels */
-    int tileHeight;	/* height of the tile */
-    int widthSrc;
-
-    int widthDst;		/* width in longwords of the dest pixmap */
-    int w;		/* width of current span */
-    CfbBits startmask;
-    CfbBits endmask;	/* masks for reggedy bits at either end of line */
-    int nlwSrc;		/* number of whole longwords in source */
-    
-    register int nlw;	/* loop version of nlwMiddle */
-    int srcy;		/* current tile y position */
-    int srcx;		/* current tile x position */
-    int xoffDst, xoffSrc;
-    int leftShift, rightShift;
-
-#if MROP == 0 && PSZ == 24
-    DeclareMergeRop24()
-#else
-    MROP_DECLARE_REG()
-#endif
-
-    CfbBits *pdstBase;	/* pointer to start of dest */
-    CfbBits *pDstLine;	/* poitner to start of dest box */
-    CfbBits *pSrcBase;	/* pointer to start of source */
-    CfbBits *pSrcLine;	/* pointer to start of source line */
-    register CfbBits *pDst;
-    register CfbBits *pSrc;
-    register CfbBits bits, tmp = 0;
-    int xoffStart, xoff;
-    int leftShiftStart, rightShiftStart, nlwSrcStart;
-    CfbBits tileEndMask;
-    int tileEndLeftShift, tileEndRightShift;
-    int	xoffStep;
-    int tileEndPart;
-    int needFirst;
-    CfbBits   narrow[2];
-    CfbBits   narrowMask = 0;
-    int	    narrowShift = 0;
-    Bool    narrowTile;
-
-#if MROP == 0 && PSZ == 24
-    InitializeMergeRop24 (alu, planemask)
-#else
-    MROP_INITIALIZE (alu, planemask)
-#endif
-
-    tileHeight = tile->drawable.height;
-    tileWidth = tile->drawable.width;
-    widthSrc = tile->devKind / PGSZB;
-    narrowTile = FALSE;
-    if (widthSrc == 1)
-    {
-	narrowShift = tileWidth;
-	narrowMask = cfbendpartial [tileWidth];
-	tileWidth *= 2;
-	widthSrc = 2;
-	narrowTile = TRUE;
-    }
-    pSrcBase = (CfbBits *)tile->devPrivate.ptr;
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-#if PSZ == 24
-    tileEndPart = (4 - tileWidth) & 3;
-    tileEndMask = cfbendpartial[tileWidth & 3];
-#else
-    tileEndPart = tileWidth & PIM;
-    tileEndMask = cfbendpartial[tileEndPart];
-#endif
-    tileEndLeftShift = (tileEndPart) << LEFTSHIFT_AMT;
-    tileEndRightShift = PGSZ - tileEndLeftShift;
-#if PSZ == 24
-    xoffStep = 4 - tileEndPart;
-#else
-    xoffStep = PPW - tileEndPart;
-#endif
-    while (n--)
-    {
-	w = *pwidth++;
-	modulus (ppt->x - xrot, tileWidth, srcx);
-	modulus (ppt->y - yrot, tileHeight, srcy);
-#if PSZ == 24
-	xoffDst = (4 - ppt->x) & 3;
-	if (w == 1  &&  (xoffDst == 0  ||  xoffDst == 1))
-#else
-	xoffDst = ppt->x & PIM;
-	if (xoffDst + w < PPW)
-#endif
-	{
-	    maskpartialbits(ppt->x, w, startmask);
-	    endmask = 0;
-	    nlw = 0;
-	}
-	else
-	{
-	    maskbits (ppt->x, w, startmask, endmask, nlw)
-	}
-#if PSZ == 24
-	pDstLine = pdstBase + (ppt->y * widthDst)  + ((ppt->x *3)>> 2);
-#else
-	pDstLine = pdstBase + (ppt->y * widthDst) + (ppt->x >> PWSH);
-#endif
-	pSrcLine = pSrcBase + (srcy * widthSrc);
-#if PSZ == 24
-	xoffSrc = (4 - srcx) & 3;
-#else
-	xoffSrc = srcx & PIM;
-#endif
-	if (xoffSrc >= xoffDst)
-	{
-	    xoffStart = xoffSrc - xoffDst;
-	    needFirst = 1;
-	}
-	else
-	{
-#if PSZ == 24
-	    xoffStart = 4 - (xoffDst - xoffSrc);
-#else
-	    xoffStart = PPW - (xoffDst - xoffSrc);
-#endif
-	    needFirst = 0;
-	}
-	leftShiftStart = (xoffStart) << LEFTSHIFT_AMT;
-	rightShiftStart = PGSZ - leftShiftStart;
-#if PSZ == 24
-	nlwSrcStart = widthSrc - ((srcx*3) >> 2);
-#else
-	nlwSrcStart = widthSrc - (srcx >> PWSH);
-#endif
-	/* XXX only works when narrowShift >= PPW/2 */
-	if (narrowTile)
-	{
-	    tmp = pSrcBase[srcy] & narrowMask;	/* source width == 1 */
-	    narrow[0] = tmp | SCRRIGHT (tmp, narrowShift);
-#if PSZ == 24
-	    narrow[1] = BitLeft (tmp, 8) |
-			BitRight(tmp, 16);
-#else
-	    narrow[1] = SCRLEFT (tmp, PPW - narrowShift) |
-			SCRRIGHT(tmp, 2 * narrowShift - PPW);
-#endif
-	    pSrcLine = narrow;
-	}
-	xoff = xoffStart;
-	leftShift = leftShiftStart;
-	rightShift = rightShiftStart;
-	nlwSrc = nlwSrcStart;
-#if PSZ == 24
-	pSrc = pSrcLine + ((srcx * 3) >> 2);
-#else
-	pSrc = pSrcLine + (srcx >> PWSH);
-#endif
-	pDst = pDstLine;
-	bits = 0;
-	if (needFirst)
-	{
-	    NextTileBits
-	}
-	if (startmask)
-	{
-	    NextTileBits
-	    tmp = BitLeft(tmp, leftShift);
-	    if (rightShift != PGSZ)
-		tmp |= BitRight(bits,rightShift);
-	    *pDst = MROP_MASK (tmp, *pDst, startmask);
-	    ++pDst;
-	}
-	while (nlw)
-	{
-#if MROP == Mcopy
-	    if (nlwSrc > 1)
-	    {
-		int nlwPart = nlw;
-
-		if (nlwPart >= nlwSrc)
-		    nlwPart = nlwSrc - 1;
-		nlw -= nlwPart;
-		nlwSrc -= nlwPart;
-		if (rightShift != PGSZ)
-		{
-		    while (nlwPart--)
-		    {
-			tmp = bits;
-			bits = *pSrc++;
-			*pDst = MROP_SOLID(BitLeft(tmp, leftShift) |
-					  BitRight (bits, rightShift),
-					  *pDst);
-			++pDst;
-		    }
-		}
-		else
-		{
-		    if (nlwPart)
-		    {
-			*pDst = MROP_SOLID (bits, *pDst);
-			++pDst;
-			nlwPart--;
-			while (nlwPart--)
-			{
-			    *pDst = MROP_SOLID(*pSrc, *pDst);
-			    ++pDst; ++pSrc;
-			}
-			bits = *pSrc++;
-		    }
-		}
-	    }
-	    else
-#endif
-	    {
-		NextTileBits
-		if (rightShift != PGSZ)
-		{
-		    *pDst = MROP_SOLID(BitLeft(tmp, leftShift) |
-				       BitRight(bits, rightShift),
-				       *pDst);
-		    ++pDst;
-		}
-		else
-		{
-		    *pDst = MROP_SOLID (tmp, *pDst);
-		    ++pDst;
-		}
-		nlw--;
-	    }
-	}
-	if (endmask)
-	{
-	    NextTileBits
-	    if (rightShift == PGSZ)
-		bits = 0;
-	    *pDst = MROP_MASK (BitLeft(tmp, leftShift) |
-			       BitRight(bits,rightShift),
-			       *pDst, endmask);
-	}
-	ppt++;
-    }
-}
-
-# include "fastblt.h"
-
-#define IncSrcPtr   psrc++; if (!--srcRemaining) { srcRemaining = widthSrc; psrc = psrcStart; }
-
-void
-MROP_NAME(cfbFillBoxTile32s) (pDrawable, nBox, pBox, tile, xrot, yrot, alu, planemask)
-    DrawablePtr	    pDrawable;
-    int		    nBox;	/* number of boxes to fill */
-    register BoxPtr pBox;	/* pointer to list of boxes to fill */
-    PixmapPtr	    tile;	/* tile */
-    int		    xrot, yrot;
-    int		    alu;
-    unsigned long   planemask;
-{
-    int	tileWidth;	/* width of tile */
-    int tileHeight;	/* height of the tile */
-    int	widthSrc;	/* width in longwords of the source tile */
-
-    int widthDst;	/* width in longwords of the dest pixmap */
-    int w;		/* width of current box */
-    int h;		/* height of current box */
-    CfbBits startmask;
-    CfbBits endmask;/* masks for reggedy bits at either end of line */
-    int nlMiddle;	/* number of longwords between sides of boxes */
-    
-    register int nl;	/* loop version of nlMiddle */
-    int srcy;		/* current tile y position */
-    int srcx;		/* current tile x position */
-    int	srcRemaining;	/* number of longwords remaining in source */
-    int xoffDst, xoffSrc;
-    int	srcStart;	/* number of longwords source offset at left of box */
-    int	leftShift, rightShift;
-
-#if MROP == 0 && PSZ == 24
-    DeclareMergeRop24()
-#else
-    MROP_DECLARE_REG()
-#endif
-
-    CfbBits	    *pdstBase;	/* pointer to start of dest */
-    CfbBits	    *pdstLine;	/* poitner to start of dest box */
-    CfbBits	    *psrcBase;	/* pointer to start of source */
-    CfbBits	    *psrcLine;	/* pointer to fetch point of source */
-    CfbBits	    *psrcStart;	/* pointer to start of source line */
-    register CfbBits  *pdst;
-    register CfbBits  *psrc;
-    register CfbBits  bits, bits1;
-    register int	    nlTemp;
-
-#if MROP == 0 && PSZ == 24
-    InitializeMergeRop24 (alu, planemask)
-#else
-    MROP_INITIALIZE (alu, planemask)
-#endif
-
-    psrcBase = (CfbBits *)tile->devPrivate.ptr;
-    tileHeight = tile->drawable.height;
-    tileWidth = tile->drawable.width;
-#if PSZ == 24
-    widthSrc = tile->devKind / PGSZB;
-#else
-    widthSrc = tileWidth >> PWSH;
-#endif
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-    while (nBox--)
-    {
-	w = pBox->x2 - pBox->x1;
-	h = pBox->y2 - pBox->y1;
-
-	/* set up source */
-	modulus (pBox->x1 - xrot, tileWidth, srcx);
-	modulus (pBox->y1 - yrot, tileHeight, srcy);
-#if PSZ == 24
-	xoffSrc = (4 - srcx) & 3;
-	srcStart = (srcx * 3) >> 2;
-#else
-	xoffSrc = srcx & PIM;
-	srcStart = (srcx >> PWSH);
-#endif
-	psrcStart = psrcBase + (srcy * widthSrc);
-	psrcLine = psrcStart + srcStart;
-
-	/* set up dest */
-#if PSZ == 24
-	xoffDst = (4 - pBox->x1) & 3;
-	pdstLine = pdstBase + (pBox->y1 * widthDst) + ((pBox->x1*3) >> 2);
-#else
-	xoffDst = pBox->x1 & PIM;
-	pdstLine = pdstBase + (pBox->y1 * widthDst) + (pBox->x1 >> PWSH);
-#endif
-	/* set up masks */
-#if PSZ == 24
-	if (w == 1  &&  (xoffDst == 0  ||  xoffDst == 1))
-#else
-	if (xoffDst + w < PPW)
-#endif
-	{
-	    maskpartialbits(pBox->x1, w, startmask);
-	    endmask = 0;
-	    nlMiddle = 0;
-	}
-	else
-	{
-	    maskbits (pBox->x1, w, startmask, endmask, nlMiddle)
-	}
-	if (xoffSrc == xoffDst)
-	{
-	    while (h--)
-	    {
-		psrc = psrcLine;
-		pdst = pdstLine;
-		srcRemaining = widthSrc - srcStart;
-		if (startmask)
-		{
-		    *pdst = MROP_MASK (*psrc, *pdst, startmask);
-		    pdst++;
-		    IncSrcPtr
-		}
-		nlTemp = nlMiddle;
-		while (nlTemp)
-		{
-		    nl = nlTemp;
-		    if (nl > srcRemaining)
-			nl = srcRemaining;
-
-		    nlTemp -= nl;
-		    srcRemaining -= nl;
-
-#if MROP == Mcopy
-#ifdef LARGE_INSTRUCTION_CACHE
-#ifdef FAST_CONSTANT_OFFSET_MODE
-
-		    psrc += nl & (UNROLL-1);
-		    pdst += nl & (UNROLL-1);
-
-#define BodyOdd(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]);
-#define BodyEven(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]);
-
-#define LoopReset \
-pdst += UNROLL; \
-psrc += UNROLL;
-
-#else
-
-#define BodyOdd(n)  *pdst = MROP_SOLID (*psrc, *pdst); pdst++; psrc++;
-#define BodyEven(n) BodyOdd(n)
-
-#define LoopReset   ;
-
-#endif
-		    PackedLoop
-
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-
-#else
-		    DuffL(nl, label1,
-			    *pdst = MROP_SOLID (*psrc, *pdst);
-			    pdst++; psrc++;)
-#endif
-#else
-		    while (nl--) {
-			    *pdst = MROP_SOLID (*psrc, *pdst);
-			    pdst++; psrc++;
-		    }
-#endif
-		    if (!srcRemaining)
-		    {
-			srcRemaining = widthSrc;
-			psrc = psrcStart;
-		    }
-		}
-		if (endmask)
-		{
-		    *pdst = MROP_MASK (*psrc, *pdst, endmask);
-		}
-		pdstLine += widthDst;
-		psrcLine += widthSrc;
-		psrcStart += widthSrc;
-		if (++srcy == tileHeight)
-		{
-		    psrcStart = psrcBase;
-		    psrcLine = psrcStart + srcStart;
-		    srcy = 0;
-		}
-	    }
-	}
-	else
-	{
-	    if (xoffSrc > xoffDst)
-	    {
-		leftShift = (xoffSrc - xoffDst) << LEFTSHIFT_AMT;
-		rightShift = PGSZ - leftShift;
-	    }
-	    else
-	    {
-		rightShift = (xoffDst - xoffSrc) << LEFTSHIFT_AMT;
-		leftShift = PGSZ - rightShift;
-	    }
-	    while (h--)
-	    {
-		psrc = psrcLine;
-		pdst = pdstLine;
-		bits = 0;
-		srcRemaining = widthSrc - srcStart;
-		if (xoffSrc > xoffDst)
-		{
-		    bits = *psrc;
-		    IncSrcPtr
-		}
-		if (startmask)
-		{
-		    bits1 = BitLeft(bits,leftShift);
-		    bits = *psrc;
-		    IncSrcPtr
-		    bits1 |= BitRight(bits,rightShift);
-		    *pdst = MROP_MASK(bits1, *pdst, startmask);
-		    pdst++;
-		}
-		nlTemp = nlMiddle;
-		while (nlTemp)
-		{
-		    nl = nlTemp;
-		    if (nl > srcRemaining)
-			nl = srcRemaining;
-
-		    nlTemp -= nl;
-		    srcRemaining -= nl;
-    
-#if MROP == Mcopy
-#ifdef LARGE_INSTRUCTION_CACHE
-		    bits1 = bits;
-    
-#ifdef FAST_CONSTANT_OFFSET_MODE
-    
-		    psrc += nl & (UNROLL-1);
-		    pdst += nl & (UNROLL-1);
-    
-#define BodyOdd(n) \
-    bits = psrc[-n]; \
-    pdst[-n] = MROP_SOLID(BitLeft(bits1, leftShift) | BitRight(bits, rightShift), pdst[-n]);
-    
-#define BodyEven(n) \
-    bits1 = psrc[-n]; \
-    pdst[-n] = MROP_SOLID(BitLeft(bits, leftShift) | BitRight(bits1, rightShift), pdst[-n]);
-    
-#define LoopReset \
-    pdst += UNROLL; \
-    psrc += UNROLL;
-    
-#else
-    
-#define BodyOdd(n) \
-    bits = *psrc++; \
-    *pdst = MROP_SOLID(BitLeft(bits1, leftShift) | BitRight(bits, rightShift), *pdst); \
-    pdst++;
-	       	   
-#define BodyEven(n) \
-    bits1 = *psrc++; \
-    *pdst = MROP_SOLID(BitLeft(bits, leftShift) | BitRight(bits1, rightShift), *pdst); \
-    pdst++;
-    
-#define LoopReset   ;
-    
-#endif	/* !FAST_CONSTANT_OFFSET_MODE */
-    
-		    PackedLoop
-    
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-    
-#else
-		    DuffL (nl,label2,
-		    	bits1 = BitLeft(bits, leftShift);
-		    	bits = *psrc++;
-		    	*pdst = MROP_SOLID (bits1 | BitRight(bits, rightShift), *pdst);
-		    	pdst++;
-		    )
-#endif
-#else
-		    while (nl--) {
-		    	bits1 = BitLeft(bits, leftShift);
-		    	bits = *psrc++;
-		    	*pdst = MROP_SOLID (bits1 | BitRight(bits, rightShift), *pdst);
-		    	pdst++;
-		    }
-#endif
-		    if (!srcRemaining)
-		    {
-			srcRemaining = widthSrc;
-			psrc = psrcStart;
-		    }
-		}
-
-		if (endmask)
-		{
-		    bits1 = BitLeft(bits, leftShift);
-		    if (BitLeft(endmask, rightShift))
-		    {
-			bits = *psrc;
-			bits1 |= BitRight(bits, rightShift);
-		    }
-		    *pdst = MROP_MASK (bits1, *pdst, endmask);
-		}
-		pdstLine += widthDst;
-		psrcLine += widthSrc;
-		psrcStart += widthSrc;
-		if (++srcy == tileHeight)
-		{
-		    psrcStart = psrcBase;
-		    psrcLine = psrcStart + srcStart;
-		    srcy = 0;
-		}
-	    }
-	}
-	pBox++;
-    }
-}
-
-void
-MROP_NAME(cfbFillSpanTile32s) (pDrawable, n, ppt, pwidth, tile, xrot, yrot, alu, planemask)
-    DrawablePtr	pDrawable;
-    int		n;
-    DDXPointPtr	ppt;
-    int		*pwidth;
-    PixmapPtr	tile;
-    int		xrot, yrot;
-    int		alu;
-    unsigned long   planemask;
-{
-    int	tileWidth;	/* width of tile */
-    int tileHeight;	/* height of the tile */
-    int	widthSrc;	/* width in longwords of the source tile */
-
-    int widthDst;	/* width in longwords of the dest pixmap */
-    int w;		/* width of current box */
-    CfbBits startmask;
-    CfbBits endmask;/* masks for reggedy bits at either end of line */
-    int nlMiddle;	/* number of longwords between sides of boxes */
-    
-    register int nl;	/* loop version of nlMiddle */
-    int srcy;		/* current tile y position */
-    int srcx;		/* current tile x position */
-    int	srcRemaining;	/* number of longwords remaining in source */
-    int xoffDst, xoffSrc;
-    int	srcStart;	/* number of longwords source offset at left of box */
-    int	leftShift, rightShift;
-
-#if MROP == 0 && PSZ == 24
-    DeclareMergeRop24()
-#else
-    MROP_DECLARE_REG()
-#endif
-
-    CfbBits	    *pdstBase;	/* pointer to start of dest */
-    CfbBits	    *pdstLine;	/* poitner to start of dest box */
-    CfbBits	    *psrcBase;	/* pointer to start of source */
-    CfbBits	    *psrcLine;	/* pointer to fetch point of source */
-    CfbBits	    *psrcStart;	/* pointer to start of source line */
-    register CfbBits  *pdst;
-    register CfbBits  *psrc;
-    register CfbBits  bits, bits1;
-    register int	    nlTemp;
-
-#if MROP == 0 && PSZ == 24
-    InitializeMergeRop24 (alu, planemask)
-#else
-    MROP_INITIALIZE (alu, planemask)
-#endif
-
-    psrcBase = (CfbBits *)tile->devPrivate.ptr;
-    tileHeight = tile->drawable.height;
-    tileWidth = tile->drawable.width;
-#if PSZ == 24
-    widthSrc = tile->devKind / PGSZB;
-#else
-    widthSrc = tileWidth >> PWSH;
-#endif
-
-    cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase)
-
-    while (n--)
-    {
-	w = *pwidth++;
-
-	/* set up source */
-	modulus (ppt->x - xrot, tileWidth, srcx);
-	modulus (ppt->y - yrot, tileHeight, srcy);
-#if PSZ == 24
-	xoffSrc = (4 - srcx) & 3;
-	srcStart = (srcx * 3) >> 2;
-#else
-	xoffSrc = srcx & PIM;
-	srcStart = (srcx >> PWSH);
-#endif
-	psrcStart = psrcBase + (srcy * widthSrc);
-	psrcLine = psrcStart + srcStart;
-
-	/* set up dest */
-#if PSZ == 24
-	xoffDst = (4 - ppt->x) & 3;
-	pdstLine = pdstBase + (ppt->y * widthDst) + ((ppt->x *3) >> 2);
-	/* set up masks */
-	if (w == 1  &&  (xoffDst == 0  ||  xoffDst == 1))
-#else
-	xoffDst = ppt->x & PIM;
-	pdstLine = pdstBase + (ppt->y * widthDst) + (ppt->x >> PWSH);
-	/* set up masks */
-	if (xoffDst + w < PPW)
-#endif
-	{
-	    maskpartialbits(ppt->x, w, startmask);
-	    endmask = 0;
-	    nlMiddle = 0;
-	}
-	else
-	{
-	    maskbits (ppt->x, w, startmask, endmask, nlMiddle)
-	}
-
-	if (xoffSrc == xoffDst)
-	{
-	    psrc = psrcLine;
-	    pdst = pdstLine;
-	    srcRemaining = widthSrc - srcStart;
-	    if (startmask)
-	    {
-		*pdst = MROP_MASK (*psrc, *pdst, startmask);
-		pdst++;
-		IncSrcPtr
-	    }
-	    nlTemp = nlMiddle;
-	    while (nlTemp)
-	    {
-		nl = nlTemp;
-		if (nl > srcRemaining)
-		    nl = srcRemaining;
-
-		nlTemp -= nl;
-		srcRemaining -= nl;
-
-#if MROP == Mcopy
-#ifdef LARGE_INSTRUCTION_CACHE
-#ifdef FAST_CONSTANT_OFFSET_MODE
-
-		psrc += nl & (UNROLL-1);
-		pdst += nl & (UNROLL-1);
-
-#define BodyOdd(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]);
-#define BodyEven(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]);
-
-#define LoopReset \
-pdst += UNROLL; \
-psrc += UNROLL;
-
-#else
-
-#define BodyOdd(n)  *pdst = MROP_SOLID (*psrc, *pdst); pdst++; psrc++;
-#define BodyEven(n) BodyOdd(n)
-
-#define LoopReset   ;
-
-#endif
-		PackedLoop
-
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-
-#else
-		DuffL(nl, label1,
-			*pdst = MROP_SOLID (*psrc, *pdst);
-			pdst++; psrc++;)
-#endif
-#else
-		while (nl--) {
-			*pdst = MROP_SOLID (*psrc, *pdst);
-			pdst++; psrc++;
-		}
-#endif
-		if (!srcRemaining)
-		{
-		    srcRemaining = widthSrc;
-		    psrc = psrcStart;
-		}
-	    }
-	    if (endmask)
-	    {
-		*pdst = MROP_MASK (*psrc, *pdst, endmask);
-	    }
-	}
-	else
-	{
-	    if (xoffSrc > xoffDst)
-	    {
-		leftShift = (xoffSrc - xoffDst) << LEFTSHIFT_AMT;
-		rightShift = PGSZ - leftShift;
-	    }
-	    else
-	    {
-		rightShift = (xoffDst - xoffSrc) << LEFTSHIFT_AMT;
-		leftShift = PGSZ - rightShift;
-	    }
-	    psrc = psrcLine;
-	    pdst = pdstLine;
-	    bits = 0;
-	    srcRemaining = widthSrc - srcStart;
-	    if (xoffSrc > xoffDst)
-	    {
-		bits = *psrc;
-		IncSrcPtr
-	    }
-	    if (startmask)
-	    {
-		bits1 = BitLeft(bits,leftShift);
-		bits = *psrc;
-		IncSrcPtr
-		bits1 |= BitRight(bits,rightShift);
-		*pdst = MROP_MASK(bits1, *pdst, startmask);
-		pdst++;
-	    }
-	    nlTemp = nlMiddle;
-	    while (nlTemp)
-	    {
-		nl = nlTemp;
-		if (nl > srcRemaining)
-		    nl = srcRemaining;
-
-		nlTemp -= nl;
-		srcRemaining -= nl;
-
-#if MROP == Mcopy
-#ifdef LARGE_INSTRUCTION_CACHE
-		bits1 = bits;
-
-#ifdef FAST_CONSTANT_OFFSET_MODE
-
-		psrc += nl & (UNROLL-1);
-		pdst += nl & (UNROLL-1);
-
-#define BodyOdd(n) \
-bits = psrc[-n]; \
-pdst[-n] = MROP_SOLID(BitLeft(bits1, leftShift) | BitRight(bits, rightShift), pdst[-n]);
-
-#define BodyEven(n) \
-bits1 = psrc[-n]; \
-pdst[-n] = MROP_SOLID(BitLeft(bits, leftShift) | BitRight(bits1, rightShift), pdst[-n]);
-
-#define LoopReset \
-pdst += UNROLL; \
-psrc += UNROLL;
-
-#else
-
-#define BodyOdd(n) \
-bits = *psrc++; \
-*pdst = MROP_SOLID(BitLeft(bits1, leftShift) | BitRight(bits, rightShift), *pdst); \
-pdst++;
-	       
-#define BodyEven(n) \
-bits1 = *psrc++; \
-*pdst = MROP_SOLID(BitLeft(bits, leftShift) | BitRight(bits1, rightShift), *pdst); \
-pdst++;
-
-#define LoopReset   ;
-
-#endif	/* !FAST_CONSTANT_OFFSET_MODE */
-
-		PackedLoop
-
-#undef BodyOdd
-#undef BodyEven
-#undef LoopReset
-
-#else
-		DuffL (nl,label2,
-		    bits1 = BitLeft(bits, leftShift);
-		    bits = *psrc++;
-		    *pdst = MROP_SOLID (bits1 | BitRight(bits, rightShift), *pdst);
-		    pdst++;
-		)
-#endif
-#else
-		while (nl--) {
-		    bits1 = BitLeft(bits,leftShift);
-		    bits = *psrc++;
-		    *pdst = MROP_SOLID(bits1|BitRight(bits,rightShift), *pdst);
-		    pdst++;
-		}
-#endif
-		if (!srcRemaining)
-		{
-		    srcRemaining = widthSrc;
-		    psrc = psrcStart;
-		}
-	    }
-
-	    if (endmask)
-	    {
-		bits1 = BitLeft(bits, leftShift);
-		if (BitLeft(endmask, rightShift))
-		{
-		    bits = *psrc;
-		    bits1 |= BitRight(bits, rightShift);
-		}
-		*pdst = MROP_MASK (bits1, *pdst, endmask);
-	    }
-	}
-	ppt++;
-    }
-}
diff --git a/cfb/cfbunmap.h b/cfb/cfbunmap.h
deleted file mode 100644
index db98892..0000000
--- a/cfb/cfbunmap.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 1994-1998 The XFree86 Project, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the XFree86 Project shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from the
- * XFree86 Project.
- */
-
-/*
- * Unmap names
- */
-
-#undef CFBNAME
-#undef CATNAME
-
-#undef QuartetBitsTable
-#undef QuartetPixelMaskTable
-#undef cfb8ClippedLineCopy
-#undef cfb8ClippedLineGeneral 
-#undef cfb8ClippedLineXor
-#undef cfb8LineSS1Rect
-#undef cfb8LineSS1RectCopy
-#undef cfb8LineSS1RectGeneral 
-#undef cfb8LineSS1RectPreviousCopy
-#undef cfb8LineSS1RectXor
-#undef cfb8SegmentSS1Rect
-#undef cfb8SegmentSS1RectCopy
-#undef cfb8SegmentSS1RectGeneral 
-#undef cfb8SegmentSS1RectShiftCopy
-#undef cfb8SegmentSS1RectXor
-#undef cfbAllocatePrivates
-#undef cfbBSFuncRec
-#undef cfbBitBlt
-#undef cfbBresD
-#undef cfbBresS
-#undef cfbChangeWindowAttributes
-#undef cfbClearVisualTypes
-#undef cfbCloseScreen
-#undef cfbCreateDefColormap
-#undef cfbCopyArea
-#undef cfbCopyImagePlane
-#undef cfbCopyPixmap
-#undef cfbCopyPlane
-#undef cfbCopyPlaneReduce
-#undef cfbCopyRotatePixmap
-#undef cfbCopyWindow
-#undef cfbCreateGC
-#undef cfbCreatePixmap
-#undef cfbCreateScreenResources
-#undef cfbCreateWindow
-#undef cfbDestroyPixmap
-#undef cfbDestroyWindow
-#undef cfbDoBitblt
-#undef cfbDoBitbltCopy
-#undef cfbDoBitbltGeneral
-#undef cfbDoBitbltOr
-#undef cfbDoBitbltXor
-#undef cfbExpandDirectColors
-#undef cfbFillBoxTile32sCopy
-#undef cfbFillBoxTile32sGeneral
-#undef cfbFillBoxTileOdd
-#undef cfbFillBoxTileOddCopy
-#undef cfbFillBoxTileOddGeneral
-#undef cfbFillPoly1RectCopy
-#undef cfbFillPoly1RectGeneral
-#undef cfbFillRectSolidCopy
-#undef cfbFillRectSolidGeneral
-#undef cfbFillRectSolidXor
-#undef cfbFillRectTile32Copy
-#undef cfbFillRectTile32General
-#undef cfbFillRectTileOdd
-#undef cfbFillSpanTile32sCopy
-#undef cfbFillSpanTile32sGeneral
-#undef cfbFillSpanTileOddCopy
-#undef cfbFillSpanTileOddGeneral
-#undef cfbFinishScreenInit
-#undef cfbGCFuncs
-#undef cfbGCPrivateKey
-#undef cfbGetImage
-#undef cfbGetScreenPixmap
-#undef cfbGetSpans
-#undef cfbHorzS
-#undef cfbImageGlyphBlt8
-#undef cfbInitializeColormap
-#undef cfbInitVisuals
-#undef cfbInstallColormap
-#undef cfbLineSD
-#undef cfbLineSS
-#undef cfbListInstalledColormaps
-#undef cfbMapWindow
-#undef cfbMatchCommon
-#undef cfbNonTEOps
-#undef cfbNonTEOps1Rect
-#undef cfbPadPixmap
-#undef cfbPolyFillArcSolidCopy
-#undef cfbPolyFillArcSolidGeneral
-#undef cfbPolyFillRect
-#undef cfbPolyGlyphBlt8
-#undef cfbPolyGlyphRop8
-#undef cfbPolyPoint
-#undef cfbPositionWindow
-#undef cfbPutImage
-#undef cfbReduceRasterOp
-#undef cfbResolveColor
-#undef cfbRestoreAreas
-#undef cfbSaveAreas
-#undef cfbScreenInit
-#undef cfbScreenPrivateKey
-#undef cfbSegmentSD
-#undef cfbSegmentSS
-#undef cfbSetScanline
-#undef cfbSetScreenPixmap
-#undef cfbSetSpans
-#undef cfbSetVisualTypes
-#undef cfbSetupScreen
-#undef cfbSolidSpansCopy
-#undef cfbSolidSpansGeneral
-#undef cfbSolidSpansXor
-#undef cfbStippleStack
-#undef cfbStippleStackTE
-#undef cfbTEGlyphBlt
-#undef cfbTEOps
-#undef cfbTEOps1Rect
-#undef cfbTile32FSCopy
-#undef cfbTile32FSGeneral
-#undef cfbUninstallColormap
-#undef cfbUnmapWindow
-#undef cfbUnnaturalStippleFS
-#undef cfbUnnaturalTileFS
-#undef cfbValidateGC
-#undef cfbVertS
-#undef cfbWindowPrivateKey
-#undef cfbXRotatePixmap
-#undef cfbYRotatePixmap
-#undef cfbZeroPolyArcSS8Copy
-#undef cfbZeroPolyArcSS8General
-#undef cfbZeroPolyArcSS8Xor
-#undef cfbendpartial
-#undef cfbendtab
-#undef cfbmask
-#undef cfbrmask
-#undef cfbstartpartial
-#undef cfbstarttab
diff --git a/cfb/cfbwindow.c b/cfb/cfbwindow.c
deleted file mode 100644
index 5072876..0000000
--- a/cfb/cfbwindow.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <X11/X.h>
-#include "scrnintstr.h"
-#include "windowstr.h"
-#include "cfb.h"
-#include "mistruct.h"
-#include "regionstr.h"
-#include "cfbmskbits.h"
-
-Bool
-cfbCreateWindow(WindowPtr pWin)
-{
-#ifdef PIXMAP_PER_WINDOW
-    /* Setup pointer to Screen pixmap */
-    dixSetPrivate(&pWin->devPrivates, frameWindowPrivateKey,
-		  cfbGetScreenPixmap(pWin->drawable.pScreen));
-#endif
-
-    return TRUE;
-}
-
-Bool
-cfbDestroyWindow(WindowPtr pWin)
-{
-    return(TRUE);
-}
-
-/*ARGSUSED*/
-Bool
-cfbMapWindow(pWindow)
-    WindowPtr pWindow;
-{
-    return(TRUE);
-}
-
-/*ARGSUSED*/
-Bool
-cfbPositionWindow(WindowPtr pWin, int x, int y)
-{
-    return (TRUE);
-}
-
-/*ARGSUSED*/
-Bool
-cfbUnmapWindow(pWindow)
-    WindowPtr pWindow;
-{
-    return (TRUE);
-}
-
-/* UNCLEAN!
-   this code calls the bitblt helper code directly.
-
-   cfbCopyWindow copies only the parts of the destination that are
-visible in the source.
-*/
-
-
-void 
-cfbCopyWindow(pWin, ptOldOrg, prgnSrc)
-    WindowPtr pWin;
-    DDXPointRec ptOldOrg;
-    RegionPtr prgnSrc;
-{
-    DDXPointPtr pptSrc;
-    register DDXPointPtr ppt;
-    RegionRec rgnDst;
-    register BoxPtr pbox;
-    register int dx, dy;
-    register int i, nbox;
-    WindowPtr pwinRoot;
-
-    pwinRoot = WindowTable[pWin->drawable.pScreen->myNum];
-
-    REGION_NULL(pWin->drawable.pScreen, &rgnDst);
-
-    dx = ptOldOrg.x - pWin->drawable.x;
-    dy = ptOldOrg.y - pWin->drawable.y;
-    REGION_TRANSLATE(pWin->drawable.pScreen, prgnSrc, -dx, -dy);
-    REGION_INTERSECT(pWin->drawable.pScreen, &rgnDst, &pWin->borderClip, prgnSrc);
-
-    pbox = REGION_RECTS(&rgnDst);
-    nbox = REGION_NUM_RECTS(&rgnDst);
-    if(!nbox || !(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec))))
-    {
-	REGION_UNINIT(pWin->drawable.pScreen, &rgnDst);
-	return;
-    }
-    ppt = pptSrc;
-
-    for (i = nbox; --i >= 0; ppt++, pbox++)
-    {
-	ppt->x = pbox->x1 + dx;
-	ppt->y = pbox->y1 + dy;
-    }
-
-    cfbDoBitbltCopy((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot,
-		GXcopy, &rgnDst, pptSrc, ~0L);
-    xfree(pptSrc);
-    REGION_UNINIT(pWin->drawable.pScreen, &rgnDst);
-}
-
-Bool
-cfbChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
-{
-    return (TRUE);
-}
-
diff --git a/cfb/cfbzerarc.c b/cfb/cfbzerarc.c
deleted file mode 100644
index 5b8879e..0000000
--- a/cfb/cfbzerarc.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/************************************************************
-
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-********************************************************/
-
-
-/* Derived from:
- * "Algorithm for drawing ellipses or hyperbolae with a digital plotter"
- * by M. L. V. Pitteway
- * The Computer Journal, November 1967, Volume 10, Number 3, pp. 282-289
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <limits.h>
-
-#include <X11/X.h>
-#include <X11/Xprotostr.h>
-#include "regionstr.h"
-#include "gcstruct.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "cfb.h"
-#include "cfbmskbits.h"
-#include "mizerarc.h"
-#include "cfbrrop.h"
-#include "mi.h"
-
-#ifdef PIXEL_ADDR
-
-static void
-RROP_NAME(cfbZeroArcSS8)(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    xArc *arc)
-{
-    miZeroArcRec info;
-    Bool do360;
-    register int x;
-    PixelType *addrp;
-    register PixelType *yorgp, *yorgop;
-#if PSZ == 24
-    int xorg, xorg3, xorgo, xorgo3;
-    register int xtmp;
-#endif
-    RROP_DECLARE
-    register int yoffset;
-    int npwidth, dyoffset;
-    register int y, a, b, d, mask;
-    register int k1, k3, dx, dy;
-
-    cfbGetPixelWidthAndPointer(pDraw,npwidth, addrp)
-
-    RROP_FETCH_GC (pGC);
-    do360 = miZeroArcSetup(arc, &info, TRUE);
-    yorgp = addrp + ((info.yorg + pDraw->y) * npwidth);
-    yorgop = addrp + ((info.yorgo + pDraw->y) * npwidth);
-    info.xorg += pDraw->x;
-    info.xorgo += pDraw->x;
-#if PSZ == 24
-    xorg = info.xorg;
-    xorg3 = xorg * 3;
-    info.xorg = (info.xorg * 3) >> 2;
-    xorgo = info.xorgo;
-    xorgo3 = xorgo * 3; 
-    info.xorgo = (info.xorgo * 3) >> 2;
-#endif
-    MIARCSETUP();
-    yoffset = y ? npwidth : 0;
-    dyoffset = 0;
-    mask = info.initialMask;
-    if (!(arc->width & 1))
-    {
-#if PSZ == 24
-	if (mask & 2)
-	    RROP_SOLID24((yorgp + info.xorgo), xorgo);
-	if (mask & 8)
-	    RROP_SOLID24((yorgop + info.xorgo), xorgo);
-#else
-	if (mask & 2)
-	    RROP_SOLID((yorgp + info.xorgo));
-	if (mask & 8)
-	    RROP_SOLID((yorgop + info.xorgo));
-#endif /* PSZ == 24 */
-    }
-    if (!info.end.x || !info.end.y)
-    {
-	mask = info.end.mask;
-	info.end = info.altend;
-    }
-    if (do360 && (arc->width == arc->height) && !(arc->width & 1))
-    {
-	register int xoffset = npwidth;
-#if PSZ == 24
-	PixelType *yorghb = yorgp + (info.h * npwidth);
-	register int tmp1, tmp2, tmp1_3, tmp2_3;
-
-	tmp1 = xorg + info.h;
-	tmp1_3 = tmp1 * 3;
-	tmp2 = xorg - info.h;
-	tmp2_3 = tmp2 * 3;
-	while (1)
-	{
-	    xtmp = (xorg3 + x * 3) >> 2;
-	    RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x);
-	    RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x);
-	    xtmp = (xorg3 - x * 3) >> 2;
-	    RROP_SOLID24(yorgp + yoffset + xtmp, xorg - x);
-	    RROP_SOLID24(yorgop - yoffset + xtmp, xorg - x);
-	    if (a < 0)
-		break;
-	    xtmp = (tmp1_3 - y * 3) >> 2;
-	    RROP_SOLID24(yorghb - xoffset + xtmp, tmp1 - y);
-	    RROP_SOLID24(yorghb + xoffset + xtmp, tmp1 - y);
-	    xtmp = (tmp2_3 + y * 3) >> 2;
-	    RROP_SOLID24(yorghb - xoffset + xtmp, tmp2 + y);
-	    RROP_SOLID24(yorghb + xoffset + xtmp, tmp2 + y);
-	    xoffset += npwidth;
-	    MIARCCIRCLESTEP(yoffset += npwidth;);
-	}
-#else
-	PixelType *yorghb = yorgp + (info.h * npwidth) + info.xorg;
-	PixelType *yorgohb = yorghb - info.h;
-
-	yorgp += info.xorg;
-	yorgop += info.xorg;
-	yorghb += info.h;
-	while (1)
-	{
-	    RROP_SOLID(yorgp + yoffset + x);
-	    RROP_SOLID(yorgp + yoffset - x);
-	    RROP_SOLID(yorgop - yoffset - x);
-	    RROP_SOLID(yorgop - yoffset + x);
-	    if (a < 0)
-		break;
-	    RROP_SOLID(yorghb - xoffset - y);
-	    RROP_SOLID(yorgohb - xoffset + y);
-	    RROP_SOLID(yorgohb + xoffset + y);
-	    RROP_SOLID(yorghb + xoffset - y);
-	    xoffset += npwidth;
-	    MIARCCIRCLESTEP(yoffset += npwidth;);
-	}
-	yorgp -= info.xorg;
-	yorgop -= info.xorg;
-#endif /* PSZ == 24 */
-	x = info.w;
-	yoffset = info.h * npwidth;
-    }
-    else if (do360)
-    {
-	while (y < info.h || x < info.w)
-	{
-	    MIARCOCTANTSHIFT(dyoffset = npwidth;);
-#if PSZ == 24
-	    xtmp = (xorg3 + x * 3) >> 2;
-	    RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x);
-	    RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x);
-	    xtmp = (xorgo3 - x * 3) >> 2;
-	    RROP_SOLID24(yorgp + yoffset + xtmp, xorgo - x);
-	    RROP_SOLID24(yorgop - yoffset + xtmp, xorgo - x);
-#else
-	    RROP_SOLID(yorgp + yoffset + info.xorg + x);
-	    RROP_SOLID(yorgp + yoffset + info.xorgo - x);
-	    RROP_SOLID(yorgop - yoffset + info.xorgo - x);
-	    RROP_SOLID(yorgop - yoffset + info.xorg + x);
-#endif
-	    MIARCSTEP(yoffset += dyoffset;, yoffset += npwidth;);
-	}
-    }
-    else
-    {
-	while (y < info.h || x < info.w)
-	{
-	    MIARCOCTANTSHIFT(dyoffset = npwidth;);
-	    if ((x == info.start.x) || (y == info.start.y))
-	    {
-		mask = info.start.mask;
-		info.start = info.altstart;
-	    }
-#if PSZ == 24
-	    if (mask & 1){
-	      xtmp = (xorg3 + x * 3) >> 2;
-	      RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x);
-	    }
-	    if (mask & 2){
-	      xtmp = (xorgo3 - x * 3) >> 2;
-	      RROP_SOLID24(yorgp + yoffset + xtmp, xorgo - x);
-	    }
-	    if (mask & 4){
-	      xtmp = (xorgo3 - x * 3) >> 2;
-	      RROP_SOLID24(yorgop - yoffset + xtmp, xorgo - x);
-	    }
-	    if (mask & 8){
-	      xtmp = (xorg3 + x * 3) >> 2;
-	      RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x);
-	    }
-#else
-	    if (mask & 1)
-		RROP_SOLID(yorgp + yoffset + info.xorg + x);
-	    if (mask & 2)
-		RROP_SOLID(yorgp + yoffset + info.xorgo - x);
-	    if (mask & 4)
-		RROP_SOLID(yorgop - yoffset + info.xorgo - x);
-	    if (mask & 8)
-		RROP_SOLID(yorgop - yoffset + info.xorg + x);
-#endif /* PSZ == 24 */
-	    if ((x == info.end.x) || (y == info.end.y))
-	    {
-		mask = info.end.mask;
-		info.end = info.altend;
-	    }
-	    MIARCSTEP(yoffset += dyoffset;, yoffset += npwidth;);
-	}
-    }
-    if ((x == info.start.x) || (y == info.start.y))
-	mask = info.start.mask;
-#if PSZ == 24
-    if (mask & 1){
-      xtmp = (xorg3 + x * 3) >> 2;
-      RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x);
-    }
-    if (mask & 4){
-      xtmp = (xorgo3 - x * 3) >> 2;
-      RROP_SOLID24(yorgop - yoffset + xtmp, xorgo - x);
-    }
-#else
-    if (mask & 1)
-	RROP_SOLID(yorgp + yoffset + info.xorg + x);
-    if (mask & 4)
-	RROP_SOLID(yorgop - yoffset + info.xorgo - x);
-#endif /* PSZ == 24 */
-    if (arc->height & 1)
-    {
-#if PSZ == 24
-	if (mask & 2){
-	  xtmp = (xorgo3 - x * 3) >> 2;
-	  RROP_SOLID24(yorgp + yoffset + xtmp, xorgo - x);
-	}
-	if (mask & 8){
-	  xtmp = (xorg3 + x * 3) >> 2;
-	  RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x);
-	}
-#else
-	if (mask & 2)
-	    RROP_SOLID(yorgp + yoffset + info.xorgo - x);
-	if (mask & 8)
-	    RROP_SOLID(yorgop - yoffset + info.xorg + x);
-#endif /* PSZ == 24 */
-    }
-    RROP_UNDECLARE
-}
-
-void
-RROP_NAME (cfbZeroPolyArcSS8) (pDraw, pGC, narcs, parcs)
-    register DrawablePtr	pDraw;
-    GCPtr	pGC;
-    int		narcs;
-    xArc	*parcs;
-{
-    register xArc *arc;
-    register int i;
-    BoxRec box;
-    int x2, y2;
-    RegionPtr cclip;
-
-    cclip = cfbGetCompositeClip(pGC);
-    for (arc = parcs, i = narcs; --i >= 0; arc++)
-    {
-	if (miCanZeroArc(arc))
-	{
-	    box.x1 = arc->x + pDraw->x;
-	    box.y1 = arc->y + pDraw->y;
- 	    /*
- 	     * Because box.x2 and box.y2 get truncated to 16 bits, and the
- 	     * RECT_IN_REGION test treats the resulting number as a signed
- 	     * integer, the RECT_IN_REGION test alone can go the wrong way.
- 	     * This can result in a server crash because the rendering
- 	     * routines in this file deal directly with cpu addresses
- 	     * of pixels to be stored, and do not clip or otherwise check
- 	     * that all such addresses are within their respective pixmaps.
- 	     * So we only allow the RECT_IN_REGION test to be used for
- 	     * values that can be expressed correctly in a signed short.
- 	     */
- 	    x2 = box.x1 + (int)arc->width + 1;
- 	    box.x2 = x2;
- 	    y2 = box.y1 + (int)arc->height + 1;
- 	    box.y2 = y2;
- 	    if ( (x2 <= SHRT_MAX) && (y2 <= SHRT_MAX) &&
- 		    (RECT_IN_REGION(pDraw->pScreen, cclip, &box) == rgnIN) )
-		RROP_NAME (cfbZeroArcSS8) (pDraw, pGC, arc);
-	    else
-		miZeroPolyArc(pDraw, pGC, 1, arc);
-	}
-	else
-	    miPolyArc(pDraw, pGC, 1, arc);
-    }
-}
-
-#endif
diff --git a/cfb/stip68kgnu.h b/cfb/stip68kgnu.h
deleted file mode 100644
index 2da27b4..0000000
--- a/cfb/stip68kgnu.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-/*
- * Stipple stack macro for 68k GCC
- */
-
-#define STIPPLE(addr,stipple,value,width,count,shift) \
-    __asm volatile ( \
-       "lea	5f,%/a1\n\
-	moveq	#28,%/d2\n\
-	addl	%2,%/d2\n\
-	moveq	#28,%/d3\n\
-	subql	#4,%2\n\
-	negl	%2\n\
-1:\n\
-	movel	%0,%/a0\n\
-	addl	%6,%0\n\
-	movel	%3 at +,%/d1\n\
-	jeq	3f\n\
-	movel	%/d1,%/d0\n\
-	lsrl	%/d2,%/d0\n\
-	lsll	#5,%/d0\n\
-	lsll	%2,%/d1\n\
-	jmp	%/a1@(%/d0:l)\n\
-2:\n\
-	addl	#4,%/a0\n\
-	movel	%/d1,%/d0\n\
-	lsrl	%/d3,%/d0\n\
-	lsll	#5,%/d0\n\
-	lsll	#4,%/d1\n\
-	jmp	%/a1@(%/d0:l)\n\
-5:\n\
-	jne 2b ; dbra %1,1b ; jra 4f\n\
-	. = 5b + 0x20\n\
-	moveb	%5,%/a0@(3)\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f\n\
-	. = 5b + 0x40\n\
-	moveb	%5,%/a0@(2)\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f\n\
-	. = 5b + 0x60\n\
-	movew	%5,%/a0@(2)\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f\n\
-	. = 5b + 0x80\n\
-	moveb	%5,%/a0@(1)\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0xa0\n\
-	moveb	%5,%/a0@(3) ; moveb	%5,%/a0@(1)\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0xc0\n\
-	movew	%5,%/a0@(1)\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0xe0\n\
-	movew	%5,%/a0@(2) ; moveb	%5,%/a0@(1)\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x100\n\
-	moveb	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x120\n\
-	moveb	%5,%/a0@(3) ; moveb	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x140\n\
-	moveb	%5,%/a0@(2) ; moveb	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x160\n\
-	movew	%5,%/a0@(2) ; moveb	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x180\n\
-	movew	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x1a0\n\
-	moveb	%5,%/a0@(3) ; movew	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x1c0\n\
-	moveb	%5,%/a0@(2) ; movew	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; dbra %1,1b ; jra 4f ;\n\
-	. = 5b + 0x1e0\n\
-	movel	%5,%/a0@\n\
-	andl	%/d1,%/d1 ; jne 2b ; \n\
-3: 	dbra %1,1b ; \n\
-4:\n"\
-	    : "=a" (addr),	    /* %0 */ \
-	      "=d" (count),	    /* %1 */ \
-	      "=d" (shift),	    /* %2 */ \
-	      "=a" (stipple)	    /* %3 */ \
-	    : "0" (addr),	    /* %4 */ \
-	      "d" (value),	    /* %5 */ \
-	      "a" (width),	    /* %6 */ \
-	      "1" (count-1),	    /* %7 */ \
-	      "2" (shift),	    /* %8 */ \
-	      "3" (stipple)	    /* %9 */ \
-	    : /* ctemp */	    "d0", \
- 	      /* c */		    "d1", \
-	      /* lshift */	    "d2", \
-	      /* rshift */	    "d3", \
- 	      /* atemp */	    "a0", \
- 	      /* case */	    "a1")
diff --git a/cfb/stipmips.s b/cfb/stipmips.s
deleted file mode 100644
index c42d9b5..0000000
--- a/cfb/stipmips.s
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * $Xorg: stipmips.s,v 1.4 2001/02/09 02:04:39 xorgcvs Exp $
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-
-/*
- * MIPS assembly code for optimized text rendering.
- *
- * Other stippling could be done in assembly, but the payoff is
- * not nearly as large.  Mostly because large areas are heavily
- * optimized already.
- */
-
-#ifdef MIPSEL
-# define BitsR		sll
-# define BitsL		srl
-# define BO(o)		o
-# define HO(o)		o
-# define WO(o)		o
-# define FourBits(dest,bits)	and	dest, bits, 0xf
-#else
-# define BitsR	srl
-# define BitsL	sll
-# define BO(o)		3-o
-# define HO(o)		2-o
-# define WO(o)		o
-# define FourBits(dest,bits)	srl	dest, bits, 28
-#endif
-
-/* reordering instructions would be fatal here */
-	.set	noreorder
-
-	
-/*
- * cfbStippleStack(addr, stipple, value, stride, Count, Shift)
- *               4       5       6      7     16(sp) 20(sp)
- *
- *  Apply successive 32-bit stipples starting at addr, addr+stride, ...
- *
- *  Used for text rendering, but only when no data could be lost
- *  when the stipple is shifted left by Shift bits
- */
-/* arguments */
-#define addr	$4
-#define stipple	$5
-#define value	$6
-#define stride	$7
-#define Count	16($sp)
-#define Shift	20($sp)
-
-/* local variables */
-#define count	$14
-#define shift	$13
-#define atemp	$12
-#define bits	$11
-#define lshift	$9
-#define sbase	$8
-#define stemp	$2
-
-#define CASE_SIZE	5	/* case blocks are 2^5 bytes each */
-#define CASE_MASK	0x1e0	/* first case mask */
-
-#define ForEachLine	$200
-#define NextLine	$201
-#define NextLine1	$202
-#define CaseBegin	$203
-#define ForEachBits	$204
-#define ForEachBits1	$205
-#define NextBits	$206
-
-#ifdef TETEXT
-#define	cfbStippleStack	cfbStippleStackTE
-#endif
-
-	.globl	cfbStippleStack
-	.ent	cfbStippleStack 2
-cfbStippleStack:
-	.frame	$sp, 0, $31
-	lw	count, Count			/* fetch stack params */
-	la	sbase,CaseBegin			/* load up switch table */
-	lw	shift, Shift
-	li	lshift, 4			/* compute offset within */
-	subu	lshift, lshift, shift		/*  stipple of remaining bits */
-#ifdef MIPSEL
-	addu	shift, shift, CASE_SIZE		/* first shift for LSB */
-#else
-	addu	shift, shift, 28-CASE_SIZE	/* first shift for MSB */
-#endif
-	/* do ... while (--count > 0); */
-ForEachLine:
-	lw	bits, 0(stipple)		/* get stipple bits */
-	move	atemp, addr			/* set up for this line */
-#ifdef TETEXT
-	/* Terminal emulator fonts are expanded and have many 0 rows */
-	beqz	bits, NextLine			/* skip out early on 0 */
-#endif
-	addu	addr, addr, stride		/* step for the loop */
-	BitsR	stemp, bits, shift		/* get first bits */
-	and	stemp, stemp, CASE_MASK		/* compute first branch */
-	addu	stemp, stemp, sbase		/*  ... */
-	j	stemp				/*  ... */
-	BitsL	bits, bits, lshift		/* set remaining bits */
-
-ForEachBits:
-	addu	atemp, atemp, 4
-ForEachBits1:
-	FourBits(stemp, bits)			/* compute jump for */
-	sll	stemp, stemp, CASE_SIZE		/*  next four bits */
-	addu	stemp, stemp, sbase		/*  ... */
-	j	stemp				/*  ... */
-	BitsL	bits, bits, 4			/* step for remaining bits */
-CaseBegin:
-	bnez	bits, ForEachBits1		/* 0 */
-	addu	atemp, atemp, 4
-NextLine:
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-
-	bnez	bits, ForEachBits		/* 1 */
-	sb	value, BO(0)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	bnez	bits, ForEachBits		/* 2 */
-	sb	value, BO(1)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	bnez	bits, ForEachBits		/* 3 */
-	sh	value, HO(0)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	bnez	bits, ForEachBits		/* 4 */
-	sb	value, BO(2)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	sb	value, BO(0)(atemp)		/* 5 */
-	bnez	bits, ForEachBits
-	sb	value, BO(2)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-					
-	sb	value, BO(1)(atemp)		/* 6 */
-	bnez	bits, ForEachBits
-	sb	value, BO(2)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-					
-	bnez	bits, ForEachBits		/* 7 */
-	swl	value, BO(2)(atemp)		/* untested on MSB */
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	bnez	bits, ForEachBits		/* 8 */
-	sb	value, BO(3)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	sb	value, BO(0)(atemp)		/* 9 */
-	bnez	bits, ForEachBits
-	sb	value, BO(3)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-					
-	sb	value, BO(1)(atemp)		/* a */
-	bnez	bits, ForEachBits
-	sb	value, BO(3)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-
-	sh	value, HO(0)(atemp)		/* b */
-	bnez	bits, ForEachBits
-	sb	value, BO(3)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-					
-	bnez	bits, ForEachBits		/* c */
-	sh	value, HO(2)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	sb	value, BO(0)(atemp)		/* d */
-	bnez	bits, ForEachBits
-	sh	value, HO(2)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-
-	bnez	bits, ForEachBits		/* e */
-	swr	value, BO(1)(atemp)		/* untested on MSB */
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	bnez	bits, ForEachBits		/* f */
-	sw	value, WO(0)(atemp)
- 	addu	count, count, -1
-	bnez	count, ForEachLine
-	addu	stipple, stipple, 4
-	j	$31
-	nop
-	nop
-					
-	.end	cfbStippleStack
diff --git a/cfb/stipsparc.s b/cfb/stipsparc.s
deleted file mode 100644
index dcd440b..0000000
--- a/cfb/stipsparc.s
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * $Xorg: stipsparc.s,v 1.4 2001/02/09 02:04:39 xorgcvs Exp $
- * $XdotOrg:	$
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-/* $XFree86: xc/programs/Xserver/cfb/stipsparc.s,v 1.4 2001/01/17 22:36:38 dawes Exp $ */
-
-/*
- * SPARC assembly code for optimized text rendering.
- *
- * Other stippling could be done in assembly, but the payoff is
- * not nearly as large.  Mostly because large areas are heavily
- * optimized already.
- */
-
-/* not that I expect to ever see an LSB SPARC, but ... */
-#ifdef LITTLE_ENDIAN
-# define BitsR		sll
-# define BitsL		srl
-# define BO(o)		o
-# define HO(o)		o
-# define WO(o)		o
-# define FourBits(dest,bits)	and	bits, 0xf, dest
-#else
-# define BitsR		srl
-# define BitsL		sll
-# define BO(o)		3-o
-# define HO(o)		2-o
-# define WO(o)		o
-# define FourBits(dest,bits)	srl	bits, 28, dest
-#endif
-
-/*
- * cfbStippleStack(addr, stipple, value, stride, Count, Shift)
- *               4       5       6      7     16(sp) 20(sp)
- *
- *  Apply successive 32-bit stipples starting at addr, addr+stride, ...
- *
- *  Used for text rendering, but only when no data could be lost
- *  when the stipple is shifted left by Shift bits
- */
-/* arguments */
-#define addr	%i0
-#define stipple	%i1
-#define value	%i2
-#define stride	%i3
-#define count	%i4
-#define shift	%i5
-
-/* local variables */
-#define atemp	%l0
-#define bits	%l1
-#define lshift	%l2
-#define sbase	%l3
-#define stemp	%l4
-
-#define CASE_SIZE	5	/* case blocks are 2^5 bytes each */
-#define CASE_MASK	0x1e0	/* first case mask */
-
-#define ForEachLine	LY1
-#define NextLine	LY2
-#define CaseBegin	LY3
-#define ForEachBits	LY4
-#define NextBits	LY5
-
-#if defined(SVR4) || defined(__ELF__)
-#ifdef TETEXT
-#define	_cfbStippleStack	cfbStippleStackTE
-#else
-#define	_cfbStippleStack	cfbStippleStack
-#endif
-#else
-#ifdef TETEXT
-#define	_cfbStippleStack	_cfbStippleStackTE
-#endif
-#endif
-	.seg	"text"
-	.proc	16
-	.globl	_cfbStippleStack
-_cfbStippleStack:
-	save	%sp,-64,%sp
-#ifdef SHAREDCODE
-1:
-        call    2f
-        nop
-2:
-        mov     %o7,sbase                       /* sbase = 1b(1:) */
-        add     sbase, CaseBegin-1b, sbase
-#else /* !SHAREDCODE */
-	sethi	%hi(CaseBegin),sbase		/* load up switch table */
-	or	sbase,%lo(CaseBegin),sbase
-#endif /* SHAREDCODE */
-	mov	4,lshift			/* compute offset within */
-	sub	lshift, shift, lshift		/*  stipple of remaining bits */
-#ifdef LITTLE_ENDIAN
-	inc	CASE_SIZE, shift		/* first shift for LSB */
-#else
-	inc	28-CASE_SIZE, shift		/* first shift for MSB */
-#endif
-	/* do ... while (--count > 0); */
-ForEachLine:
-	ld	[stipple],bits			/* get stipple bits */
-	mov	addr,atemp			/* set up for this line */
-#ifdef TETEXT
-	/* Terminal emulator fonts are expanded and have many 0 rows */
-	tst	bits
-	bz	NextLine			/* skip out early on 0 */
-#endif
-	add	addr, stride, addr		/* step for the loop */
-	BitsR	bits, shift, stemp		/* get first bits */
-	and	stemp, CASE_MASK, stemp		/* compute first jump */
-	BitsL	bits, lshift, bits		/* set remaining bits */
-	jmp	sbase+stemp			/*  ... */
-	tst	bits
-
-ForEachBits:
-	inc	4, atemp
-ForEachBits1:
-	FourBits(stemp, bits)			/* compute jump for */
-	sll	stemp, CASE_SIZE, stemp		/*  these four bits */
-	BitsL	bits, 4, bits			/* step for remaining bits */
-	jmp	sbase+stemp			/* jump */
-	tst	bits
-CaseBegin:
-	bnz,a	ForEachBits1			/* 0 */
-	inc	4, atemp
-NextLine:
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-
-	bnz	ForEachBits			/* 1 */
-	stb	value, [atemp+BO(0)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	bnz	ForEachBits			/* 2 */
-	stb	value, [atemp+BO(1)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	bnz	ForEachBits			/* 3 */
-	sth	value, [atemp+HO(0)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	bnz	ForEachBits			/* 4 */
-	stb	value, [atemp+BO(2)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	stb	value, [atemp+BO(0)]		/* 5 */
-	bnz	ForEachBits
-	stb	value, [atemp+BO(2)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	stb	value, [atemp+BO(1)]		/* 6 */
-	bnz	ForEachBits
-	stb	value, [atemp+BO(2)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	sth	value, [atemp+HO(0)]		/* 7 */
-	bnz	ForEachBits
-	stb	value, [atemp+BO(2)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	bnz	ForEachBits			/* 8 */
-	stb	value, [atemp+BO(3)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	stb	value, [atemp+BO(0)]		/* 9 */
-	bnz	ForEachBits
-	stb	value, [atemp+BO(3)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	stb	value, [atemp+BO(1)]		/* a */
-	bnz	ForEachBits
-	stb	value, [atemp+BO(3)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	sth	value, [atemp+HO(0)]		/* b */
-	bnz	ForEachBits
-	stb	value, [atemp+BO(3)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	bnz	ForEachBits			/* c */
-	sth	value, [atemp+HO(2)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	stb	value, [atemp+BO(0)]		/* d */
-	bnz	ForEachBits
-	sth	value, [atemp+HO(2)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	stb	value, [atemp+BO(1)]		/* e */
-	bnz	ForEachBits
-	sth	value, [atemp+HO(2)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	bnz	ForEachBits			/* f */
-	st	value, [atemp+WO(0)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
diff --git a/cfb/stipsprc32.s b/cfb/stipsprc32.s
deleted file mode 100644
index 89b031f..0000000
--- a/cfb/stipsprc32.s
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * $Xorg: stipsprc32.s,v 1.4 2001/02/09 02:04:39 xorgcvs Exp $
- * $XdotOrg:	$
- *
-Copyright 1990, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- *
- * Author:  Keith Packard, MIT X Consortium
- */
-/* $XFree86: xc/programs/Xserver/cfb/stipsprc32.s,v 1.4 2001/01/17 22:36:38 dawes Exp $ */
-
-/*
- * SPARC assembly code for optimized text rendering.
- *
- * Other stippling could be done in assembly, but the payoff is
- * not nearly as large.  Mostly because large areas are heavily
- * optimized already.
- */
-
-/* not that I expect to ever see an LSB SPARC, but ... */
-#ifdef LITTLE_ENDIAN
-# define BitsR		sll
-# define BitsL		srl
-# define WO(o)		3-o
-# define FourBits(dest,bits)	and	bits, 0xf, dest
-#else
-# define BitsR		srl
-# define BitsL		sll
-# define WO(o)		o
-# define FourBits(dest,bits)	srl	bits, 28, dest
-#endif
-
-/*
- * cfb32StippleStack(addr, stipple, value, stride, Count, Shift)
- *               4       5       6      7     16(sp) 20(sp)
- *
- *  Apply successive 32-bit stipples starting at addr, addr+stride, ...
- *
- *  Used for text rendering, but only when no data could be lost
- *  when the stipple is shifted left by Shift bits
- */
-/* arguments */
-#define addr	%i0
-#define stipple	%i1
-#define value	%i2
-#define stride	%i3
-#define count	%i4
-#define shift	%i5
-
-/* local variables */
-#define atemp	%l0
-#define bits	%l1
-#define lshift	%l2
-#define sbase	%l3
-#define stemp	%l4
-
-#define CASE_SIZE	5	/* case blocks are 2^5 bytes each */
-#define CASE_MASK	0x1e0	/* first case mask */
-
-#define ForEachLine	LY1
-#define NextLine	LY2
-#define CaseBegin	LY3
-#define ForEachBits	LY4
-#define NextBits	LY5
-
-#if defined(SVR4) || defined(__ELF__)
-#ifdef TETEXT
-#define	_cfb32StippleStack	cfb32StippleStackTE
-#else
-#define	_cfb32StippleStack	cfb32StippleStack
-#endif
-#else
-#ifdef TETEXT
-#define	_cfb32StippleStack	_cfb32StippleStackTE
-#endif
-#endif
-
-	.seg	"text"
-	.proc	16
-	.globl	_cfb32StippleStack
-_cfb32StippleStack:
-	save	%sp,-64,%sp
-#ifdef SHAREDCODE
-1:
-        call    2f
-        nop
-2:
-        mov     %o7,sbase                       /* sbase = 1b(1:) */
-        add     sbase, CaseBegin-1b, sbase
-#else /* !SHAREDCODE */
-	sethi	%hi(CaseBegin),sbase		/* load up switch table */
-	or	sbase,%lo(CaseBegin),sbase
-#endif /* !SHAREDCODE */
-	mov	4,lshift			/* compute offset within */
-	sub	lshift, shift, lshift		/*  stipple of remaining bits */
-#ifdef LITTLE_ENDIAN
-	inc	CASE_SIZE, shift		/* first shift for LSB */
-#else
-	inc	28-CASE_SIZE, shift		/* first shift for MSB */
-#endif
-	/* do ... while (--count > 0); */
-ForEachLine:
-	ld	[stipple],bits			/* get stipple bits */
-	mov	addr,atemp			/* set up for this line */
-#ifdef TETEXT
-	/* Terminal emulator fonts are expanded and have many 0 rows */
-	tst	bits
-	bz	NextLine			/* skip out early on 0 */
-#endif
-	add	addr, stride, addr		/* step for the loop */
-	BitsR	bits, shift, stemp		/* get first bits */
-	and	stemp, CASE_MASK, stemp		/* compute first jump */
-	BitsL	bits, lshift, bits		/* set remaining bits */
-	jmp	sbase+stemp			/*  ... */
-	tst	bits
-
-ForEachBits:
-	inc	16, atemp
-ForEachBits1:
-	FourBits(stemp, bits)			/* compute jump for */
-	sll	stemp, CASE_SIZE, stemp		/*  these four bits */
-	BitsL	bits, 4, bits			/* step for remaining bits */
-	jmp	sbase+stemp			/* jump */
-	tst	bits
-CaseBegin:
-	bnz,a	ForEachBits1			/* 0 */
-	inc	16, atemp
-NextLine:
-	deccc	1, count
-NextLine1:
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-
-	bnz	ForEachBits			/* 1 */
-	st	value, [atemp+WO(12)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	bnz	ForEachBits			/* 2 */
-	st	value, [atemp+WO(8)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	st	value, [atemp+WO(8)]		/* 3 */
-	bnz	ForEachBits
-	st	value, [atemp+WO(12)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	bnz	ForEachBits			/* 4 */
-	st	value, [atemp+WO(4)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	st	value, [atemp+WO(4)]		/* 5 */
-	bnz	ForEachBits
-	st	value, [atemp+WO(12)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	st	value, [atemp+WO(4)]		/* 6 */
-	bnz	ForEachBits
-	st	value, [atemp+WO(8)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	st	value, [atemp+WO(4)]		/* 7 */
-	st	value, [atemp+WO(8)]
-	bnz	ForEachBits
-	st	value, [atemp+WO(12)]
-	b	NextLine1
-	deccc	1, count
-	nop
-	nop
-					
-	bnz	ForEachBits			/* 8 */
-	st	value, [atemp+WO(0)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-	nop
-					
-	st	value, [atemp+WO(0)]		/* 9 */
-	bnz	ForEachBits
-	st	value, [atemp+WO(12)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	st	value, [atemp+WO(0)]		/* a */
-	bnz	ForEachBits
-	st	value, [atemp+WO(8)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	st	value, [atemp+WO(0)]		/* b */
-	st	value, [atemp+WO(8)]
-	bnz	ForEachBits
-	st	value, [atemp+WO(12)]
-	b	NextLine1
-	deccc	1, count
-	nop
-	nop
-					
-	st	value, [atemp+WO(0)]		/* c */
-	bnz	ForEachBits
-	st	value, [atemp+WO(4)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
-					
-	st	value, [atemp+WO(0)]		/* d */
-	st	value, [atemp+WO(4)]
-	bnz	ForEachBits
-	st	value, [atemp+WO(12)]
-	b	NextLine1
-	deccc	1, count
-	nop
-	nop
-					
-	st	value, [atemp+WO(0)]		/* e */
-	st	value, [atemp+WO(4)]
-	bnz	ForEachBits
-	st	value, [atemp+WO(8)]
-	b	NextLine1
-	deccc	1, count
-	nop
-	nop
-					
-	st	value, [atemp+WO(0)]		/* f */
-	st	value, [atemp+WO(4)]
-	st	value, [atemp+WO(8)]
-	bnz	ForEachBits
-	st	value, [atemp+WO(12)]
-	deccc	1, count
-	bnz,a	ForEachLine
-	inc	4, stipple
-	ret
-	restore
diff --git a/cfb32/Makefile.am b/cfb32/Makefile.am
deleted file mode 100644
index 681a095..0000000
--- a/cfb32/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-noinst_LTLIBRARIES = libcfb32.la
-
-include $(top_srcdir)/cfb/Makefile.am.inc
-
-libcfb32_la_SOURCES = $(libcfb_common_sources) $(libcfb_gen_sources)
-
-INCLUDES = $(CFB_INCLUDES) $(DIX_CFLAGS) -I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/common
-
-AM_CFLAGS = -DPSZ=32  $(PLATFORMDEFS)
diff --git a/configure.ac b/configure.ac
index c0a1f23..4e83a42 100644
--- a/configure.ac
+++ b/configure.ac
@@ -575,7 +575,6 @@ AC_ARG_ENABLE(xglx,           AS_HELP_STRING([--enable-xglx], [Build Xglx xgl mo
 AC_ARG_ENABLE(xegl,           AS_HELP_STRING([--enable-xegl], [Build Xegl xgl module (default: no)]), [XEGL=$enableval], [XEGL=no])
 dnl legacy fb support
 AC_ARG_ENABLE(mfb,            AS_HELP_STRING([--enable-mfb], [Build legacy mono framebuffer support (default: enabled)]), [MFB=$enableval], [MFB=$XORG])
-AC_ARG_ENABLE(cfb,            AS_HELP_STRING([--enable-cfb], [Build legacy color framebuffer support (default: enabled)]), [CFB=$enableval], [CFB=$XORG])
 AC_ARG_ENABLE(afb,            AS_HELP_STRING([--enable-afb], [Build legacy advanced framebuffer support (default: enabled)]), [AFB=$enableval], [AFB=$XORG])
 dnl kdrive and its subsystems
 AC_ARG_ENABLE(kdrive,         AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
@@ -1581,12 +1580,10 @@ AM_CONDITIONAL([XF86VIDMODE], [test "x$XF86VIDMODE" = xyes])
 
 dnl legacy fb support
 test "x$MFB" = xauto && MFB="$XORG"
-test "x$CFB" = xauto && CFB="$XORG"
 test "x$AFB" = xauto && AFB="$XORG"
 AM_CONDITIONAL(MFB, [test "x$MFB" = xyes])
-AM_CONDITIONAL(CFB, [test "x$CFB" = xyes])
 AM_CONDITIONAL(AFB, [test "x$AFB" = xyes])
-if test "x$MFB" = xyes -o "x$CFB" = xyes -o "x$AFB" = xyes; then
+if test "x$MFB" = xyes -o "x$AFB" = xyes; then
 	if test "x$XORG" != xyes; then
 		AC_MSG_ERROR([legacy fb support requires the Xorg server])
 	fi
@@ -2135,8 +2132,6 @@ fb/Makefile
 record/Makefile
 XTrap/Makefile
 mfb/Makefile
-cfb/Makefile
-cfb32/Makefile
 config/Makefile
 mi/Makefile
 miext/Makefile
@@ -2195,7 +2190,6 @@ hw/xfree86/xaa/Makefile
 hw/xfree86/xf1bpp/Makefile
 hw/xfree86/xf4bpp/Makefile
 hw/xfree86/xf8_16bpp/Makefile
-hw/xfree86/xf8_32bpp/Makefile
 hw/xfree86/utils/Makefile
 hw/xfree86/utils/cvt/Makefile
 hw/xfree86/utils/gtf/Makefile
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
index 03c2c3a..e6cc38a 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -16,20 +16,16 @@ if MFB
 MFB_SUBDIR = xf1bpp xf4bpp
 endif
 
-if CFB
-CFB_SUBDIR = xf8_32bpp
-endif
-
 DOC_SUBDIR = doc
 
 SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser rac \
-	  ramdac shadowfb vbe vgahw xaa $(MFB_SUBDIR) $(CFB_SUBDIR) \
+	  ramdac shadowfb vbe vgahw xaa $(MFB_SUBDIR) \
 	  xf8_16bpp loader dixmods exa modes \
 	  $(DRI_SUBDIR) $(DRI2_SUBDIR) $(XF86UTILS_SUBDIR) $(DOC_SUBDIR)
 
 DIST_SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support \
                parser rac ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp \
-               xf8_16bpp xf8_32bpp loader dixmods dri dri2 exa modes \
+               xf8_16bpp loader dixmods dri dri2 exa modes \
 	       utils doc
 
 bin_PROGRAMS = Xorg
diff --git a/hw/xfree86/dixmods/Makefile.am b/hw/xfree86/dixmods/Makefile.am
index dad2dd3..67967c5 100644
--- a/hw/xfree86/dixmods/Makefile.am
+++ b/hw/xfree86/dixmods/Makefile.am
@@ -18,10 +18,6 @@ if AFB
 AFBMOD = libafb.la
 endif
 
-if CFB
-CFBMOD = libcfb.la libcfb32.la
-endif
-
 if MFB
 MFBMOD = libmfb.la
 endif
@@ -31,7 +27,6 @@ RECORDMOD = librecord.la
 endif
 
 module_LTLIBRARIES = $(AFBMOD) \
-                     $(CFBMOD) \
                      libfb.la \
                      libwfb.la \
                      $(MFBMOD) \
@@ -61,14 +56,6 @@ libafb_la_LDFLAGS = -avoid-version
 libafb_la_LIBADD = $(top_builddir)/afb/libafb.la
 libafb_la_SOURCES = afbmodule.c
 
-libcfb_la_LDFLAGS = -avoid-version
-libcfb_la_LIBADD = $(top_builddir)/cfb/libcfb.la
-libcfb_la_SOURCES = cfbmodule.c
-
-libcfb32_la_LDFLAGS = -avoid-version
-libcfb32_la_LIBADD = $(top_builddir)/cfb32/libcfb32.la
-libcfb32_la_SOURCES = cfb32module.c
-
 libdbe_la_LDFLAGS = -avoid-version
 libdbe_la_LIBADD = $(top_builddir)/dbe/libdbe.la
 libdbe_la_SOURCES = dbemodule.c
diff --git a/hw/xfree86/dixmods/cfb32module.c b/hw/xfree86/dixmods/cfb32module.c
deleted file mode 100644
index 23708e4..0000000
--- a/hw/xfree86/dixmods/cfb32module.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 1998 The XFree86 Project, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the XFree86 Project shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from the
- * XFree86 Project.
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static MODULESETUPPROTO(cfb32Setup);
-
-static XF86ModuleVersionInfo VersRec =
-{
-	"cfb32",
-	MODULEVENDORSTRING,
-	MODINFOSTRING1,
-	MODINFOSTRING2,
-	XORG_VERSION_CURRENT,
-	1, 0, 0,
-	ABI_CLASS_ANSIC,		/* Only need the ansic layer */
-	ABI_ANSIC_VERSION,
-	MOD_CLASS_NONE,
-	{0,0,0,0}       /* signature, to be patched into the file by a tool */
-};
-
-_X_EXPORT XF86ModuleData cfb32ModuleData = { &VersRec, cfb32Setup, NULL };
-
-static pointer
-cfb32Setup(pointer module, pointer opts, int *errmaj, int *errmin)
-{
-    /* This modules requires cfb, so load it */
-    return LoadSubModule(module, "cfb", NULL, NULL, NULL, NULL,
-			 errmaj, errmin);
-}
diff --git a/hw/xfree86/dixmods/cfbmodule.c b/hw/xfree86/dixmods/cfbmodule.c
deleted file mode 100644
index 07074c1..0000000
--- a/hw/xfree86/dixmods/cfbmodule.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 1998 The XFree86 Project, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
- * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the XFree86 Project shall
- * not be used in advertising or otherwise to promote the sale, use or other
- * dealings in this Software without prior written authorization from the
- * XFree86 Project.
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static MODULESETUPPROTO(cfbSetup);
-
-static XF86ModuleVersionInfo VersRec =
-{
-	"cfb",
-	MODULEVENDORSTRING,
-	MODINFOSTRING1,
-	MODINFOSTRING2,
-	XORG_VERSION_CURRENT,
-	1, 0, 0,
-	ABI_CLASS_ANSIC,		/* Only need the ansic layer */
-	ABI_ANSIC_VERSION,
-	MOD_CLASS_NONE,
-	{0,0,0,0}       /* signature, to be patched into the file by a tool */
-};
-
-_X_EXPORT XF86ModuleData cfbModuleData = { &VersRec, cfbSetup, NULL };
-
-static pointer
-cfbSetup(pointer module, pointer opts, int *errmaj, int *errmin)
-{
-    /* This modules requires mfb, so load it */
-    return LoadSubModule(module, "mfb", NULL, NULL, NULL, NULL,
-			 errmaj, errmin);
-}
diff --git a/hw/xfree86/dixmods/extmod/Makefile.am b/hw/xfree86/dixmods/extmod/Makefile.am
index f90e144..77af62d 100644
--- a/hw/xfree86/dixmods/extmod/Makefile.am
+++ b/hw/xfree86/dixmods/extmod/Makefile.am
@@ -23,7 +23,6 @@ AM_CFLAGS = @DIX_CFLAGS@ @XORG_CFLAGS@
 INCLUDES = @XORG_INCS@ \
            -I$(top_srcdir)/afb \
            -I$(top_srcdir)/mfb \
-           -I$(top_srcdir)/cfb \
            -I$(top_srcdir)/dbe \
            -I$(top_srcdir)/hw/xfree86/loader \
            -I$(top_srcdir)/miext/shadow
diff --git a/hw/xfree86/xf8_32bpp/Makefile.am b/hw/xfree86/xf8_32bpp/Makefile.am
deleted file mode 100644
index 6f51a62..0000000
--- a/hw/xfree86/xf8_32bpp/Makefile.am
+++ /dev/null
@@ -1,37 +0,0 @@
-module_LTLIBRARIES = libxf8_32bpp.la
-
-sdk_HEADERS = cfb8_32.h
-
-INCLUDES = $(XORG_INCS) -I$(top_srcdir)/mfb -I$(top_srcdir)/cfb
-
-AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
-
-libxf8_32bpp_la_LDFLAGS = -avoid-version
-
-libxf8_32bpp_la_SOURCES = \
-	cfbcpyarea.c \
-	cfbcpyplane.c \
-	cfbgcmisc.c \
-	cfbimage.c \
-	cfbpntwin.c \
-	cfbscrinit.c \
-	cfbwindow.c \
-	xf86overlay.c \
-	cfb8_32module.c \
-	cfbgc8.c \
-	cfbgc32.c \
-	cfbgcunder.c
-
-libxf8_32bpp_la_LIBADD = $(top_builddir)/cfb32/libcfb32.la
-
-EXTRA_DIST = cfbgc.c
-
-cfbgc8.c: $(srcdir)/cfbgc.c
-	echo '#define PSZ 8' > $@
-	echo '#include "$(srcdir)/cfbgc.c"' >> $@
-
-cfbgc32.c: $(srcdir)/cfbgc.c
-	echo '#define PSZ 32' > $@
-	echo '#include "$(srcdir)/cfbgc.c"' >> $@
-
-DISTCLEANFILES = cfbgc8.c cfbgc32.c
diff --git a/hw/xfree86/xf8_32bpp/cfb8_32.h b/hw/xfree86/xf8_32bpp/cfb8_32.h
deleted file mode 100644
index 6e985da..0000000
--- a/hw/xfree86/xf8_32bpp/cfb8_32.h
+++ /dev/null
@@ -1,191 +0,0 @@
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#ifndef _CFB8_32_H
-#define _CFB8_32_H
-
-#include "gcstruct.h"
-
-typedef struct {
-   GCOps		*Ops8bpp;
-   GCOps 		*Ops32bpp;
-   unsigned long	changes;	
-   Bool			OpsAre8bpp;  
-} cfb8_32GCRec, *cfb8_32GCPtr;
-
-typedef struct {
-   unsigned char	key;
-   void                (*EnableDisableFBAccess)(int scrnIndex, Bool enable);
-   pointer		visualData;
-} cfb8_32ScreenRec, *cfb8_32ScreenPtr;
-
-
-extern DevPrivateKey cfb8_32GetGCPrivateKey(void);
-extern DevPrivateKey cfb8_32GetScreenPrivateKey(void);
-
-RegionPtr
-cfb8_32CopyArea(
-    DrawablePtr pSrcDraw,
-    DrawablePtr pDstDraw,
-    GC *pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty 
-);
-
-void 
-cfbDoBitblt8To32(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long planemask
-);
-
-void 
-cfbDoBitblt32To8(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long planemask
-);
-
-
-void
-cfb8_32ValidateGC8(
-    GCPtr  		pGC,
-    unsigned long 	changes,
-    DrawablePtr		pDrawable
-);
-
-void
-cfb8_32ValidateGC32(
-    GCPtr  		pGC,
-    unsigned long 	changes,
-    DrawablePtr		pDrawable
-);
-
-void
-cfb32ValidateGC_Underlay(
-    GCPtr  		pGC,
-    unsigned long 	changes,
-    DrawablePtr		pDrawable
-);
-
-Bool cfb8_32CreateGC(GCPtr pGC);
-
-void
-cfb8_32GetSpans(
-   DrawablePtr pDraw,
-   int wMax,
-   DDXPointPtr ppt,
-   int *pwidth,
-   int nspans,
-   char *pchardstStart
-);
-
-void
-cfb8_32PutImage (
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int depth, 
-    int x, int y, int w, int h,
-    int leftPad,
-    int format,
-    char *pImage
-);
-
-void
-cfb8_32GetImage (
-    DrawablePtr pDraw,
-    int sx, int sy, int w, int h,
-    unsigned int format,
-    unsigned long planeMask,
-    char *pdstLine
-);
-
-Bool
-cfb8_32ScreenInit (
-    ScreenPtr pScreen,
-    pointer pbits,
-    int xsize, int ysize,
-    int dpix, int dpiy,	
-    int width
-);
-
-void
-cfb8_32FillBoxSolid8 (
-   DrawablePtr pDraw,
-   int nbox,
-   BoxPtr pBox,
-   unsigned long color
-);
-
-RegionPtr 
-cfb8_32CopyPlane(
-    DrawablePtr pSrc,
-    DrawablePtr pDst,
-    GCPtr pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty,
-    unsigned long bitPlane
-);
-
-void 
-cfbDoBitblt8To8GXcopy(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long pm
-);
-
-void 
-cfbDoBitblt24To24GXcopy(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long pm
-);
-
-Bool cfb8_32CreateWindow(WindowPtr pWin);
-Bool cfb8_32DestroyWindow(WindowPtr pWin);
-
-Bool
-cfb8_32PositionWindow(
-    WindowPtr pWin,
-    int x, int y
-);
-
-void
-cfb8_32CopyWindow(
-    WindowPtr pWin,
-    DDXPointRec ptOldOrg,
-    RegionPtr prgnSrc
-);
-
-Bool
-cfb8_32ChangeWindowAttributes(
-    WindowPtr pWin,
-    unsigned long mask
-);
-
-
-#define CFB8_32_GET_GC_PRIVATE(pGC) ((cfb8_32GCPtr) \
-    dixLookupPrivate(&(pGC)->devPrivates, cfb8_32GetGCPrivateKey()))
-
-#define CFB8_32_GET_SCREEN_PRIVATE(pScreen) ((cfb8_32ScreenPtr) \
-    dixLookupPrivate(&(pScreen)->devPrivates, cfb8_32GetScreenPrivateKey()))
-
-Bool xf86Overlay8Plus32Init (ScreenPtr pScreen);
-
-#endif /* _CFB8_32_H */
diff --git a/hw/xfree86/xf8_32bpp/cfb8_32module.c b/hw/xfree86/xf8_32bpp/cfb8_32module.c
deleted file mode 100644
index 5afabe5..0000000
--- a/hw/xfree86/xf8_32bpp/cfb8_32module.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static MODULESETUPPROTO(xf8_32bppSetup);
-
-static XF86ModuleVersionInfo VersRec =
-{
-        "xf8_32bpp",
-        MODULEVENDORSTRING,
-        MODINFOSTRING1,
-        MODINFOSTRING2,
-        XORG_VERSION_CURRENT,
-        1, 0, 0,
-        ABI_CLASS_ANSIC,                /* Only need the ansic layer */
-        ABI_ANSIC_VERSION,
-        MOD_CLASS_NONE,
-        {0,0,0,0}       /* signature, to be patched into the file by a tool */
-};
-
-_X_EXPORT XF86ModuleData xf8_32bppModuleData = {
-    &VersRec,
-    xf8_32bppSetup,
-    NULL
-};
-
-static pointer
-xf8_32bppSetup(pointer module, pointer opts, int *errmaj, int *errmin)
-{
-    if (!LoadSubModule(module, "cfb", NULL, NULL, NULL, NULL,
-			errmaj, errmin))
-        return NULL;
-    if (!LoadSubModule(module, "cfb32", NULL, NULL, NULL, NULL,
-			errmaj, errmin))
-        return NULL;
-    return (pointer)1;  /* non-NULL required to indicate success */
-}
diff --git a/hw/xfree86/xf8_32bpp/cfbcpyarea.c b/hw/xfree86/xf8_32bpp/cfbcpyarea.c
deleted file mode 100644
index d8f0c6d..0000000
--- a/hw/xfree86/xf8_32bpp/cfbcpyarea.c
+++ /dev/null
@@ -1,549 +0,0 @@
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "servermd.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "resource.h"
-#include "colormap.h"
-#include "colormapst.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include "mi.h"
-#include "mistruct.h"
-#include "dix.h"
-#include "mibstore.h"
-
-
-RegionPtr
-cfb8_32CopyArea(
-    DrawablePtr pSrcDraw,
-    DrawablePtr pDstDraw,
-    GC *pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty 
-){
-
-   if(pSrcDraw->bitsPerPixel == 32) {
-	if(pDstDraw->bitsPerPixel == 32) {
-	    if((pGC->alu == GXcopy) && (pGC->planemask == 0xff000000)) {
-		return cfb32BitBlt (pSrcDraw, pDstDraw,
-            		pGC, srcx, srcy, width, height, dstx, dsty, 
-			cfbDoBitblt8To8GXcopy, 0L);
-	    }
-	    return(cfb32CopyArea(pSrcDraw, pDstDraw, pGC, srcx, srcy,
-		    			width, height, dstx, dsty));
-	} else {
-	    /* have to translate 32 -> 8 copies */
-	    return cfb32BitBlt (pSrcDraw, pDstDraw,
-            		pGC, srcx, srcy, width, height, dstx, dsty, 
-			cfbDoBitblt32To8, 0L);
-	}
-   } else {
-	if(pDstDraw->bitsPerPixel == 32) {
-	    /* have to translate 8 -> 32 copies */
-	    return cfb32BitBlt (pSrcDraw, pDstDraw,
-            		pGC, srcx, srcy, width, height, dstx, dsty, 
-			cfbDoBitblt8To32, 0L);
-	} else {
-	    return(cfbCopyArea(pSrcDraw, pDstDraw, pGC, srcx, srcy,
-		    width, height, dstx, dsty));
-	}
-   }
-}
-
-
-
-
-void 
-cfbDoBitblt8To32(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long pm
-){
-    BoxPtr pbox = REGION_RECTS(prgnDst);
-    int nbox = REGION_NUM_RECTS(prgnDst);
-    unsigned char *ptr8, *ptr32;
-    unsigned char *data8, *data32;
-    int pitch8, pitch32;
-    int height, width, i;
-
-    cfbGetByteWidthAndPointer(pSrc, pitch8, ptr8);
-    cfbGetByteWidthAndPointer(pDst, pitch32, ptr32);
-    ptr32 += 3; /* point to the top byte */
-
-    pm >>= 24;
-
-    if((pm == 0xff) && (rop == GXcopy)) {
-	for(;nbox; pbox++, pptSrc++, nbox--) {
-	    data8 = ptr8 + (pptSrc->y * pitch8) + pptSrc->x;
-	    data32 = ptr32 + (pbox->y1 * pitch32) + (pbox->x1 << 2);
-	    width = pbox->x2 - pbox->x1;
-	    height = pbox->y2 - pbox->y1;
-
-	    while(height--) {
-		for(i = 0; i < width; i++)
-		    data32[i << 2] = data8[i];
-		data8 += pitch8;
-		data32 += pitch32;
-	    }
-	}
-    } else {  /* it ain't pretty, but hey */
-	for(;nbox; pbox++, pptSrc++, nbox--) {
-	    data8 = ptr8 + (pptSrc->y * pitch8) + pptSrc->x;
-	    data32 = ptr32 + (pbox->y1 * pitch32) + (pbox->x1 << 2);
-	    width = pbox->x2 - pbox->x1;
-	    height = pbox->y2 - pbox->y1;
-
-	    while(height--) {	
-		switch(rop) {
-		case GXcopy:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] = (data8[i] & pm) | (data32[i<<2] & ~pm);
-		    break;
-		case GXor:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] |= data8[i] & pm;
-		    break;
-		case GXclear:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] &= ~pm;
-		    break;
-		case GXand:
-		    for(i = 0; i < width; i++) 
-			data32[i<<2] &= data8[i] | ~pm;
-		    break;
-		case GXandReverse:
-		    for(i = 0; i < width; i++) 
-			data32[i<<2] = ~data32[i<<2] & (data8[i] | ~pm);
-		    break;
-		case GXandInverted:
-		    for(i = 0; i < width; i++) 
-			data32[i<<2] &= ~data8[i] | ~pm;
-		    break;
-		case GXnoop:
-		    return;
-		case GXxor:
-		    for(i = 0; i < width; i++) 
-			data32[i<<2] ^= data8[i] & pm;
-		    break;
-		case GXnor:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] =  ~(data32[i<<2] | (data8[i] & pm));
-		    break;
-		case GXequiv:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] = ~(data32[i<<2] ^ (data8[i] & pm));
-		    break;
-		case GXinvert:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] ^= pm;
-		    break;
-		case GXorReverse:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] = ~data32[i<<2] | (data8[i] & pm);
-		    break;
-		case GXcopyInverted:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] = (~data8[i] & pm) | (data32[i<<2] & ~pm);
-		    break;
-		case GXorInverted:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] |= ~data8[i] & pm;
-		    break;
-		case GXnand:
-		    for(i = 0; i < width; i++) 
-			data32[i<<2] = ~(data32[i<<2] & (data8[i] | ~pm));
-		    break;
-		case GXset:
-		    for(i = 0; i < width; i++)
-			data32[i<<2] |= pm;
-		    break;
-		}
-	        data8 += pitch8;
-	        data32 += pitch32;
-	    }
-	}
-    }
-}
-
-
-void 
-cfbDoBitblt32To8(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long pm
-){
-    BoxPtr pbox = REGION_RECTS(prgnDst);
-    int nbox = REGION_NUM_RECTS(prgnDst);
-    unsigned char *ptr8, *ptr32;
-    unsigned char *data8, *data32;
-    int pitch8, pitch32;
-    int height, width, i;
-
-    cfbGetByteWidthAndPointer(pDst, pitch8, ptr8);
-    cfbGetByteWidthAndPointer(pSrc, pitch32, ptr32);
-    ptr32 += 3; /* point to the top byte */
-
-    if(((pm & 0xff) == 0xff) && (rop == GXcopy)) {
-	for(;nbox; pbox++, pptSrc++, nbox--) {
-	    data8 = ptr8 + (pbox->y1 * pitch8) + pbox->x1;
-	    data32 = ptr32 + (pptSrc->y * pitch32) + (pptSrc->x << 2);
-
-	    width = pbox->x2 - pbox->x1;
-	    height = pbox->y2 - pbox->y1;
-
-	    while(height--) {
-		for(i = 0; i < width; i++)
-		    data8[i] = data32[i << 2];
-		data8 += pitch8;
-		data32 += pitch32;
-	    }
-	}
-    } else {
-	for(;nbox; pbox++, pptSrc++, nbox--) {
-	    data8 = ptr8 + (pbox->y1 * pitch8) + pbox->x1;
-	    data32 = ptr32 + (pptSrc->y * pitch32) + (pptSrc->x << 2);
-
-	    width = pbox->x2 - pbox->x1;
-	    height = pbox->y2 - pbox->y1;
-
-	    while(height--) {	
-		switch(rop) {
-		case GXcopy:
-		    for(i = 0; i < width; i++)
-			data8[i] = (data32[i<<2] & pm) | (data8[i] & ~pm);
-		    break;
-		case GXor:
-		    for(i = 0; i < width; i++)
-			data8[i] |= data32[i<<2] & pm;
-		    break;
-		case GXclear:
-		    for(i = 0; i < width; i++)
-			data8[i] &= ~pm;
-		    break;
-		case GXand:
-		    for(i = 0; i < width; i++)
-			data8[i] &= data32[i<<2] | ~pm;
-		    break;
-		case GXandReverse:
-		    for(i = 0; i < width; i++)
-			data8[i] = ~data8[i] & (data32[i<<2] | ~pm);
-		    break;
-		case GXandInverted:
-		    for(i = 0; i < width; i++)
-			data8[i] &= ~data32[i<<2] | ~pm;
-		    break;
-		case GXnoop:
-		    return;
-		case GXxor:
-		    for(i = 0; i < width; i++) 
-			data8[i] ^= data32[i<<2] & pm;
-		    break;
-		case GXnor:
-		    for(i = 0; i < width; i++)
-			data8[i] = ~(data8[i] | (data32[i<<2] & pm));
-		    break;
-		case GXequiv:
-		    for(i = 0; i < width; i++)
-			data8[i] = ~(data8[i] ^ (data32[i<<2] & pm));
-		    break;
-		case GXinvert:
-		    for(i = 0; i < width; i++)
-			data8[i] ^= pm;
-		    break;
-		case GXorReverse:
-		    for(i = 0; i < width; i++)
-			data8[i] = ~data8[i] | (data32[i<<2] & pm);
-		    break;
-		case GXcopyInverted:
-		    for(i = 0; i < width; i++)
-			data8[i] = (~data32[i<<2] & pm) | (data8[i] & ~pm);
-		    break;
-		case GXorInverted:
-		    for(i = 0; i < width; i++)
-			data8[i] |= ~data32[i<<2] & pm;
-		    break;
-		case GXnand:
-		    for(i = 0; i < width; i++)
-			data8[i] = ~(data8[i] & (data32[i<<2] | ~pm));
-		    break;
-		case GXset:
-		    for(i = 0; i < width; i++)
-			data8[i] |= pm;
-		    break;
-		}
-	        data8 += pitch8;
-	        data32 += pitch32;
-	    }
-	}
-    }
-}
-
-
-
-static void 
-Do8To8Blt(
-   unsigned char *SrcPtr,
-   int SrcPitch,
-   unsigned char *DstPtr,
-   int DstPitch,
-   int nbox,
-   DDXPointPtr pptSrc,
-   BoxPtr pbox,
-   int xdir, int ydir
-){
-   int i, j, width, height, ydir2;
-   CARD8 *src, *dst;
-
-   SrcPtr += 3;
-   DstPtr += 3;
-   xdir *= 4;
-   ydir2 = ydir * DstPitch;
-   ydir *= SrcPitch;
-
-   for(;nbox; pbox++, pptSrc++, nbox--) {
-	src = SrcPtr + (pptSrc->y * SrcPitch) + (pptSrc->x << 2);
-	dst = DstPtr + (pbox->y1 * DstPitch) + (pbox->x1 << 2);
-	width = pbox->x2 - pbox->x1;
-	height = pbox->y2 - pbox->y1;
-
-	if(ydir < 0) {
-	    src += (height - 1) * SrcPitch;
-	    dst += (height - 1) * DstPitch;
-	}
-
-	if(xdir < 0) {
-	    register int tmp = (width - 1) << 2;
-	    src += tmp;
-	    dst += tmp;
-	}
-
-	while(height--) {
-	   for(i = width, j = 0; i--; j+=xdir)
-		dst[j] = src[j];
-	   src += ydir;
-	   dst += ydir2;
-	}
-    }
-}
-
-static void 
-Do24To24Blt(
-   unsigned char *SrcPtr,
-   int SrcPitch,
-   unsigned char *DstPtr,
-   int DstPitch,
-   int nbox,
-   DDXPointPtr pptSrc,
-   BoxPtr pbox,
-   int xdir, int ydir
-){
-   int i, j, width, height, ydir2;
-   CARD8 *src, *dst;
-
-   xdir *= 4;
-   ydir2 = ydir * DstPitch;
-   ydir *= SrcPitch;
-
-   for(;nbox; pbox++, pptSrc++, nbox--) {
-	src = SrcPtr + (pptSrc->y * SrcPitch) + (pptSrc->x << 2);
-	dst = DstPtr + (pbox->y1 * DstPitch) + (pbox->x1 << 2);
-	width = pbox->x2 - pbox->x1;
-	height = pbox->y2 - pbox->y1;
-
-	if(ydir < 0) {
-	    src += (height - 1) * SrcPitch;
-	    dst += (height - 1) * DstPitch;
-	}
-
-	if(xdir < 0) {
-	    register int tmp = (width - 1) << 2;
-	    src += tmp;
-	    dst += tmp;
-	}
-
-	while(height--) {
-	   for(i = width, j = 0; i--; j+=xdir) {
-		*((CARD16*)(dst + j)) = *((CARD32*)(src + j));
-		dst[j + 2] = src[j + 2];
-	   }
-	   src += ydir;
-	   dst += ydir2;
-	}
-    }
-}
-
-
-static void
-cfb8_32DoBitBlt(
-    DrawablePtr	    pSrc, 
-    DrawablePtr	    pDst,
-    RegionPtr	    prgnDst,
-    DDXPointPtr	    pptSrc,
-    void	    (*DoBlt)(
-        unsigned char *SrcPtr,
-        int SrcPitch,
-        unsigned char *DstPtr,
-        int DstPitch,
-        int nbox,
-        DDXPointPtr pptSrc,
-        BoxPtr pbox,
-        int xdir, int ydir)
-){
-    int nbox, careful, SrcPitch, DstPitch;
-    BoxPtr pbox, pboxTmp, pboxNext, pboxBase, pboxNew1, pboxNew2;
-    DDXPointPtr pptTmp, pptNew1, pptNew2;
-    int xdir, ydir;
-    unsigned char *SrcPtr, *DstPtr;
-
-    /* XXX we have to err on the side of safety when both are windows,
-     * because we don't know if IncludeInferiors is being used.
-     */
-    careful = ((pSrc == pDst) ||
-               ((pSrc->type == DRAWABLE_WINDOW) &&
-                (pDst->type == DRAWABLE_WINDOW)));
-
-    pbox = REGION_RECTS(prgnDst);
-    nbox = REGION_NUM_RECTS(prgnDst);
-
-    pboxNew1 = NULL;
-    pptNew1 = NULL;
-    pboxNew2 = NULL;
-    pptNew2 = NULL;
-    if (careful && (pptSrc->y < pbox->y1)) {
-        /* walk source botttom to top */
-	ydir = -1;
-
-	if (nbox > 1) {
-	    /* keep ordering in each band, reverse order of bands */
-	    pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox);
-	    if(!pboxNew1)
-		return;
-	    pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox);
-	    if(!pptNew1) {
-	        xfree(pboxNew1);
-	        return;
-	    }
-	    pboxBase = pboxNext = pbox+nbox-1;
-	    while (pboxBase >= pbox) {
-	        while ((pboxNext >= pbox) &&
-		       (pboxBase->y1 == pboxNext->y1))
-		    pboxNext--;
-	        pboxTmp = pboxNext+1;
-	        pptTmp = pptSrc + (pboxTmp - pbox);
-	        while (pboxTmp <= pboxBase) {
-		    *pboxNew1++ = *pboxTmp++;
-		    *pptNew1++ = *pptTmp++;
-	        }
-	        pboxBase = pboxNext;
-	    }
-	    pboxNew1 -= nbox;
-	    pbox = pboxNew1;
-	    pptNew1 -= nbox;
-	    pptSrc = pptNew1;
-        }
-    } else {
-	/* walk source top to bottom */
-	ydir = 1;
-    }
-
-    if (careful && (pptSrc->x < pbox->x1)) {
-	/* walk source right to left */
-        xdir = -1;
-
-	if (nbox > 1) {
-	    /* reverse order of rects in each band */
-	    pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec) * nbox);
-	    pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec) * nbox);
-	    if(!pboxNew2 || !pptNew2) {
-		if (pptNew2) xfree(pptNew2);
-		if (pboxNew2) xfree(pboxNew2);
-		if (pboxNew1) {
-		    xfree(pptNew1);
-		    xfree(pboxNew1);
-		}
-	        return;
-	    }
-	    pboxBase = pboxNext = pbox;
-	    while (pboxBase < pbox+nbox) {
-	        while ((pboxNext < pbox+nbox) &&
-		       (pboxNext->y1 == pboxBase->y1))
-		    pboxNext++;
-	        pboxTmp = pboxNext;
-	        pptTmp = pptSrc + (pboxTmp - pbox);
-	        while (pboxTmp != pboxBase) {
-		    *pboxNew2++ = *--pboxTmp;
-		    *pptNew2++ = *--pptTmp;
-	        }
-	        pboxBase = pboxNext;
-	    }
-	    pboxNew2 -= nbox;
-	    pbox = pboxNew2;
-	    pptNew2 -= nbox;
-	    pptSrc = pptNew2;
-	}
-    } else {
-	/* walk source left to right */
-        xdir = 1;
-    }
-
-    cfbGetByteWidthAndPointer(pSrc, SrcPitch, SrcPtr);
-    cfbGetByteWidthAndPointer(pDst, DstPitch, DstPtr);
-
-    (*DoBlt)(SrcPtr,SrcPitch,DstPtr,DstPitch,nbox,pptSrc,pbox,xdir,ydir);
- 
-    if (pboxNew2) {
-	xfree(pptNew2);
-	xfree(pboxNew2);
-    }
-    if (pboxNew1) {
-	xfree(pptNew1);
-	xfree(pboxNew1);
-    }
-
-}
-
-
-/* A couple routines to speed up full planemask copies */
-
-void 
-cfbDoBitblt8To8GXcopy(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long pm
-){
-    cfb8_32DoBitBlt(pSrc, pDst, prgnDst, pptSrc, Do8To8Blt);
-}
-
-
-void 
-cfbDoBitblt24To24GXcopy(
-    DrawablePtr pSrc, 
-    DrawablePtr pDst, 
-    int rop,
-    RegionPtr prgnDst, 
-    DDXPointPtr pptSrc,
-    unsigned long pm
-){
-    cfb8_32DoBitBlt(pSrc, pDst, prgnDst, pptSrc, Do24To24Blt);
-}
diff --git a/hw/xfree86/xf8_32bpp/cfbcpyplane.c b/hw/xfree86/xf8_32bpp/cfbcpyplane.c
deleted file mode 100644
index e10b525..0000000
--- a/hw/xfree86/xf8_32bpp/cfbcpyplane.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include <X11/Xproto.h>
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "regionstr.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include "mi.h"
-
-
-RegionPtr 
-cfb8_32CopyPlane(
-    DrawablePtr pSrc,
-    DrawablePtr	pDst,
-    GCPtr pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty,
-    unsigned long bitPlane
-){
-   /* There's actually much more to it than this */
-
-   if((pDst->bitsPerPixel == 8) && (pSrc->bitsPerPixel != 32)){
-	return(cfbCopyPlane(pSrc, pDst,
-            pGC, srcx, srcy, width, height, dstx, dsty, bitPlane));
-   } 
-
-
-   return(miCopyPlane (pSrc, pDst,
-            pGC, srcx, srcy, width, height, dstx, dsty, bitPlane));
-}
diff --git a/hw/xfree86/xf8_32bpp/cfbgc.c b/hw/xfree86/xf8_32bpp/cfbgc.c
deleted file mode 100644
index a7787ca..0000000
--- a/hw/xfree86/xf8_32bpp/cfbgc.c
+++ /dev/null
@@ -1,646 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-
-
-/*
-
-PSZ		8	16	24	32
-PIXEL_ADDR	True	True	True	True
-NO_ONE_RECT	False	False	False	False
-WriteBitGroup	True	True	True	True
-FOUR_BIT_CODE	True	False	False	False
-LOWMEMFTPT	False	False	False	False
-
-*/
-
-
-/* This gets built twice.  Once for 8bpp and another for 32bpp */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include <X11/Xproto.h>
-#include "cfb.h"
-#include <X11/fonts/fontstruct.h>
-#include "dixfontstr.h"
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "region.h"
-
-#include "mistruct.h"
-#include "mibstore.h"
-#include "migc.h"
-#include "mioverlay.h"
-
-#include "cfb8_32.h"
-#include "cfbmskbits.h"
-#include "cfb8bit.h"
-
-
-#if PSZ == 8
-# define useTEGlyphBlt  cfbTEGlyphBlt8
-#else
-# ifdef WriteBitGroup
-#  define useTEGlyphBlt cfbImageGlyphBlt8
-# else
-#  define useTEGlyphBlt cfbTEGlyphBlt
-# endif
-#endif
-
-#ifdef WriteBitGroup
-# define useImageGlyphBlt       cfbImageGlyphBlt8
-# define usePolyGlyphBlt        cfbPolyGlyphBlt8
-#else
-# define useImageGlyphBlt       miImageGlyphBlt
-# define usePolyGlyphBlt        miPolyGlyphBlt
-#endif
-
-#ifdef FOUR_BIT_CODE
-# define usePushPixels  cfbPushPixels8
-#else
-# define usePushPixels  mfbPushPixels
-#endif
-
-#ifdef PIXEL_ADDR
-# define ZeroPolyArc    cfbZeroPolyArcSS8Copy
-#else
-# define ZeroPolyArc    miZeroPolyArc
-#endif
-
-
-static GCOps cfb8_32TEOps1Rect = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfb8_32PutImage,
-    cfb8_32CopyArea,
-    cfb8_32CopyPlane,
-    cfbPolyPoint,
-#ifdef PIXEL_ADDR
-    cfb8LineSS1Rect,
-    cfb8SegmentSS1Rect,
-#else
-    cfbLineSS,
-    cfbSegmentSS,
-#endif
-    miPolyRectangle,
-    ZeroPolyArc,
-    cfbFillPoly1RectCopy,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useTEGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps cfb8_32NonTEOps1Rect = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfb8_32PutImage,
-    cfb8_32CopyArea,
-    cfb8_32CopyPlane,
-    cfbPolyPoint,
-#ifdef PIXEL_ADDR
-    cfb8LineSS1Rect,
-    cfb8SegmentSS1Rect,
-#else
-    cfbLineSS,
-    cfbSegmentSS,
-#endif
-    miPolyRectangle,
-    ZeroPolyArc,
-    cfbFillPoly1RectCopy,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useImageGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps cfb8_32TEOps = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfb8_32PutImage,
-    cfb8_32CopyArea,
-    cfb8_32CopyPlane,
-    cfbPolyPoint,
-    cfbLineSS,
-    cfbSegmentSS,
-    miPolyRectangle,
-    ZeroPolyArc,
-    miFillPolygon,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useTEGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps cfb8_32NonTEOps = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfb8_32PutImage,
-    cfb8_32CopyArea,
-    cfb8_32CopyPlane,
-    cfbPolyPoint,
-    cfbLineSS,
-    cfbSegmentSS,
-    miPolyRectangle,
-#ifdef PIXEL_ADDR
-    cfbZeroPolyArcSS8Copy,
-#else
-    miZeroPolyArc,
-#endif
-    miFillPolygon,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useImageGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps *
-cfb8_32MatchCommon (GCPtr pGC, cfbPrivGCPtr devPriv)
-{
-    if (pGC->lineWidth != 0)
-	return 0;
-    if (pGC->lineStyle != LineSolid)
-	return 0;
-    if (pGC->fillStyle != FillSolid)
-	return 0;
-    if (devPriv->rop != GXcopy)
-	return 0;
-    if (pGC->font &&
-	FONTMAXBOUNDS(pGC->font,rightSideBearing) -
-        FONTMINBOUNDS(pGC->font,leftSideBearing) <= 32 &&
-	FONTMINBOUNDS(pGC->font,characterWidth) >= 0)
-    {
-	if (TERMINALFONT(pGC->font)
-#ifdef FOUR_BIT_CODE
-	    && FONTMAXBOUNDS(pGC->font,characterWidth) >= PGSZB
-#endif
-	)
-#ifdef NO_ONE_RECT
-            return &cfb8_32TEOps1Rect;
-#else
-	    if (devPriv->oneRect)
-		return &cfb8_32TEOps1Rect;
-	    else
-		return &cfb8_32TEOps;
-#endif
-	else
-#ifdef NO_ONE_RECT
-	    return &cfb8_32NonTEOps1Rect;
-#else
-	    if (devPriv->oneRect)
-		return &cfb8_32NonTEOps1Rect;
-	    else
-		return &cfb8_32NonTEOps;
-#endif
-    }
-    return 0;
-}
-
-
-/* Clipping conventions
-	if the drawable is a window
-	    CT_REGION ==> pCompositeClip really is the composite
-	    CT_other ==> pCompositeClip is the window clip region
-	if the drawable is a pixmap
-	    CT_REGION ==> pCompositeClip is the translated client region
-		clipped to the pixmap boundary
-	    CT_other ==> pCompositeClip is the pixmap bounding box
-*/
-
-void
-#if PSZ == 8
-cfb8_32ValidateGC8(
-#else
-cfb8_32ValidateGC32(
-#endif
-    GCPtr  		pGC,
-    unsigned long 	changes,
-    DrawablePtr		pDrawable
-){
-    int         mask;		/* stateChanges */
-    int         index;		/* used for stepping through bitfields */
-    int		new_rrop;
-    int         new_line, new_text, new_fillspans, new_fillarea;
-    /* flags for changing the proc vector */
-    cfbPrivGCPtr devPriv;
-    int		oneRect;
-
-    pGC->lastWinOrg.x = pDrawable->x;
-    pGC->lastWinOrg.y = pDrawable->y;
-    devPriv = cfbGetGCPrivate(pGC);
-
-    new_rrop = FALSE;
-    new_line = FALSE;
-    new_text = FALSE;
-    new_fillspans = FALSE;
-    new_fillarea = FALSE;
-
-    /*
-     * if the client clip is different or moved OR the subwindowMode has
-     * changed OR the window's clip has changed since the last validation
-     * we need to recompute the composite clip 
-     */
-
-    if ((changes & (GCClipXOrigin|GCClipYOrigin|GCClipMask|GCSubwindowMode)) ||
-	(pDrawable->serialNumber != (pGC->serialNumber & DRAWABLE_SERIAL_BITS)))
-    {
-	miComputeCompositeClip (pGC, pDrawable);
-#ifdef NO_ONE_RECT
-	devPriv->oneRect = FALSE;
-#else
-	oneRect = REGION_NUM_RECTS(pGC->pCompositeClip) == 1;
-	if (oneRect != devPriv->oneRect)
-	    new_line = TRUE;
-	devPriv->oneRect = oneRect;
-#endif
-    }
-
-    mask = changes;
-    while (mask) {
-	index = lowbit (mask);
-	mask &= ~index;
-
-	switch (index) {
-	case GCFunction:
-	case GCForeground:
-	    new_rrop = TRUE;
-	    break;
-	case GCPlaneMask:
-	    new_rrop = TRUE;
-	    new_text = TRUE;
-	    break;
-	case GCBackground:
-	    break;
-	case GCLineStyle:
-	case GCLineWidth:
-	    new_line = TRUE;
-	    break;
-	case GCJoinStyle:
-	case GCCapStyle:
-	    break;
-	case GCFillStyle:
-	    new_text = TRUE;
-	    new_fillspans = TRUE;
-	    new_line = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-	case GCFillRule:
-	    break;
-	case GCTile:
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-	case GCStipple:
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-	case GCTileStipXOrigin:
-	case GCTileStipYOrigin:
-	    break;
-	case GCFont:
-	    new_text = TRUE;
-	    break;
-	case GCSubwindowMode:
-	case GCGraphicsExposures:
-	case GCClipXOrigin:
-	case GCClipYOrigin:
-	case GCClipMask:
-	case GCDashOffset:
-	case GCDashList:
-	case GCArcMode:
-	default:
-	    break;
-	}
-    }
-
-    /*
-     * If the drawable has changed,  ensure suitable
-     * entries are in the proc vector. 
-     */
-    if (pDrawable->serialNumber != (pGC->serialNumber & (DRAWABLE_SERIAL_BITS)))
-	new_fillspans = TRUE;	/* deal with FillSpans later */
-
-    if (new_rrop)
-    {
-	int old_rrop;
-
-	old_rrop = devPriv->rop;
-	devPriv->rop = cfbReduceRasterOp (pGC->alu, pGC->fgPixel,
-					   pGC->planemask,
-					   &devPriv->and, &devPriv->xor);
-	if (old_rrop == devPriv->rop)
-	    new_rrop = FALSE;
-	else
-	{
-#ifdef PIXEL_ADDR
-	    new_line = TRUE;
-#endif
-#ifdef WriteBitGroup
-	    new_text = TRUE;
-#endif
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	}
-    }
-
-    if(!pGC->ops)
-	pGC->ops = & cfb8_32NonTEOps;
-
-    if (new_rrop || new_fillspans || new_text || new_fillarea || new_line)
-    {
-	GCOps	*newops;
-
-	if ((newops = cfb8_32MatchCommon (pGC, devPriv)))
- 	{
-	    if (pGC->ops->devPrivate.val)
-		miDestroyGCOps (pGC->ops);
-	    pGC->ops = newops;
-	    new_rrop = new_line = new_fillspans = new_text = new_fillarea = 0;
-	}
- 	else
- 	{
-	    if (!pGC->ops->devPrivate.val)
-	    {
-		pGC->ops = miCreateGCOps (pGC->ops);
-		pGC->ops->devPrivate.val = 1;
-	    }
-	}
-    }
-
-    /* deal with the changes we've collected */
-    if (new_line)
-    {
-	pGC->ops->FillPolygon = miFillPolygon;
-#ifdef NO_ONE_RECT
-	if (pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillPolygon = cfbFillPoly1RectCopy;
-		break;
-	    default:
-		pGC->ops->FillPolygon = cfbFillPoly1RectGeneral;
-		break;
-	    }
-	}
-#else
-	if (devPriv->oneRect && pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillPolygon = cfbFillPoly1RectCopy;
-		break;
-	    default:
-		pGC->ops->FillPolygon = cfbFillPoly1RectGeneral;
-		break;
-	    }
-	}
-#endif
-	if (pGC->lineWidth == 0)
-	{
-#ifdef PIXEL_ADDR
-	    if ((pGC->lineStyle == LineSolid) && (pGC->fillStyle == FillSolid))
-	    {
-		switch (devPriv->rop)
-		{
-		case GXxor:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8Xor;
-		    break;
-		case GXcopy:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8Copy;
-		    break;
-		default:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8General;
-		    break;
-		}
-	    }
-	    else
-#endif
-		pGC->ops->PolyArc = miZeroPolyArc;
-	}
-	else
-	    pGC->ops->PolyArc = miPolyArc;
-	pGC->ops->PolySegment = miPolySegment;
-	switch (pGC->lineStyle)
-	{
-	case LineSolid:
-	    if(pGC->lineWidth == 0)
-	    {
-		if (pGC->fillStyle == FillSolid)
-		{
-#if defined(PIXEL_ADDR) && !defined(NO_ONE_RECT)
-		    if (devPriv->oneRect &&
-			((pDrawable->x >= pGC->pScreen->width - 32768) &&
-			 (pDrawable->y >= pGC->pScreen->height - 32768)))
-		    {
-			pGC->ops->Polylines = cfb8LineSS1Rect;
-			pGC->ops->PolySegment = cfb8SegmentSS1Rect;
-		    } else
-#endif
-#ifdef NO_ONE_RECT
-		    {
-			pGC->ops->Polylines = cfb8LineSS1Rect;
-			pGC->ops->PolySegment = cfb8SegmentSS1Rect;
-		    }
-#else
-		    {
-		    	pGC->ops->Polylines = cfbLineSS;
-		    	pGC->ops->PolySegment = cfbSegmentSS;
-		    }
-#endif
-		}
- 		else
-		    pGC->ops->Polylines = miZeroLine;
-	    }
-	    else
-		pGC->ops->Polylines = miWideLine;
-	    break;
-	case LineOnOffDash:
-	case LineDoubleDash:
-	    if (pGC->lineWidth == 0 && pGC->fillStyle == FillSolid)
-	    {
-		pGC->ops->Polylines = cfbLineSD;
-		pGC->ops->PolySegment = cfbSegmentSD;
-	    } else
-		pGC->ops->Polylines = miWideDash;
-	    break;
-	}
-    }
-
-    if (new_text && (pGC->font))
-    {
-        if (FONTMAXBOUNDS(pGC->font,rightSideBearing) -
-            FONTMINBOUNDS(pGC->font,leftSideBearing) > 32 ||
-	    FONTMINBOUNDS(pGC->font,characterWidth) < 0)
-        {
-            pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-            pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
-        }
-        else
-        {
-#ifdef WriteBitGroup
-	    if (pGC->fillStyle == FillSolid)
-	    {
-		if (devPriv->rop == GXcopy)
-		    pGC->ops->PolyGlyphBlt = cfbPolyGlyphBlt8;
-		else
-#ifdef FOUR_BIT_CODE
-		    pGC->ops->PolyGlyphBlt = cfbPolyGlyphRop8;
-#else
-		    pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-#endif
-	    }
-	    else
-#endif
-		pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-            /* special case ImageGlyphBlt for terminal emulator fonts */
-#if !defined(WriteBitGroup) || PSZ == 8
-	    if (TERMINALFONT(pGC->font) &&
-		(pGC->planemask & PMSK) == PMSK
-#ifdef FOUR_BIT_CODE
-		&& FONTMAXBOUNDS(pGC->font,characterWidth) >= PGSZB
-#endif
-		)
-	    {
-		pGC->ops->ImageGlyphBlt = useTEGlyphBlt;
-	    }
-            else
-#endif
-	    {
-#ifdef WriteBitGroup
-		if (devPriv->rop == GXcopy &&
-		    pGC->fillStyle == FillSolid &&
-		    (pGC->planemask & PMSK) == PMSK)
-		    pGC->ops->ImageGlyphBlt = cfbImageGlyphBlt8;
-		else
-#endif
-		    pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
-	    }
-        }
-    }    
-
-
-    if (new_fillspans) {
-	switch (pGC->fillStyle) {
-	case FillSolid:
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillSpans = cfbSolidSpansCopy;
-		break;
-	    case GXxor:
-		pGC->ops->FillSpans = cfbSolidSpansXor;
-		break;
-	    default:
-		pGC->ops->FillSpans = cfbSolidSpansGeneral;
-		break;
-	    }
-	    break;
-	case FillTiled:
-	    pGC->ops->FillSpans = cfbUnnaturalTileFS;
-	    break;
-	case FillStippled:
-	case FillOpaqueStippled:
-	    pGC->ops->FillSpans = cfbUnnaturalStippleFS;
-	    break;
-	default:
-	    FatalError("cfbValidateGC: illegal fillStyle\n");
-	}
-    } /* end of new_fillspans */
-
-    if (new_fillarea) {
-#ifndef FOUR_BIT_CODE
-	pGC->ops->PolyFillRect = miPolyFillRect;
-	if (pGC->fillStyle == FillSolid || pGC->fillStyle == FillTiled)
-	{
-	    pGC->ops->PolyFillRect = cfbPolyFillRect;
-	}
-#endif
-#ifdef FOUR_BIT_CODE
-	pGC->ops->PushPixels = mfbPushPixels;
-	if (pGC->fillStyle == FillSolid && devPriv->rop == GXcopy)
-	    pGC->ops->PushPixels = cfbPushPixels8;
-#endif
-	pGC->ops->PolyFillArc = miPolyFillArc;
-	if (pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop)
-	    {
-	    case GXcopy:
-		pGC->ops->PolyFillArc = cfbPolyFillArcSolidCopy;
-		break;
-	    default:
-		pGC->ops->PolyFillArc = cfbPolyFillArcSolidGeneral;
-		break;
-	    }
-	}
-    }
-}
diff --git a/hw/xfree86/xf8_32bpp/cfbgcmisc.c b/hw/xfree86/xf8_32bpp/cfbgcmisc.c
deleted file mode 100644
index f009afc..0000000
--- a/hw/xfree86/xf8_32bpp/cfbgcmisc.c
+++ /dev/null
@@ -1,150 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include <X11/Xproto.h>
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include <X11/fonts/fontstruct.h>
-#include "dixfontstr.h"
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "region.h"
-
-#include "mistruct.h"
-#include "mibstore.h"
-#include "migc.h"
-
-
-static void cfb8_32ValidateGC(GCPtr, unsigned long, DrawablePtr);
-static void cfb8_32DestroyGC(GCPtr pGC);
-static void cfb32DestroyGC_Underlay(GCPtr pGC);
-
-static
-GCFuncs cfb8_32GCFuncs = {
-    cfb8_32ValidateGC,
-    miChangeGC,
-    miCopyGC,
-    cfb8_32DestroyGC,
-    miChangeClip,
-    miDestroyClip,
-    miCopyClip,
-};
-
-
-static
-GCFuncs cfb32GCFuncs_Underlay = {
-    cfb32ValidateGC_Underlay,
-    miChangeGC,
-    miCopyGC,
-    cfb32DestroyGC_Underlay,
-    miChangeClip,
-    miDestroyClip,
-    miCopyClip,
-};
-
-static void
-cfb32DestroyGC_Underlay(GCPtr pGC)
-{
-    if (pGC->freeCompClip)
-        REGION_DESTROY(pGC->pScreen, pGC->pCompositeClip);
-
-    if(pGC->ops)
-	miDestroyGCOps(pGC->ops);
-}
-
-
-static void
-cfb8_32DestroyGC(GCPtr pGC)
-{
-    cfb8_32GCPtr pGCPriv = CFB8_32_GET_GC_PRIVATE(pGC);
-
-    if (pGC->freeCompClip)
-        REGION_DESTROY(pGC->pScreen, pGC->pCompositeClip);
-    if(pGCPriv->Ops8bpp)
-	miDestroyGCOps(pGCPriv->Ops8bpp);
-    if(pGCPriv->Ops32bpp)
-	miDestroyGCOps(pGCPriv->Ops32bpp);
-}
-
-Bool
-cfb8_32CreateGC(GCPtr pGC)
-{
-    cfb8_32GCPtr pGCPriv;
-    cfbPrivGC *pPriv;
-
-    if (PixmapWidthPaddingInfo[pGC->depth].padPixelsLog2 == LOG2_BITMAP_PAD)
-        return (mfbCreateGC(pGC));
-
-    pGC->clientClip = NULL;
-    pGC->clientClipType = CT_NONE;
-    pGC->miTranslate = 1;
-    pGC->fExpose = TRUE;
-    pGC->freeCompClip = FALSE;
-    pGC->pRotatedPixmap = (PixmapPtr) NULL;
-
-    pPriv = cfbGetGCPrivate(pGC);
-    pPriv->rop = pGC->alu;
-    pPriv->oneRect = FALSE;
-
-    pGC->ops = NULL;
-
-    if (pGC->depth == 8) {
-	pGC->funcs = &cfb8_32GCFuncs;
-
-	pGCPriv = CFB8_32_GET_GC_PRIVATE(pGC);
-	pGCPriv->Ops8bpp = NULL;
-	pGCPriv->Ops32bpp = NULL;
-	pGCPriv->OpsAre8bpp = FALSE;
-	pGCPriv->changes = 0;
-    } else
-	pGC->funcs = &cfb32GCFuncs_Underlay;
-	
-    return TRUE;
-}
-
-
-static void
-cfb8_32ValidateGC(
-    GCPtr pGC,
-    unsigned long changes,
-    DrawablePtr pDraw
-){
-    cfb8_32GCPtr pGCPriv = CFB8_32_GET_GC_PRIVATE(pGC);
-
-    if(pDraw->bitsPerPixel == 32) {
-	if(pGCPriv->OpsAre8bpp) {
-	    int origChanges = changes;
-	    pGC->ops = pGCPriv->Ops32bpp;
-	    changes |= pGCPriv->changes;
-	    pGCPriv->changes = origChanges;
-	    pGCPriv->OpsAre8bpp = FALSE;
-	} else 
-	    pGCPriv->changes |= changes;
-
-	cfb8_32ValidateGC32(pGC, changes, pDraw);
-	pGCPriv->Ops32bpp = pGC->ops;
-    } else {  /* bitsPerPixel == 8 */
-	if(!pGCPriv->OpsAre8bpp) {
-	    int origChanges = changes;
-	    pGC->ops = pGCPriv->Ops8bpp;
-	    changes |= pGCPriv->changes;
-	    pGCPriv->changes = origChanges;
-	    pGCPriv->OpsAre8bpp = TRUE;
-	} else 
-	    pGCPriv->changes |= changes;
-
-	cfb8_32ValidateGC8(pGC, changes, pDraw);
-	pGCPriv->Ops8bpp = pGC->ops;
-    }
-}
-
diff --git a/hw/xfree86/xf8_32bpp/cfbgcunder.c b/hw/xfree86/xf8_32bpp/cfbgcunder.c
deleted file mode 100644
index d903213..0000000
--- a/hw/xfree86/xf8_32bpp/cfbgcunder.c
+++ /dev/null
@@ -1,620 +0,0 @@
-/***********************************************************
-
-Copyright 1987, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-
-Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-
-******************************************************************/
-#define PSZ 32
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include <X11/Xproto.h>
-#include "cfb.h"
-#include <X11/fonts/fontstruct.h>
-#include "dixfontstr.h"
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "region.h"
-
-#include "mistruct.h"
-#include "mibstore.h"
-#include "migc.h"
-#include "mioverlay.h"
-
-#include "cfbmskbits.h"
-#include "cfb8bit.h"
-#include "cfb8_32.h"
-
-#ifdef WriteBitGroup
-#  define useTEGlyphBlt	cfbImageGlyphBlt8
-#else
-#  define useTEGlyphBlt	cfbTEGlyphBlt
-#endif
-
-#ifdef WriteBitGroup
-# define useImageGlyphBlt	cfbImageGlyphBlt8
-# define usePolyGlyphBlt	cfbPolyGlyphBlt8
-#else
-# define useImageGlyphBlt	miImageGlyphBlt
-# define usePolyGlyphBlt	miPolyGlyphBlt
-#endif
-
-#ifdef FOUR_BIT_CODE
-# define usePushPixels	cfbPushPixels8
-#else
-# define usePushPixels	mfbPushPixels
-#endif
-
-#ifdef PIXEL_ADDR
-# define ZeroPolyArc	cfbZeroPolyArcSS8Copy
-#else
-# define ZeroPolyArc	miZeroPolyArc
-#endif
-
-
-static GCOps cfbTEOps1Rect = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-#ifdef PIXEL_ADDR
-    cfb8LineSS1Rect,
-    cfb8SegmentSS1Rect,
-#else
-    cfbLineSS,
-    cfbSegmentSS,
-#endif
-    miPolyRectangle,
-    ZeroPolyArc,
-    cfbFillPoly1RectCopy,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useTEGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps cfbNonTEOps1Rect = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-#ifdef PIXEL_ADDR
-    cfb8LineSS1Rect,
-    cfb8SegmentSS1Rect,
-#else
-    cfbLineSS,
-    cfbSegmentSS,
-#endif
-    miPolyRectangle,
-    ZeroPolyArc,
-    cfbFillPoly1RectCopy,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useImageGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps cfbTEOps = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-    cfbLineSS,
-    cfbSegmentSS,
-    miPolyRectangle,
-    ZeroPolyArc,
-    miFillPolygon,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useTEGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps cfbNonTEOps = {
-    cfbSolidSpansCopy,
-    cfbSetSpans,
-    cfbPutImage,
-    cfbCopyArea,
-    cfbCopyPlane,
-    cfbPolyPoint,
-    cfbLineSS,
-    cfbSegmentSS,
-    miPolyRectangle,
-#ifdef PIXEL_ADDR
-    cfbZeroPolyArcSS8Copy,
-#else
-    miZeroPolyArc,
-#endif
-    miFillPolygon,
-    cfbPolyFillRect,
-    cfbPolyFillArcSolidCopy,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    useImageGlyphBlt,
-    usePolyGlyphBlt,
-    usePushPixels
-};
-
-static GCOps *
-cfb32MatchCommon_Underlay(
-    GCPtr	    pGC,
-    cfbPrivGCPtr    devPriv)
-{
-    if (pGC->lineWidth != 0)
-	return 0;
-    if (pGC->lineStyle != LineSolid)
-	return 0;
-    if (pGC->fillStyle != FillSolid)
-	return 0;
-    if (devPriv->rop != GXcopy)
-	return 0;
-    if (pGC->font &&
-	FONTMAXBOUNDS(pGC->font,rightSideBearing) -
-        FONTMINBOUNDS(pGC->font,leftSideBearing) <= 32 &&
-	FONTMINBOUNDS(pGC->font,characterWidth) >= 0)
-    {
-	if (TERMINALFONT(pGC->font)
-#ifdef FOUR_BIT_CODE
-	    && FONTMAXBOUNDS(pGC->font,characterWidth) >= PGSZB
-#endif
-	)
-#ifdef NO_ONE_RECT
-            return &cfbTEOps1Rect;
-#else
-	    if (devPriv->oneRect)
-		return &cfbTEOps1Rect;
-	    else
-		return &cfbTEOps;
-#endif
-	else
-#ifdef NO_ONE_RECT
-	    return &cfbNonTEOps1Rect;
-#else
-	    if (devPriv->oneRect)
-		return &cfbNonTEOps1Rect;
-	    else
-		return &cfbNonTEOps;
-#endif
-    }
-    return 0;
-}
-
-
-void
-cfb32ValidateGC_Underlay(
-    GCPtr  pGC,
-    unsigned long   changes,
-    DrawablePtr	    pDrawable
-){
-    int         mask;		/* stateChanges */
-    int         index;		/* used for stepping through bitfields */
-    int		new_rrop;
-    int         new_line, new_text, new_fillspans, new_fillarea;
-    /* flags for changing the proc vector */
-    cfbPrivGCPtr devPriv;
-    int		oneRect;
-
-    pGC->lastWinOrg.x = pDrawable->x;
-    pGC->lastWinOrg.y = pDrawable->y;
-    devPriv = cfbGetGCPrivate(pGC);
-
-    new_rrop = FALSE;
-    new_line = FALSE;
-    new_text = FALSE;
-    new_fillspans = FALSE;
-    new_fillarea = FALSE;
-
-    /*
-     * if the client clip is different or moved OR the subwindowMode has
-     * changed OR the window's clip has changed since the last validation
-     * we need to recompute the composite clip 
-     */
-
-    if ((changes & (GCClipXOrigin|GCClipYOrigin|GCClipMask|GCSubwindowMode)) ||
-	(pDrawable->serialNumber != (pGC->serialNumber & DRAWABLE_SERIAL_BITS))
-	)
-    {
-	if(pDrawable->type == DRAWABLE_WINDOW)
-	    miOverlayComputeCompositeClip (pGC, (WindowPtr)pDrawable);
-	else
-	    miComputeCompositeClip (pGC, pDrawable);
-#ifdef NO_ONE_RECT
-	devPriv->oneRect = FALSE;
-#else
-	oneRect = REGION_NUM_RECTS(pGC->pCompositeClip) == 1;
-	if (oneRect != devPriv->oneRect)
-	    new_line = TRUE;
-	devPriv->oneRect = oneRect;
-#endif
-    }
-
-    mask = changes;
-    while (mask) {
-	index = lowbit (mask);
-	mask &= ~index;
-
-	switch (index) {
-	case GCFunction:
-	case GCForeground:
-	    new_rrop = TRUE;
-	    break;
-	case GCPlaneMask:
-	    new_rrop = TRUE;
-	    new_text = TRUE;
-	    break;
-	case GCBackground:
-	    break;
-	case GCLineStyle:
-	case GCLineWidth:
-	    new_line = TRUE;
-	    break;
-	case GCJoinStyle:
-	case GCCapStyle:
-	    break;
-	case GCFillStyle:
-	    new_text = TRUE;
-	    new_fillspans = TRUE;
-	    new_line = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-	case GCFillRule:
-	    break;
-	case GCTile:
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-	case GCStipple:
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	    break;
-	case GCTileStipXOrigin:
-	case GCTileStipYOrigin:
-	    break;
-	case GCFont:
-	    new_text = TRUE;
-	    break;
-	case GCSubwindowMode:
-	case GCGraphicsExposures:
-	case GCClipXOrigin:
-	case GCClipYOrigin:
-	case GCClipMask:
-	case GCDashOffset:
-	case GCDashList:
-	case GCArcMode:
-	default:
-	    break;
-	}
-    }
-
-    /*
-     * If the drawable has changed,  ensure suitable
-     * entries are in the proc vector. 
-     */
-    if (pDrawable->serialNumber != (pGC->serialNumber & (DRAWABLE_SERIAL_BITS)))
-	new_fillspans = TRUE;	/* deal with FillSpans later */
-
-    if (new_rrop)
-    {
-	int old_rrop;
-
-	old_rrop = devPriv->rop;
-	devPriv->rop = cfbReduceRasterOp (pGC->alu, pGC->fgPixel,
-					   pGC->planemask,
-					   &devPriv->and, &devPriv->xor);
-	if (old_rrop == devPriv->rop)
-	    new_rrop = FALSE;
-	else
-	{
-#ifdef PIXEL_ADDR
-	    new_line = TRUE;
-#endif
-#ifdef WriteBitGroup
-	    new_text = TRUE;
-#endif
-	    new_fillspans = TRUE;
-	    new_fillarea = TRUE;
-	}
-    }
-
-    if(!pGC->ops)
-	pGC->ops = & cfbNonTEOps;
-
-
-    if (new_rrop || new_fillspans || new_text || new_fillarea || new_line)
-    {
-	GCOps	*newops;
-
-	if ((newops = cfb32MatchCommon_Underlay (pGC, devPriv)))
- 	{
-	    if (pGC->ops->devPrivate.val)
-		miDestroyGCOps (pGC->ops);
-	    pGC->ops = newops;
-	    new_rrop = new_line = new_fillspans = new_text = new_fillarea = 0;
-	}
- 	else
- 	{
-	    if (!pGC->ops->devPrivate.val)
-	    {
-		pGC->ops = miCreateGCOps (pGC->ops);
-		pGC->ops->devPrivate.val = 1;
-	    }
-	}
-    }
-
-    /* deal with the changes we've collected */
-    if (new_line)
-    {
-	pGC->ops->FillPolygon = miFillPolygon;
-#ifdef NO_ONE_RECT
-	if (pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillPolygon = cfbFillPoly1RectCopy;
-		break;
-	    default:
-		pGC->ops->FillPolygon = cfbFillPoly1RectGeneral;
-		break;
-	    }
-	}
-#else
-	if (devPriv->oneRect && pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillPolygon = cfbFillPoly1RectCopy;
-		break;
-	    default:
-		pGC->ops->FillPolygon = cfbFillPoly1RectGeneral;
-		break;
-	    }
-	}
-#endif
-	if (pGC->lineWidth == 0)
-	{
-#ifdef PIXEL_ADDR
-	    if ((pGC->lineStyle == LineSolid) && (pGC->fillStyle == FillSolid))
-	    {
-		switch (devPriv->rop)
-		{
-		case GXxor:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8Xor;
-		    break;
-		case GXcopy:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8Copy;
-		    break;
-		default:
-		    pGC->ops->PolyArc = cfbZeroPolyArcSS8General;
-		    break;
-		}
-	    }
-	    else
-#endif
-		pGC->ops->PolyArc = miZeroPolyArc;
-	}
-	else
-	    pGC->ops->PolyArc = miPolyArc;
-	pGC->ops->PolySegment = miPolySegment;
-	switch (pGC->lineStyle)
-	{
-	case LineSolid:
-	    if(pGC->lineWidth == 0)
-	    {
-		if (pGC->fillStyle == FillSolid)
-		{
-#if defined(PIXEL_ADDR) && !defined(NO_ONE_RECT)
-		    if (devPriv->oneRect &&
-			((pDrawable->x >= pGC->pScreen->width - 32768) &&
-			 (pDrawable->y >= pGC->pScreen->height - 32768)))
-		    {
-			pGC->ops->Polylines = cfb8LineSS1Rect;
-			pGC->ops->PolySegment = cfb8SegmentSS1Rect;
-		    } else
-#endif
-#ifdef NO_ONE_RECT
-		    {
-			pGC->ops->Polylines = cfb8LineSS1Rect;
-			pGC->ops->PolySegment = cfb8SegmentSS1Rect;
-		    }
-#else
-		    {
-		    	pGC->ops->Polylines = cfbLineSS;
-		    	pGC->ops->PolySegment = cfbSegmentSS;
-		    }
-#endif
-		}
- 		else
-		    pGC->ops->Polylines = miZeroLine;
-	    }
-	    else
-		pGC->ops->Polylines = miWideLine;
-	    break;
-	case LineOnOffDash:
-	case LineDoubleDash:
-	    if (pGC->lineWidth == 0 && pGC->fillStyle == FillSolid)
-	    {
-		pGC->ops->Polylines = cfbLineSD;
-		pGC->ops->PolySegment = cfbSegmentSD;
-	    } else
-		pGC->ops->Polylines = miWideDash;
-	    break;
-	}
-    }
-
-    if (new_text && (pGC->font))
-    {
-        if (FONTMAXBOUNDS(pGC->font,rightSideBearing) -
-            FONTMINBOUNDS(pGC->font,leftSideBearing) > 32 ||
-	    FONTMINBOUNDS(pGC->font,characterWidth) < 0)
-        {
-            pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-            pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
-        }
-        else
-        {
-#ifdef WriteBitGroup
-	    if (pGC->fillStyle == FillSolid)
-	    {
-		if (devPriv->rop == GXcopy)
-		    pGC->ops->PolyGlyphBlt = cfbPolyGlyphBlt8;
-		else
-#ifdef FOUR_BIT_CODE
-		    pGC->ops->PolyGlyphBlt = cfbPolyGlyphRop8;
-#else
-		    pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-#endif
-	    }
-	    else
-#endif
-		pGC->ops->PolyGlyphBlt = miPolyGlyphBlt;
-            /* special case ImageGlyphBlt for terminal emulator fonts */
-#if !defined(WriteBitGroup) || PSZ == 8
-	    if (TERMINALFONT(pGC->font) &&
-		(pGC->planemask & PMSK) == PMSK
-#ifdef FOUR_BIT_CODE
-		&& FONTMAXBOUNDS(pGC->font,characterWidth) >= PGSZB
-#endif
-		)
-	    {
-		pGC->ops->ImageGlyphBlt = useTEGlyphBlt;
-	    }
-            else
-#endif
-	    {
-#ifdef WriteBitGroup
-		if (devPriv->rop == GXcopy &&
-		    pGC->fillStyle == FillSolid &&
-		    (pGC->planemask & PMSK) == PMSK)
-		    pGC->ops->ImageGlyphBlt = cfbImageGlyphBlt8;
-		else
-#endif
-		    pGC->ops->ImageGlyphBlt = miImageGlyphBlt;
-	    }
-        }
-    }    
-
-
-    if (new_fillspans) {
-	switch (pGC->fillStyle) {
-	case FillSolid:
-	    switch (devPriv->rop) {
-	    case GXcopy:
-		pGC->ops->FillSpans = cfbSolidSpansCopy;
-		break;
-	    case GXxor:
-		pGC->ops->FillSpans = cfbSolidSpansXor;
-		break;
-	    default:
-		pGC->ops->FillSpans = cfbSolidSpansGeneral;
-		break;
-	    }
-	    break;
-	case FillTiled:
-	    pGC->ops->FillSpans = cfbUnnaturalTileFS;
-	    break;
-	case FillStippled:
-	case FillOpaqueStippled:
-	    pGC->ops->FillSpans = cfbUnnaturalStippleFS;
-	    break;
-	default:
-	    FatalError("cfbValidateGC: illegal fillStyle\n");
-	}
-    } /* end of new_fillspans */
-
-    if (new_fillarea) {
-#ifndef FOUR_BIT_CODE
-	pGC->ops->PolyFillRect = miPolyFillRect;
-	if (pGC->fillStyle == FillSolid || pGC->fillStyle == FillTiled)
-	{
-	    pGC->ops->PolyFillRect = cfbPolyFillRect;
-	}
-#endif
-#ifdef FOUR_BIT_CODE
-	pGC->ops->PushPixels = mfbPushPixels;
-	if (pGC->fillStyle == FillSolid && devPriv->rop == GXcopy)
-	    pGC->ops->PushPixels = cfbPushPixels8;
-#endif
-	pGC->ops->PolyFillArc = miPolyFillArc;
-	if (pGC->fillStyle == FillSolid)
-	{
-	    switch (devPriv->rop)
-	    {
-	    case GXcopy:
-		pGC->ops->PolyFillArc = cfbPolyFillArcSolidCopy;
-		break;
-	    default:
-		pGC->ops->PolyFillArc = cfbPolyFillArcSolidGeneral;
-		break;
-	    }
-	}
-    }
-}
diff --git a/hw/xfree86/xf8_32bpp/cfbimage.c b/hw/xfree86/xf8_32bpp/cfbimage.c
deleted file mode 100644
index 01a5a5e..0000000
--- a/hw/xfree86/xf8_32bpp/cfbimage.c
+++ /dev/null
@@ -1,174 +0,0 @@
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <X11/X.h>
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "gcstruct.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include "servermd.h"
-#include "mi.h"
-
-
-void
-cfb8_32GetImage (
-    DrawablePtr pDraw,
-    int sx, int sy, int w, int h,
-    unsigned int format,
-    unsigned long planemask,
-    char *pdstLine
-){
-    if(!w || !h) return;
-
-    if (!cfbDrawableEnabled (pDraw))
-	    return;
-
-    if(pDraw->depth == 24){
-	cfb32GetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
-	return;
-    }
-    
-    if((pDraw->bitsPerPixel == 8) || (pDraw->bitsPerPixel == 1)){
-	cfbGetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
-	return;
-    }
-
-    /* source is depth 8, 32 bpp */
-    if(format != ZPixmap) {
-	miGetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
-	return;
-    } else {
-	BoxRec box;
-	DDXPointRec ptSrc;
-	RegionRec rgnDst;
-	ScreenPtr pScreen;
-	PixmapPtr pPixmap;
-
-	pScreen = pDraw->pScreen;
-        pPixmap = GetScratchPixmapHeader(pScreen, w, h, 8, 8,
-                        PixmapBytePad(w,8), (pointer)pdstLine);
-        if (!pPixmap)
-            return;
-        if ((planemask & 0xff) != 0xff)
-            memset((char *)pdstLine, 0, pPixmap->devKind * h);
-        ptSrc.x = sx + pDraw->x;
-        ptSrc.y = sy + pDraw->y;
-        box.x1 = 0;
-        box.y1 = 0;
-        box.x2 = w;
-        box.y2 = h;
-        REGION_INIT(pScreen, &rgnDst, &box, 1);
-        cfbDoBitblt32To8(pDraw, (DrawablePtr)pPixmap, GXcopy, &rgnDst,
-                    &ptSrc, planemask);
-        REGION_UNINIT(pScreen, &rgnDst);
-        FreeScratchPixmapHeader(pPixmap);
-    }
-}
-
-void
-cfb8_32PutImage (
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int depth, 
-    int x, int y, int w, int h,
-    int leftPad,
-    int format,
-    char *pImage
-){
-    if(!w || !h) return;
-
-    if((pDraw->bitsPerPixel == 8) || (format != XYPixmap)){
-	cfbPutImage(pDraw, pGC, depth, x, y, w, h, leftPad, format, pImage);
-	return;
-    } else {  /* moving an 8bpp XYPixmap to a 32bpp screen */
-        unsigned long   oldFg, oldBg;
-        XID             gcv[3];
-        unsigned long   oldPlanemask;
-        unsigned long   i;
-        long            bytesPer;
-
-        oldPlanemask = pGC->planemask;
-        oldFg = pGC->fgPixel;
-        oldBg = pGC->bgPixel;
-        gcv[0] = ~0L;
-        gcv[1] = 0;
-        DoChangeGC(pGC, GCForeground | GCBackground, gcv, 0);
-        bytesPer = (long)h * BitmapBytePad(w + leftPad);
-
-        for (i = 0x80000000; i & 0xff000000; i >>= 1, pImage += bytesPer)
-        {
-            if (i & oldPlanemask)
-            {
-                gcv[0] = i;
-                DoChangeGC(pGC, GCPlaneMask, gcv, 0);
-                ValidateGC(pDraw, pGC);
-                (*pGC->ops->PutImage)(pDraw, pGC, 1, x, y, w, h, leftPad,
-                                 XYBitmap, pImage);
-            }
-        }
-        gcv[0] = oldPlanemask;
-        gcv[1] = oldFg;
-        gcv[2] = oldBg;
-        DoChangeGC(pGC, GCPlaneMask | GCForeground | GCBackground, gcv, 0);
-        ValidateGC(pDraw, pGC);
-    }
-}
-
-
-
-
-void
-cfb8_32GetSpans(
-   DrawablePtr pDraw,
-   int wMax,
-   DDXPointPtr ppt,
-   int *pwidth,
-   int nspans,
-   char *pDst
-){
-   int pitch, i;
-   CARD8 *ptr, *ptrBase;
-
-   if (!cfbDrawableEnabled (pDraw))
-        return;
-
-   if(pDraw->bitsPerPixel == 1) {
-	mfbGetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
-	return;
-   }
-
-   if(pDraw->depth == 24) {
-	cfb32GetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
-	return;
-   } else if(pDraw->bitsPerPixel == 8) {
-	cfbGetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
-	return;
-   }
-
-   /* gotta get spans from a depth 8 window */
-   cfbGetByteWidthAndPointer(pDraw, pitch, ptrBase);
-   ptrBase += 3;  /* point to top byte */
-
-   while(nspans--) {
-	ptr = ptrBase + (ppt->y * pitch) + (ppt->x << 2);
-	
-	for(i = *pwidth; i--; ptr += 4) 
-	   *(pDst++) = *ptr;
-	
-	pDst = (char*)((long)(pDst + 3) & ~3L);
-
-	ppt++; pwidth++;
-   }
-}
-
-
diff --git a/hw/xfree86/xf8_32bpp/cfbpntwin.c b/hw/xfree86/xf8_32bpp/cfbpntwin.c
deleted file mode 100644
index fbf597d..0000000
--- a/hw/xfree86/xf8_32bpp/cfbpntwin.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/X.h>
-
-#include "windowstr.h"
-#include "regionstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include "mi.h"
-
-#ifdef PANORAMIX
-#include "panoramiX.h"
-#include "panoramiXsrv.h"
-#endif
-
-void
-cfb8_32FillBoxSolid8(
-   DrawablePtr pDraw,
-   int nbox,
-   BoxPtr pbox,
-   unsigned long color
-){
-    CARD8 *ptr, *data;
-    int pitch, height, width, i;
-    CARD8 c = (CARD8)color;
-
-    cfbGetByteWidthAndPointer(pDraw, pitch, ptr);
-    ptr += 3; /* point to the top byte */
-
-    while(nbox--) {
-	data = ptr + (pbox->y1 * pitch) + (pbox->x1 << 2);
-	width = (pbox->x2 - pbox->x1) << 2;
-	height = pbox->y2 - pbox->y1;
-
-	while(height--) {
-            for(i = 0; i < width; i+=4)
-		data[i] = c;
-            data += pitch;
-	}
-	pbox++;
-    }
-}
diff --git a/hw/xfree86/xf8_32bpp/cfbscrinit.c b/hw/xfree86/xf8_32bpp/cfbscrinit.c
deleted file mode 100644
index c3432b8..0000000
--- a/hw/xfree86/xf8_32bpp/cfbscrinit.c
+++ /dev/null
@@ -1,311 +0,0 @@
-
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xmd.h>
-#include "misc.h"
-#include "servermd.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "resource.h"
-#include "colormap.h"
-#include "colormapst.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include "mi.h"
-#include "micmap.h"
-#include "mistruct.h"
-#include "dix.h"
-#include "mibstore.h"
-#include "mioverlay.h"
-#include "xf86.h"
-#include "xf86str.h"
-#include "globals.h"
-
-/* CAUTION:  We require that cfb8 and cfb32 were NOT 
-	compiled with CFB_NEED_SCREEN_PRIVATE */
-
-static DevPrivateKey cfb8_32GCPrivateKey = &cfb8_32GCPrivateKey;
-DevPrivateKey cfb8_32GetGCPrivateKey(void)
-{
-    return cfb8_32GCPrivateKey;
-}
-
-static DevPrivateKey cfb8_32ScreenPrivateKey = &cfb8_32ScreenPrivateKey;
-DevPrivateKey cfb8_32GetScreenPrivateKey(void)
-{
-    return cfb8_32ScreenPrivateKey;
-}
-
-static Bool
-cfb8_32AllocatePrivates(ScreenPtr pScreen)
-{
-   cfb8_32ScreenPtr pScreenPriv;
-
-   if (!(pScreenPriv = xalloc(sizeof(cfb8_32ScreenRec))))
-        return FALSE;
-
-   dixSetPrivate(&pScreen->devPrivates, cfb8_32ScreenPrivateKey, pScreenPriv);
-   
-   
-   /* All cfb will have the same GC and Window private indicies */
-   if(!mfbAllocatePrivates(pScreen, &cfbGCPrivateKey))
-	return FALSE;
-
-   if(!dixRequestPrivate(cfbGCPrivateKey, sizeof(cfbPrivGC)))
-        return FALSE;
-
-   if(!dixRequestPrivate(cfb8_32GCPrivateKey, sizeof(cfb8_32GCRec)))
-        return FALSE;
-
-   return TRUE;
-}
-
-static void DestroyColormapNoop(
-        ColormapPtr pColormap)
-{
-    /* NOOP */
-}
-
-static void StoreColorsNoop(
-        ColormapPtr pColormap,
-        int ndef,
-        xColorItem * pdef)
-{
-    /* NOOP */
-}
-
-static Bool
-cfb8_32SetupScreen(
-    ScreenPtr pScreen,
-    pointer pbits,		/* pointer to screen bitmap */
-    int xsize, int ysize,	/* in pixels */
-    int dpix, int dpiy,		/* dots per inch */
-    int width			/* pixel width of frame buffer */
-){
-    if (!cfb8_32AllocatePrivates(pScreen))
-	return FALSE;
-    pScreen->defColormap = FakeClientID(0);
-    /* let CreateDefColormap do whatever it wants for pixels */ 
-    pScreen->blackPixel = pScreen->whitePixel = (Pixel) 0;
-    pScreen->QueryBestSize = mfbQueryBestSize;
-    /* SaveScreen */
-    pScreen->GetImage = cfb8_32GetImage;
-    pScreen->GetSpans = cfb8_32GetSpans;
-    pScreen->CreateWindow = cfb8_32CreateWindow;
-    pScreen->DestroyWindow = cfb8_32DestroyWindow;	
-    pScreen->PositionWindow = cfb8_32PositionWindow;
-    pScreen->ChangeWindowAttributes = cfb8_32ChangeWindowAttributes;
-    pScreen->RealizeWindow = cfb32MapWindow;			/* OK */
-    pScreen->UnrealizeWindow = cfb32UnmapWindow;		/* OK */
-    pScreen->CopyWindow = cfb8_32CopyWindow;
-    pScreen->CreatePixmap = cfb32CreatePixmap;			/* OK */
-    pScreen->DestroyPixmap = cfb32DestroyPixmap; 		/* OK */
-    pScreen->RealizeFont = mfbRealizeFont;
-    pScreen->UnrealizeFont = mfbUnrealizeFont;
-    pScreen->CreateGC = cfb8_32CreateGC;
-    pScreen->CreateColormap = miInitializeColormap;
-    pScreen->DestroyColormap = DestroyColormapNoop;
-    pScreen->InstallColormap = miInstallColormap;
-    pScreen->UninstallColormap = miUninstallColormap;
-    pScreen->ListInstalledColormaps = miListInstalledColormaps;
-    pScreen->StoreColors = StoreColorsNoop;
-    pScreen->ResolveColor = miResolveColor;
-    pScreen->BitmapToRegion = mfbPixmapToRegion;
-
-    mfbRegisterCopyPlaneProc (pScreen, cfb8_32CopyPlane);
-    return TRUE;
-}
-
-typedef struct {
-    pointer pbits; 
-    int width;   
-} miScreenInitParmsRec, *miScreenInitParmsPtr;
-
-static Bool
-cfb8_32CreateScreenResources(ScreenPtr pScreen)
-{
-    miScreenInitParmsPtr pScrInitParms;
-    int pitch;
-    Bool retval;
-
-    /* get the pitch before mi destroys it */
-    pScrInitParms = (miScreenInitParmsPtr)pScreen->devPrivate;
-    pitch = pScrInitParms->width << 2;
-
-    if((retval = miCreateScreenResources(pScreen))) {
-	/* fix the screen pixmap */
-	PixmapPtr pPix = (PixmapPtr)pScreen->devPrivate;
-	pPix->drawable.bitsPerPixel = 32;
-	pPix->drawable.depth = 8;
-	pPix->devKind = pitch;
-    }
-
-    return retval;
-}
-
-
-static Bool
-cfb8_32CloseScreen (int i, ScreenPtr pScreen)
-{
-    cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
-    if(pScreenPriv->visualData)
-	xfree(pScreenPriv->visualData);
-
-    xfree((pointer) pScreenPriv);
-    dixSetPrivate(&pScreen->devPrivates, cfb8_32ScreenPrivateKey, NULL);
-
-    return(cfb32CloseScreen(i, pScreen));
-}
-
-static void
-cfb8_32TransFunc(
-    ScreenPtr pScreen,
-    int nbox,
-    BoxPtr pbox
-){
-    cfb8_32FillBoxSolid8(&(WindowTable[pScreen->myNum]->drawable), 
-			nbox, pbox, xf86Screens[pScreen->myNum]->colorKey);
-}
-
-static Bool
-cfb8_32InOverlayFunc(WindowPtr pWin)
-{
-   return (pWin->drawable.depth == 8);
-}
-
-static Bool
-cfb8_32FinishScreenInit(
-    ScreenPtr pScreen,
-    pointer pbits,		/* pointer to screen bitmap */
-    int xsize, int ysize,	/* in pixels */
-    int dpix, int dpiy,		/* dots per inch */
-    int width			/* pixel width of frame buffer */
-){
-    VisualPtr	visuals;
-    DepthPtr	depths;
-    int		nvisuals;
-    int		ndepths;
-    int		rootdepth;
-    VisualID	defaultVisual;
-
-    rootdepth = 0;
-    if (!miInitVisuals (&visuals, &depths, &nvisuals, &ndepths, &rootdepth,
-			 &defaultVisual,((unsigned long)1<<(32-1)), 8, -1))
-	return FALSE;
-    if (! miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width,
-			rootdepth, ndepths, depths,
-			defaultVisual, nvisuals, visuals))
-	return FALSE;
-
-    pScreen->CreateScreenResources = cfb8_32CreateScreenResources;
-    pScreen->CloseScreen = cfb8_32CloseScreen;
-    pScreen->GetScreenPixmap = cfb32GetScreenPixmap; 	/* OK */
-    pScreen->SetScreenPixmap = cfb32SetScreenPixmap;	/* OK */
-
-    if (! miInitOverlay(pScreen, cfb8_32InOverlayFunc, cfb8_32TransFunc))
-	return FALSE;
-
-    return TRUE;
-}
-
-static void
-cfb8_32EnableDisableFBAccess (
-    int index,
-    Bool enable
-){
-    ScreenPtr pScreen = screenInfo.screens[index];
-    cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
-    
-    miOverlaySetRootClip(pScreen, enable);
-
-    (*pScreenPriv->EnableDisableFBAccess) (index, enable);
-}
-
-static Atom overlayVisualsAtom;
-
-typedef struct {
-    CARD32 overlay_visual;
-    CARD32 transparent_type;
-    CARD32 value;
-    CARD32 layer;
-} overlayVisualRec;
-
-static void
-cfb8_32SetupVisuals (ScreenPtr pScreen)
-{
-    cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
-    char atomString[] = {"SERVER_OVERLAY_VISUALS"};
-    overlayVisualRec *overlayVisuals;
-    VisualID *visuals = NULL;
-    int numVisuals = 0;
-    DepthPtr pDepth = pScreen->allowedDepths;
-    int numDepths = pScreen->numDepths;
-    int i;
-
-    /* find depth 8 visuals */
-    for(i = 0; i < numDepths; i++, pDepth++) {
-	if(pDepth->depth == 8) {
-	    numVisuals = pDepth->numVids;
-	    visuals = pDepth->vids;
-	    break;
-	}
-    }
-    
-    if(!numVisuals || !visuals) {
-	ErrorF("No overlay visuals found!\n");
-	return;
-    }
-
-    if(!(overlayVisuals = xalloc(numVisuals * sizeof(overlayVisualRec))))
-	return;
-
-    for(i = 0; i < numVisuals; i++) {
-	overlayVisuals[i].overlay_visual = visuals[i];
-	overlayVisuals[i].transparent_type = 1; /* transparent pixel */
-	overlayVisuals[i].value = pScreenPriv->key;
-	overlayVisuals[i].layer = 1;
-    }    
-
-    overlayVisualsAtom = MakeAtom(atomString, sizeof(atomString) - 1, TRUE);
-    xf86RegisterRootWindowProperty(pScreen->myNum, overlayVisualsAtom,
-			overlayVisualsAtom, 32, numVisuals * 4, overlayVisuals);
-    pScreenPriv->visualData = (pointer)overlayVisuals;
-}
-
-Bool
-cfb8_32ScreenInit(
-    ScreenPtr pScreen,
-    pointer pbits,		/* pointer to screen bitmap */
-    int xsize, int ysize,	/* in pixels */
-    int dpix, int dpiy,		/* dots per inch */
-    int w			/* pixel width of frame buffer */
-){
-    cfb8_32ScreenPtr pScreenPriv;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-
-    if (!cfb8_32SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, w))
-	return FALSE;
-
-    pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
-    pScreenPriv->key = pScrn->colorKey;
-    pScreenPriv->visualData = NULL;
-
-
-    pScreenPriv->EnableDisableFBAccess = pScrn->EnableDisableFBAccess;
-    pScrn->EnableDisableFBAccess = cfb8_32EnableDisableFBAccess;
-
-
-    if(cfb8_32FinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, w))
-    { 
-	cfb8_32SetupVisuals(pScreen); 
-	return TRUE;
-    }
-    return FALSE;
-}
diff --git a/hw/xfree86/xf8_32bpp/cfbwindow.c b/hw/xfree86/xf8_32bpp/cfbwindow.c
deleted file mode 100644
index 2e6057f..0000000
--- a/hw/xfree86/xf8_32bpp/cfbwindow.c
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <stdlib.h>
-
-#include <X11/X.h>
-#include "scrnintstr.h"
-#include "windowstr.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include "mistruct.h"
-#include "regionstr.h"
-#include "cfbmskbits.h"
-#include "mioverlay.h"
-
-
-/* We don't bother with cfb's fastBackground/Border so we don't
-   need to use the Window privates */
-
-
-Bool
-cfb8_32CreateWindow(WindowPtr pWin)
-{
-    pWin->drawable.bitsPerPixel = 32;
-    return TRUE;
-}
-
-
-Bool
-cfb8_32DestroyWindow(WindowPtr pWin)
-{
-    return TRUE;
-}
-
-Bool
-cfb8_32PositionWindow(
-    WindowPtr pWin,
-    int x, int y
-){
-    return TRUE;
-}
-
-void 
-cfb8_32CopyWindow(pWin, ptOldOrg, prgnSrc)
-    WindowPtr pWin;
-    DDXPointRec ptOldOrg;
-    RegionPtr prgnSrc;
-{
-    ScreenPtr pScreen = pWin->drawable.pScreen;
-    DDXPointPtr ppt, pptSrc;
-    RegionRec rgnDst;
-    RegionPtr borderClip = &pWin->borderClip;
-    BoxPtr pbox;
-    int dx, dy, i, nbox;
-    WindowPtr pwinRoot;
-    Bool doUnderlay = miOverlayCopyUnderlay(pScreen);
-    Bool freeReg = FALSE;
-
-    pwinRoot = WindowTable[pScreen->myNum];
-
-    if(doUnderlay)
-	freeReg = miOverlayCollectUnderlayRegions(pWin, &borderClip);
-
-    REGION_NULL(pScreen, &rgnDst);
-
-    dx = ptOldOrg.x - pWin->drawable.x;
-    dy = ptOldOrg.y - pWin->drawable.y;
-    REGION_TRANSLATE(pScreen, prgnSrc, -dx, -dy);
-    REGION_INTERSECT(pScreen, &rgnDst, borderClip, prgnSrc);
-
-    pbox = REGION_RECTS(&rgnDst);
-    nbox = REGION_NUM_RECTS(&rgnDst);
-    if(!nbox || 
-       !(pptSrc = (DDXPointPtr )xalloc(nbox * sizeof(DDXPointRec))))
-    {
-	REGION_UNINIT(pScreen, &rgnDst);
-	return;
-    }
-    ppt = pptSrc;
-
-    for (i = nbox; --i >= 0; ppt++, pbox++)
-    {
-	ppt->x = pbox->x1 + dx;
-	ppt->y = pbox->y1 + dy;
-    }
-
-    if(doUnderlay)
-	cfbDoBitblt24To24GXcopy((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot,
-			GXcopy, &rgnDst, pptSrc, ~0);
-    else
-	cfbDoBitblt8To8GXcopy((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot,
-			GXcopy, &rgnDst, pptSrc, ~0);
-
-    xfree(pptSrc);
-    REGION_UNINIT(pScreen, &rgnDst);
-    if(freeReg) 
-	REGION_DESTROY(pScreen, borderClip);
-}
-
-Bool
-cfb8_32ChangeWindowAttributes(
-    WindowPtr pWin,
-    unsigned long mask
-){
-    return TRUE;
-}
-
-
-
-
diff --git a/hw/xfree86/xf8_32bpp/xf86overlay.c b/hw/xfree86/xf8_32bpp/xf86overlay.c
deleted file mode 100644
index c63b3cf..0000000
--- a/hw/xfree86/xf8_32bpp/xf86overlay.c
+++ /dev/null
@@ -1,1179 +0,0 @@
-
-/*
-   Copyright (C) 1998.  The XFree86 Project Inc.
-
-   Written by Mark Vojkovich (mvojkovi at ucsd.edu)
-*/
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "misc.h"
-#include "xf86.h"
-#include "xf86_OSproc.h"
-
-#include <X11/X.h>
-#include "scrnintstr.h"
-#include "regionstr.h"
-#include "windowstr.h"
-#include "xf86str.h"
-#include "migc.h"
-#include "gcstruct.h"
-#include "pixmapstr.h"
-#include "colormapst.h"
-#include "cfb8_32.h"
-
-#define IS_DIRTY 	1
-#define IS_SHARED	2
-
-/** Screen Functions **/
-
-static Bool OverlayCloseScreen (int, ScreenPtr);
-static Bool OverlayCreateGC(GCPtr pGC);
-static Bool OverlayDestroyPixmap(PixmapPtr);
-static PixmapPtr OverlayCreatePixmap(ScreenPtr, int, int, int, unsigned);
-static Bool OverlayChangeWindowAttributes(WindowPtr, unsigned long);
-
-/** Funcs **/
-static void OverlayValidateGC(GCPtr, unsigned long, DrawablePtr);
-static void OverlayChangeGC(GCPtr, unsigned long);
-static void OverlayCopyGC(GCPtr, unsigned long, GCPtr);
-static void OverlayDestroyGC(GCPtr);
-static void OverlayChangeClip(GCPtr, int, pointer, int);
-static void OverlayDestroyClip(GCPtr);
-static void OverlayCopyClip(GCPtr, GCPtr);
-
-
-static PixmapPtr OverlayRefreshPixmap(PixmapPtr);
-
-static GCFuncs OverlayGCFuncs = {
-   OverlayValidateGC, OverlayChangeGC, 
-   OverlayCopyGC, OverlayDestroyGC,
-   OverlayChangeClip, OverlayDestroyClip, 
-   OverlayCopyClip
-};
-
-
-/** Pixmap Ops */
-static void	 PixmapFillSpans(DrawablePtr, GCPtr, int, DDXPointPtr, int *,
-				  int);
-static void	 PixmapSetSpans(DrawablePtr, GCPtr, char *, DDXPointPtr,
-				 int *, int, int);
-static void	 PixmapPutImage(DrawablePtr, GCPtr, int, int, int, int, int,
-				 int, int, char *);
-static void	 PixmapPushPixels(GCPtr, PixmapPtr, DrawablePtr, int, int,
-				   int, int);
-static RegionPtr PixmapCopyArea(DrawablePtr, DrawablePtr, GCPtr, int, int,
-				 int, int, int, int);
-static RegionPtr PixmapCopyPlane(DrawablePtr, DrawablePtr, GCPtr, int, int,
-				  int, int, int, int, unsigned long);
-static void	 PixmapPolyPoint(DrawablePtr, GCPtr, int, int, xPoint *);
-static void	 PixmapPolylines(DrawablePtr, GCPtr, int, int, DDXPointPtr);
-static void	 PixmapPolySegment(DrawablePtr, GCPtr, int, xSegment *);
-static void	 PixmapPolyRectangle(DrawablePtr, GCPtr, int, xRectangle *);
-static void	 PixmapPolyArc(DrawablePtr, GCPtr, int, xArc *);
-static void	 PixmapFillPolygon(DrawablePtr, GCPtr, int, int, int,
-				    DDXPointPtr);
-static void	 PixmapPolyFillRect(DrawablePtr, GCPtr, int, xRectangle *);
-static void	 PixmapPolyFillArc(DrawablePtr, GCPtr, int, xArc *);
-static int	 PixmapPolyText8(DrawablePtr, GCPtr, int, int, int, char *);
-static int	 PixmapPolyText16(DrawablePtr, GCPtr, int, int, int,
-				   unsigned short *);
-static void	 PixmapImageText8(DrawablePtr, GCPtr, int, int, int, char *);
-static void	 PixmapImageText16(DrawablePtr, GCPtr, int, int, int,
-				    unsigned short *);
-static void	 PixmapImageGlyphBlt(DrawablePtr, GCPtr, int, int,
-				      unsigned int, CharInfoPtr *, pointer);
-static void	 PixmapPolyGlyphBlt(DrawablePtr, GCPtr, int, int,
-				     unsigned int, CharInfoPtr *, pointer);
-
-static GCOps PixmapGCOps = {
-    PixmapFillSpans, PixmapSetSpans, 
-    PixmapPutImage, PixmapCopyArea, 
-    PixmapCopyPlane, PixmapPolyPoint, 
-    PixmapPolylines, PixmapPolySegment, 
-    PixmapPolyRectangle, PixmapPolyArc, 
-    PixmapFillPolygon, PixmapPolyFillRect, 
-    PixmapPolyFillArc, PixmapPolyText8, 
-    PixmapPolyText16, PixmapImageText8, 
-    PixmapImageText16, PixmapImageGlyphBlt, 
-    PixmapPolyGlyphBlt, PixmapPushPixels,
-    {NULL}		/* devPrivate */
-};
-
-
-/** Window Ops **/
-static void	 WindowFillSpans(DrawablePtr, GCPtr, int, DDXPointPtr, int *,
-				  int);
-static void	 WindowSetSpans(DrawablePtr, GCPtr, char *, DDXPointPtr,
-				 int *, int, int);
-static void	 WindowPutImage(DrawablePtr, GCPtr, int, int, int, int, int,
-				 int, int, char *);
-static void	 WindowPushPixels(GCPtr, PixmapPtr, DrawablePtr, int, int,
-				   int, int);
-static RegionPtr WindowCopyArea(DrawablePtr, DrawablePtr, GCPtr, int, int,
-				 int, int, int, int);
-static RegionPtr WindowCopyPlane(DrawablePtr, DrawablePtr, GCPtr, int, int,
-				  int, int, int, int, unsigned long);
-static void	 WindowPolyPoint(DrawablePtr, GCPtr, int, int, xPoint *);
-static void	 WindowPolylines(DrawablePtr, GCPtr, int, int, DDXPointPtr);
-static void	 WindowPolySegment(DrawablePtr, GCPtr, int, xSegment *);
-static void	 WindowPolyRectangle(DrawablePtr, GCPtr, int, xRectangle *);
-static void	 WindowPolyArc(DrawablePtr, GCPtr, int, xArc *);
-static void	 WindowFillPolygon(DrawablePtr, GCPtr, int, int, int,
-				    DDXPointPtr);
-static void	 WindowPolyFillRect(DrawablePtr, GCPtr, int, xRectangle *);
-static void	 WindowPolyFillArc(DrawablePtr, GCPtr, int, xArc *);
-static int	 WindowPolyText8(DrawablePtr, GCPtr, int, int, int, char *);
-static int	 WindowPolyText16(DrawablePtr, GCPtr, int, int, int,
-				   unsigned short *);
-static void	 WindowImageText8(DrawablePtr, GCPtr, int, int, int, char *);
-static void	 WindowImageText16(DrawablePtr, GCPtr, int, int, int,
-				    unsigned short *);
-static void	 WindowImageGlyphBlt(DrawablePtr, GCPtr, int, int,
-				      unsigned int, CharInfoPtr *, pointer);
-static void	 WindowPolyGlyphBlt(DrawablePtr, GCPtr, int, int,
-				     unsigned int, CharInfoPtr *, pointer);
-
-static GCOps WindowGCOps = {
-    WindowFillSpans, WindowSetSpans, 
-    WindowPutImage, WindowCopyArea, 
-    WindowCopyPlane, WindowPolyPoint, 
-    WindowPolylines, WindowPolySegment, 
-    WindowPolyRectangle, WindowPolyArc, 
-    WindowFillPolygon, WindowPolyFillRect, 
-    WindowPolyFillArc, WindowPolyText8, 
-    WindowPolyText16, WindowImageText8, 
-    WindowImageText16, WindowImageGlyphBlt, 
-    WindowPolyGlyphBlt, WindowPushPixels,
-    {NULL}		/* devPrivate */
-};
-
-/** privates **/
-
-typedef struct {
-   CloseScreenProcPtr		CloseScreen;
-   CreateGCProcPtr		CreateGC;
-   CreatePixmapProcPtr		CreatePixmap;
-   DestroyPixmapProcPtr		DestroyPixmap;
-   ChangeWindowAttributesProcPtr ChangeWindowAttributes;
-   int				LockPrivate;
-} OverlayScreenRec, *OverlayScreenPtr;
-
-typedef struct {
-   GCFuncs		*wrapFuncs;
-   GCOps		*wrapOps;
-   GCOps		*overlayOps;
-   unsigned long 	fg;
-   unsigned long 	bg;
-   unsigned long 	pm;
-   PixmapPtr		tile;
-} OverlayGCRec, *OverlayGCPtr;
-
-typedef struct {
-   PixmapPtr		pix32;
-   CARD32		dirty;
-} OverlayPixmapRec, *OverlayPixmapPtr;
-
-
-static DevPrivateKey OverlayScreenKey = &OverlayScreenKey;
-static DevPrivateKey OverlayGCKey = &OverlayGCKey;
-static DevPrivateKey OverlayPixmapKey = &OverlayPixmapKey;
-
-/** Macros **/
-
-#define TILE_EXISTS(pGC) (!(pGC)->tileIsPixel && (pGC)->tile.pixmap)
-
-#define OVERLAY_GET_PIXMAP_PRIVATE(pPix) ((OverlayPixmapPtr) \
-    dixLookupPrivate(&(pPix)->devPrivates, OverlayPixmapKey))
-
-#define OVERLAY_GET_SCREEN_PRIVATE(pScreen) ((OverlayScreenPtr) \
-    dixLookupPrivate(&(pScreen)->devPrivates, OverlayScreenKey))
-
-#define OVERLAY_GET_GC_PRIVATE(pGC) ((OverlayGCPtr) \
-    dixLookupPrivate(&(pGC)->devPrivates, OverlayGCKey))
-
-#define OVERLAY_GC_FUNC_PROLOGUE(pGC)\
-    OverlayGCPtr pGCPriv = OVERLAY_GET_GC_PRIVATE(pGC);\
-    (pGC)->funcs = pGCPriv->wrapFuncs;\
-    if(pGCPriv->overlayOps) \
-	(pGC)->ops = pGCPriv->wrapOps
-
-#define OVERLAY_GC_FUNC_EPILOGUE(pGC)\
-    pGCPriv->wrapFuncs = (pGC)->funcs;\
-    (pGC)->funcs = &OverlayGCFuncs;\
-    if(pGCPriv->overlayOps) { \
-	pGCPriv->wrapOps = (pGC)->ops;\
-	(pGC)->ops = pGCPriv->overlayOps;\
-    }
-
-#define WINDOW_GC_OP_PROLOGUE(pGC)\
-    OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE((pGC)->pScreen);\
-    OverlayGCPtr pGCPriv = OVERLAY_GET_GC_PRIVATE(pGC);\
-    unsigned long oldfg = (pGC)->fgPixel;\
-    unsigned long oldbg = (pGC)->bgPixel;\
-    unsigned long oldpm = (pGC)->planemask;\
-    PixmapPtr oldtile = (pGC)->tile.pixmap;\
-    (pGC)->fgPixel = pGCPriv->fg;\
-    (pGC)->bgPixel = pGCPriv->bg;\
-    (pGC)->planemask = pGCPriv->pm;\
-    if(pGCPriv->tile) (pGC)->tile.pixmap = pGCPriv->tile;\
-    (pGC)->funcs = pGCPriv->wrapFuncs;\
-    (pGC)->ops = pGCPriv->wrapOps;\
-    pScreenPriv->LockPrivate++
-    
-
-#define WINDOW_GC_OP_EPILOGUE(pGC)\
-    pGCPriv->wrapOps = (pGC)->ops;\
-    pGCPriv->wrapFuncs = (pGC)->funcs;\
-    (pGC)->fgPixel = oldfg;\
-    (pGC)->bgPixel = oldbg;\
-    (pGC)->planemask = oldpm;\
-    (pGC)->tile.pixmap = oldtile;\
-    (pGC)->funcs = &OverlayGCFuncs;\
-    (pGC)->ops   = &WindowGCOps;\
-    pScreenPriv->LockPrivate--
-
-
-#define PIXMAP_GC_OP_PROLOGUE(pGC)\
-    OverlayGCPtr pGCPriv = OVERLAY_GET_GC_PRIVATE(pGC);\
-    OverlayPixmapPtr pPixPriv = OVERLAY_GET_PIXMAP_PRIVATE((PixmapPtr)pDraw);\
-    pGC->funcs = pGCPriv->wrapFuncs;\
-    pGC->ops = pGCPriv->wrapOps
-    
-#define PIXMAP_GC_OP_EPILOGUE(pGC)\
-    pGCPriv->wrapOps = pGC->ops;\
-    pGC->funcs = &OverlayGCFuncs;\
-    pGC->ops = &PixmapGCOps;\
-    pPixPriv->dirty |= IS_DIRTY
-    
-
-Bool
-xf86Overlay8Plus32Init (ScreenPtr pScreen)
-{
-    OverlayScreenPtr pScreenPriv;
-
-    if (!dixRequestPrivate(OverlayGCKey, sizeof(OverlayGCRec)))
-	return FALSE;
-
-    if (!dixRequestPrivate(OverlayPixmapKey, sizeof(OverlayPixmapRec)))
-	return FALSE;
-
-    if (!(pScreenPriv = xalloc(sizeof(OverlayScreenRec))))
-	return FALSE;
-
-    dixSetPrivate(&pScreen->devPrivates, OverlayScreenKey, pScreenPriv);
-
-    pScreenPriv->CreateGC = pScreen->CreateGC;
-    pScreenPriv->CloseScreen = pScreen->CloseScreen;
-    pScreenPriv->CreatePixmap = pScreen->CreatePixmap;
-    pScreenPriv->DestroyPixmap = pScreen->DestroyPixmap;
-    pScreenPriv->ChangeWindowAttributes = pScreen->ChangeWindowAttributes;
-
-    pScreen->CreateGC = OverlayCreateGC;
-    pScreen->CloseScreen = OverlayCloseScreen;
-    pScreen->CreatePixmap = OverlayCreatePixmap; 
-    pScreen->DestroyPixmap = OverlayDestroyPixmap; 
-    pScreen->ChangeWindowAttributes = OverlayChangeWindowAttributes; 
-
-    pScreenPriv->LockPrivate = 0; 
-
-    /* allocate the key in the default map */
-    if(pScreen->defColormap) {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-	ColormapPtr pmap;
-	xColorItem color;
-
-	pmap = (ColormapPtr)LookupIDByType(pScreen->defColormap, RT_COLORMAP);
-
-	pmap->red[pScrn->colorKey].refcnt = AllocPrivate;
-	pmap->red[pScrn->colorKey].fShared = FALSE;
-	pmap->freeRed--;
-	
-	color.red = color.blue = color.green = 0;
-	color.pixel = pScrn->colorKey;
-	color.flags = DoRed | DoGreen | DoBlue;
-
-	StoreColors(pmap, 1, &color);
-    }
-
-    return TRUE;
-}
-
-
-/*********************** Screen Funcs ***********************/
-
-Bool
-OverlayCreateGC(GCPtr pGC)
-{
-    ScreenPtr    pScreen = pGC->pScreen;
-    OverlayGCPtr pGCPriv = OVERLAY_GET_GC_PRIVATE(pGC);
-    OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen);
-    Bool ret;
-
-    pScreen->CreateGC = pScreenPriv->CreateGC;
-
-    if((ret = (*pScreen->CreateGC)(pGC)) && (pGC->depth != 1)) {
-	pGCPriv->wrapFuncs = pGC->funcs;
-	pGC->funcs = &OverlayGCFuncs;
-	pGCPriv->wrapOps = NULL;
-	pGCPriv->overlayOps = NULL;
-	pGCPriv->tile = NULL;
-    }
-
-    pScreen->CreateGC = OverlayCreateGC;
-
-    return ret;
-}
-
-static PixmapPtr 
-OverlayCreatePixmap(ScreenPtr pScreen, int w, int h, int depth,
-		    unsigned usage_hint)
-{
-    OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen);
-    PixmapPtr pPix;
-    
-    pScreen->CreatePixmap = pScreenPriv->CreatePixmap;
-    pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth, usage_hint);
-    pScreen->CreatePixmap = OverlayCreatePixmap;
-
-    /* We initialize all the privates */
-    if(pPix) {
-	OverlayPixmapPtr pPriv = OVERLAY_GET_PIXMAP_PRIVATE(pPix);
-        pPriv->pix32 = NULL;
-        pPriv->dirty = IS_DIRTY;
-	if(!w || !h)
-	   pPriv->dirty |= IS_SHARED;
-    }
-
-    return pPix;
-}
-
-static Bool
-OverlayDestroyPixmap(PixmapPtr pPix)
-{
-    ScreenPtr pScreen = pPix->drawable.pScreen;
-    OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen);
-    Bool result;
-
-    pScreen->DestroyPixmap = pScreenPriv->DestroyPixmap;
-
-    if((pPix->refcnt == 1) && (pPix->drawable.bitsPerPixel == 8)) {
-	OverlayPixmapPtr pPriv = OVERLAY_GET_PIXMAP_PRIVATE(pPix);
-	if(pPriv->pix32) {
-	   if(pPriv->pix32->refcnt != 1)
-	     ErrorF("Warning! private pix refcnt = %i\n", pPriv->pix32->refcnt);
-	   (*pScreen->DestroyPixmap)(pPriv->pix32);
-	}
-	pPriv->pix32 = NULL;
-    }
-
-    result = (*pScreen->DestroyPixmap) (pPix);
-    pScreen->DestroyPixmap = OverlayDestroyPixmap;
-
-    return result;
-}
-
-static Bool
-OverlayCloseScreen (int i, ScreenPtr pScreen)
-{
-    OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen);
-
-    pScreen->CreateGC = pScreenPriv->CreateGC;
-    pScreen->CloseScreen = pScreenPriv->CloseScreen;
-    pScreen->CreatePixmap = pScreenPriv->CreatePixmap;
-    pScreen->DestroyPixmap = pScreenPriv->DestroyPixmap;
-    pScreen->ChangeWindowAttributes = pScreenPriv->ChangeWindowAttributes;
-
-    xfree ((pointer) pScreenPriv);
-
-    return (*pScreen->CloseScreen) (i, pScreen);
-}
-
-
-
-static Bool
-OverlayChangeWindowAttributes (WindowPtr pWin, unsigned long mask)
-{
-    ScreenPtr pScreen = pWin->drawable.pScreen;
-    OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen);
-    Bool result;    
-
-    if(pWin->drawable.depth == 8) {
-	if((mask & CWBackPixmap) && 
-	   (pWin->backgroundState == BackgroundPixmap)) 	
-		OverlayRefreshPixmap(pWin->background.pixmap);
-
-	if((mask & CWBorderPixmap) && !pWin->borderIsPixel)
-		OverlayRefreshPixmap(pWin->border.pixmap);
-    }
-
-    pScreen->ChangeWindowAttributes = pScreenPriv->ChangeWindowAttributes;
-    result = (*pScreen->ChangeWindowAttributes) (pWin, mask);
-    pScreen->ChangeWindowAttributes = OverlayChangeWindowAttributes;
-
-    return result;
-}
-
-/*********************** GC Funcs *****************************/
-
-
-static PixmapPtr
-OverlayRefreshPixmap(PixmapPtr pix8) 
-{
-    OverlayPixmapPtr pixPriv = OVERLAY_GET_PIXMAP_PRIVATE(pix8);
-    ScreenPtr pScreen = pix8->drawable.pScreen;
-
-    if(!pixPriv->pix32) {
-	PixmapPtr newPix;
-
-	newPix = (*pScreen->CreatePixmap)(pScreen, pix8->drawable.width,
-		pix8->drawable.height, 24, 0);
-	newPix->drawable.depth = 8;  /* Bad Mark! Bad Mark! */
-        pixPriv->pix32 = newPix;
-    }
-
-    if(pixPriv->dirty) {
-	OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pScreen);
-	GCPtr pGC;
-
-	pGC = GetScratchGC(8, pScreen);
-
-	pScreenPriv->LockPrivate++;  /* don't modify this one */
-	ValidateGC((DrawablePtr)pixPriv->pix32, pGC);
-
-	(*pGC->ops->CopyArea)((DrawablePtr)pix8, (DrawablePtr)pixPriv->pix32,
-		pGC, 0, 0, pix8->drawable.width, pix8->drawable.height, 0, 0);  
-	pScreenPriv->LockPrivate--;
-	FreeScratchGC(pGC);
-
-	pixPriv->dirty &= ~IS_DIRTY;
-	pixPriv->pix32->drawable.serialNumber = NEXT_SERIAL_NUMBER;    
-    }
-
-    return pixPriv->pix32;
-}
-
-
-static void
-OverlayValidateGC(
-   GCPtr         pGC,
-   unsigned long changes,
-   DrawablePtr   pDraw 
-){
-    OverlayScreenPtr pScreenPriv = OVERLAY_GET_SCREEN_PRIVATE(pGC->pScreen);
-    OVERLAY_GC_FUNC_PROLOGUE (pGC);
-
-    if(pScreenPriv->LockPrivate < 0) {
-	ErrorF("Something is wrong in OverlayValidateGC!\n");
-	pScreenPriv->LockPrivate = 0;
-    }
-
-    if(pGC->depth == 24) {
-	unsigned long oldpm = pGC->planemask;
-	pGCPriv->overlayOps = NULL;
-
-	if(pDraw->type == DRAWABLE_WINDOW)
-	   pGC->planemask &= 0x00ffffff;
-	else
-	   pGC->planemask |= 0xff000000; 
-
-        if(oldpm != pGC->planemask) changes |= GCPlaneMask;
-
-	(*pGC->funcs->ValidateGC)(pGC, changes, pDraw);
-
-    } else { /* depth == 8 */
-	unsigned long newChanges = 0;
-
-	if(pDraw->bitsPerPixel == 32) {
-	
-	    if(pGC->fillStyle == FillTiled)
-		pGCPriv->tile = OverlayRefreshPixmap(pGC->tile.pixmap);
-	    else pGCPriv->tile = NULL;
-
-	    if(pGCPriv->overlayOps != &WindowGCOps) {
-		newChanges = GCForeground | GCBackground | GCPlaneMask;
-		if(pGCPriv->tile) 
-		    newChanges |= GCTile;
-	    }
-	    pGCPriv->overlayOps = &WindowGCOps;
-
-	    if(!pScreenPriv->LockPrivate) {
-		unsigned long oldfg = pGC->fgPixel;
-		unsigned long oldbg = pGC->bgPixel;
-		unsigned long oldpm = pGC->planemask;
-		PixmapPtr oldtile = pGC->tile.pixmap;
-
-		pGC->fgPixel = pGCPriv->fg = oldfg << 24;
-		pGC->bgPixel = pGCPriv->bg = oldbg << 24;
-		pGC->planemask = pGCPriv->pm = oldpm << 24;
-		if(pGCPriv->tile)
-		    pGC->tile.pixmap = pGCPriv->tile;
-
-		(*pGC->funcs->ValidateGC)(pGC, changes | newChanges, pDraw);
-
-		pGC->fgPixel = oldfg;
-		pGC->bgPixel = oldbg;
-		pGC->planemask = oldpm;
-		pGC->tile.pixmap = oldtile;
-	    } else {
-		pGCPriv->fg = pGC->fgPixel;
-		pGCPriv->bg = pGC->bgPixel;
-		pGCPriv->pm = pGC->planemask;
-
-		(*pGC->funcs->ValidateGC)(pGC, changes | newChanges, pDraw);
-	    }
-
-	} else {  /* bitsPerPixel == 8 */
-	    if(pGCPriv->overlayOps == &WindowGCOps) {
-		newChanges = GCForeground | GCBackground | GCPlaneMask;
-		if(pGCPriv->tile) 
-		    newChanges |= GCTile;
-	    }
-	    pGCPriv->overlayOps = &PixmapGCOps;
-
-	    (*pGC->funcs->ValidateGC)(pGC, changes | newChanges, pDraw);
-	}
-    }
-
-    OVERLAY_GC_FUNC_EPILOGUE (pGC);
-}
-
-
-static void
-OverlayDestroyGC(GCPtr pGC)
-{
-    OVERLAY_GC_FUNC_PROLOGUE (pGC);
-    (*pGC->funcs->DestroyGC)(pGC);
-    OVERLAY_GC_FUNC_EPILOGUE (pGC);
-}
-
-static void
-OverlayChangeGC (
-    GCPtr	    pGC,
-    unsigned long   mask
-){
-    OVERLAY_GC_FUNC_PROLOGUE (pGC);
-    (*pGC->funcs->ChangeGC) (pGC, mask);
-    OVERLAY_GC_FUNC_EPILOGUE (pGC);
-}
-
-static void
-OverlayCopyGC (
-    GCPtr	    pGCSrc, 
-    unsigned long   mask,
-    GCPtr	    pGCDst
-){
-    OVERLAY_GC_FUNC_PROLOGUE (pGCDst);
-    (*pGCDst->funcs->CopyGC) (pGCSrc, mask, pGCDst);
-    OVERLAY_GC_FUNC_EPILOGUE (pGCDst);
-}
-static void
-OverlayChangeClip (
-    GCPtr   pGC,
-    int		type,
-    pointer	pvalue,
-    int		nrects
-){
-    OVERLAY_GC_FUNC_PROLOGUE (pGC);
-    (*pGC->funcs->ChangeClip) (pGC, type, pvalue, nrects);
-    OVERLAY_GC_FUNC_EPILOGUE (pGC);
-}
-
-static void
-OverlayCopyClip(GCPtr pgcDst, GCPtr pgcSrc)
-{
-    OVERLAY_GC_FUNC_PROLOGUE (pgcDst);
-    (* pgcDst->funcs->CopyClip)(pgcDst, pgcSrc);
-    OVERLAY_GC_FUNC_EPILOGUE (pgcDst);
-}
-
-static void
-OverlayDestroyClip(GCPtr pGC)
-{
-    OVERLAY_GC_FUNC_PROLOGUE (pGC);
-    (* pGC->funcs->DestroyClip)(pGC);
-    OVERLAY_GC_FUNC_EPILOGUE (pGC);
-}
-
-
-
-/******************* Window GC ops ***********************/
-
-static void
-WindowFillSpans(
-    DrawablePtr pDraw,
-    GC		*pGC,
-    int		nInit,	
-    DDXPointPtr pptInit,	
-    int *pwidthInit,		
-    int fSorted 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->FillSpans)(pDraw, pGC, nInit, pptInit, pwidthInit, fSorted);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowSetSpans(
-    DrawablePtr		pDraw,
-    GCPtr		pGC,
-    char		*pcharsrc,
-    register DDXPointPtr ppt,
-    int			*pwidth,
-    int			nspans,
-    int			fSorted 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->SetSpans)(pDraw, pGC, pcharsrc, ppt, pwidth, nspans, fSorted);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowPutImage(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		depth, 
-    int x, int y, int w, int h,
-    int		leftPad,
-    int		format,
-    char 	*pImage 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PutImage)(pDraw, pGC, depth, x, y, w, h, 
-						leftPad, format, pImage);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static RegionPtr
-WindowCopyArea(
-    DrawablePtr pSrc,
-    DrawablePtr pDst,
-    GC *pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty 
-){
-    RegionPtr ret;
-
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->CopyArea)(pSrc, pDst,
-            pGC, srcx, srcy, width, height, dstx, dsty);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static RegionPtr
-WindowCopyPlane(
-    DrawablePtr	pSrc,
-    DrawablePtr	pDst,
-    GCPtr pGC,
-    int	srcx, int srcy,
-    int	width, int height,
-    int	dstx, int dsty,
-    unsigned long bitPlane 
-){
-    RegionPtr ret;
-
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->CopyPlane)(pSrc, pDst,
-	       pGC, srcx, srcy, width, height, dstx, dsty, bitPlane);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static void
-WindowPolyPoint(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int mode,
-    int npt,
-    xPoint *pptInit
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyPoint)(pDraw, pGC, mode, npt, pptInit);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowPolylines(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		mode,		
-    int		npt,		
-    DDXPointPtr pptInit 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->Polylines)(pDraw, pGC, mode, npt, pptInit);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void 
-WindowPolySegment(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		nseg,
-    xSegment	*pSeg 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolySegment)(pDraw, pGC, nseg, pSeg);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowPolyRectangle(
-    DrawablePtr  pDraw,
-    GCPtr        pGC,
-    int	         nRectsInit,
-    xRectangle  *pRectsInit 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyRectangle)(pDraw, pGC, nRectsInit, pRectsInit);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowPolyArc(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		narcs,
-    xArc	*parcs 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyArc)(pDraw, pGC, narcs, parcs);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowFillPolygon(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		shape,
-    int		mode,
-    int		count,
-    DDXPointPtr	ptsIn 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->FillPolygon)(pDraw, pGC, shape, mode, count, ptsIn);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void 
-WindowPolyFillRect(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		nrectFill, 
-    xRectangle	*prectInit 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyFillRect)(pDraw, pGC, nrectFill, prectInit);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowPolyFillArc(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		narcs,
-    xArc	*parcs 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyFillArc)(pDraw, pGC, narcs, parcs);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static int
-WindowPolyText8(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x, 
-    int 	y,
-    int 	count,
-    char	*chars 
-){
-    int ret;
-
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->PolyText8)(pDraw, pGC, x, y, count, chars);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static int
-WindowPolyText16(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x,
-    int		y,
-    int 	count,
-    unsigned short *chars 
-){
-    int ret;
-
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->PolyText16)(pDraw, pGC, x, y, count, chars);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static void
-WindowImageText8(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x, 
-    int		y,
-    int 	count,
-    char	*chars 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->ImageText8)(pDraw, pGC, x, y, count, chars);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowImageText16(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x,
-    int		y,
-    int 	count,
-    unsigned short *chars 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->ImageText16)(pDraw, pGC, x, y, count, chars);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowImageGlyphBlt(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int xInit, int yInit,
-    unsigned int nglyph,
-    CharInfoPtr *ppci,
-    pointer pglyphBase 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, 
-					ppci, pglyphBase);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowPolyGlyphBlt(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int xInit, int yInit,
-    unsigned int nglyph,
-    CharInfoPtr *ppci,
-    pointer pglyphBase 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, 
-						ppci, pglyphBase);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-WindowPushPixels(
-    GCPtr	pGC,
-    PixmapPtr	pBitMap,
-    DrawablePtr pDraw,
-    int	dx, int dy, int xOrg, int yOrg 
-){
-    WINDOW_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PushPixels)(pGC, pBitMap, pDraw, dx, dy, xOrg, yOrg);
-    WINDOW_GC_OP_EPILOGUE(pGC);
-}
-
-
-/******************* Pixmap GC ops ***********************/
-
-static void
-PixmapFillSpans(
-    DrawablePtr pDraw,
-    GC		*pGC,
-    int		nInit,	
-    DDXPointPtr pptInit,	
-    int *pwidthInit,		
-    int fSorted 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->FillSpans)(pDraw, pGC, nInit, pptInit, pwidthInit, fSorted);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapSetSpans(
-    DrawablePtr		pDraw,
-    GCPtr		pGC,
-    char		*pcharsrc,
-    register DDXPointPtr ppt,
-    int			*pwidth,
-    int			nspans,
-    int			fSorted 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->SetSpans)(pDraw, pGC, pcharsrc, ppt, pwidth, nspans, fSorted);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapPutImage(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		depth, 
-    int x, int y, int w, int h,
-    int		leftPad,
-    int		format,
-    char 	*pImage 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PutImage)(pDraw, pGC, depth, x, y, w, h, 
-						leftPad, format, pImage);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static RegionPtr
-PixmapCopyArea(
-    DrawablePtr pSrc,
-    DrawablePtr pDraw,
-    GC *pGC,
-    int srcx, int srcy,
-    int width, int height,
-    int dstx, int dsty 
-){
-    RegionPtr ret;
-
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->CopyArea)(pSrc, pDraw,
-            pGC, srcx, srcy, width, height, dstx, dsty);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static RegionPtr
-PixmapCopyPlane(
-    DrawablePtr	pSrc,
-    DrawablePtr	pDraw,
-    GCPtr pGC,
-    int	srcx, int srcy,
-    int	width, int height,
-    int	dstx, int dsty,
-    unsigned long bitPlane 
-){
-    RegionPtr ret;
-
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->CopyPlane)(pSrc, pDraw,
-	       pGC, srcx, srcy, width, height, dstx, dsty, bitPlane);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static void
-PixmapPolyPoint(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int mode,
-    int npt,
-    xPoint *pptInit
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyPoint)(pDraw, pGC, mode, npt, pptInit);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapPolylines(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		mode,		
-    int		npt,		
-    DDXPointPtr pptInit 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->Polylines)(pDraw, pGC, mode, npt, pptInit);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void 
-PixmapPolySegment(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		nseg,
-    xSegment	*pSeg 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolySegment)(pDraw, pGC, nseg, pSeg);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapPolyRectangle(
-    DrawablePtr  pDraw,
-    GCPtr        pGC,
-    int	         nRectsInit,
-    xRectangle  *pRectsInit 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyRectangle)(pDraw, pGC, nRectsInit, pRectsInit);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapPolyArc(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		narcs,
-    xArc	*parcs 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyArc)(pDraw, pGC, narcs, parcs);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapFillPolygon(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		shape,
-    int		mode,
-    int		count,
-    DDXPointPtr	ptsIn 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->FillPolygon)(pDraw, pGC, shape, mode, count, ptsIn);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void 
-PixmapPolyFillRect(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		nrectFill, 
-    xRectangle	*prectInit 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyFillRect)(pDraw, pGC, nrectFill, prectInit);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapPolyFillArc(
-    DrawablePtr	pDraw,
-    GCPtr	pGC,
-    int		narcs,
-    xArc	*parcs 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyFillArc)(pDraw, pGC, narcs, parcs);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static int
-PixmapPolyText8(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x, 
-    int 	y,
-    int 	count,
-    char	*chars 
-){
-    int ret;
-
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->PolyText8)(pDraw, pGC, x, y, count, chars);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static int
-PixmapPolyText16(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x,
-    int		y,
-    int 	count,
-    unsigned short *chars 
-){
-    int ret;
-
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    ret = (*pGC->ops->PolyText16)(pDraw, pGC, x, y, count, chars);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-    return ret;
-}
-
-static void
-PixmapImageText8(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x, 
-    int		y,
-    int 	count,
-    char	*chars 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->ImageText8)(pDraw, pGC, x, y, count, chars);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapImageText16(
-    DrawablePtr pDraw,
-    GCPtr	pGC,
-    int		x,
-    int		y,
-    int 	count,
-    unsigned short *chars 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->ImageText16)(pDraw, pGC, x, y, count, chars);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapImageGlyphBlt(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int xInit, int yInit,
-    unsigned int nglyph,
-    CharInfoPtr *ppci,
-    pointer pglyphBase 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, 
-					ppci, pglyphBase);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapPolyGlyphBlt(
-    DrawablePtr pDraw,
-    GCPtr pGC,
-    int xInit, int yInit,
-    unsigned int nglyph,
-    CharInfoPtr *ppci,
-    pointer pglyphBase 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PolyGlyphBlt)(pDraw, pGC, xInit, yInit, nglyph, 
-						ppci, pglyphBase);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-static void
-PixmapPushPixels(
-    GCPtr	pGC,
-    PixmapPtr	pBitMap,
-    DrawablePtr pDraw,
-    int	dx, int dy, int xOrg, int yOrg 
-){
-    PIXMAP_GC_OP_PROLOGUE(pGC);
-    (*pGC->ops->PushPixels)(pGC, pBitMap, pDraw, dx, dy, xOrg, yOrg);
-    PIXMAP_GC_OP_EPILOGUE(pGC);
-}
-
-
commit 059b4876e6350aa1110648788cdfbb3f45b4d66d
Author: Adam Jackson <ajax at redhat.com>
Date:   Fri Apr 11 09:46:48 2008 -0400

    Add doltcompile to .gitignore

diff --git a/.gitignore b/.gitignore
index 837b038..548e784 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,7 @@ config.sub
 configure
 configure.lineno
 depcomp
+doltcompile
 install-sh
 libtool
 ltmain.sh


More information about the xorg-commit mailing list