aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/xaa
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xfree86/xaa')
-rw-r--r--xorg-server/hw/xfree86/xaa/Makefile.am4
-rw-r--r--xorg-server/hw/xfree86/xaa/Makefile.in80
-rw-r--r--xorg-server/hw/xfree86/xaa/xaa.h4
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaCpyPlane.c10
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaInit.c12
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaInitAccel.c13
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaNonTEText.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaOverlayDF.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaStateChange.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaTEGlyphBlt.S964
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaWrapper.c6
-rw-r--r--xorg-server/hw/xfree86/xaa/xaalocal.h4
-rw-r--r--xorg-server/hw/xfree86/xaa/xaawrap.h4
13 files changed, 59 insertions, 1051 deletions
diff --git a/xorg-server/hw/xfree86/xaa/Makefile.am b/xorg-server/hw/xfree86/xaa/Makefile.am
index bd8267ad8..e9f5e687c 100644
--- a/xorg-server/hw/xfree86/xaa/Makefile.am
+++ b/xorg-server/hw/xfree86/xaa/Makefile.am
@@ -67,8 +67,8 @@ DISTCLEANFILES = $(POLYSEG) \
sdk_HEADERS = xaa.h xaalocal.h xaarop.h xaaWrapper.h
EXTRA_DIST = xaacexp.h xaawrap.h xaaLine.c xaaDashLine.c \
xaaStipple.c xaaTEGlyph.c xaaNonTEGlyph.c xaaBitmap.c \
- xaaTEGlyphBlt.S XAA.HOWTO
+ XAA.HOWTO
-INCLUDES = $(XORG_INCS)
+INCLUDES = $(XORG_INCS) -I$(srcdir)/../../../miext/cw
AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
diff --git a/xorg-server/hw/xfree86/xaa/Makefile.in b/xorg-server/hw/xfree86/xaa/Makefile.in
index bea296fa0..2dc04250e 100644
--- a/xorg-server/hw/xfree86/xaa/Makefile.in
+++ b/xorg-server/hw/xfree86/xaa/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.10.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -45,7 +45,6 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \
$(top_builddir)/include/xorg-server.h \
$(top_builddir)/include/dix-config.h \
- $(top_builddir)/include/xgl-config.h \
$(top_builddir)/include/xorg-config.h \
$(top_builddir)/include/xkb-config.h \
$(top_builddir)/include/xwin-config.h \
@@ -91,9 +90,6 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
@@ -110,8 +106,9 @@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
-APPDEFAULTDIR = @APPDEFAULTDIR@
APPLE_APPLICATIONS_DIR = @APPLE_APPLICATIONS_DIR@
+APPLE_APPLICATION_ID = @APPLE_APPLICATION_ID@
+APPLE_APPLICATION_NAME = @APPLE_APPLICATION_NAME@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@@ -132,10 +129,6 @@ CFLAGS = @CFLAGS@
COMPILEDDEFAULTFONTPATH = @COMPILEDDEFAULTFONTPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DARWIN_LIBS = @DARWIN_LIBS@
DBUS_CFLAGS = @DBUS_CFLAGS@
@@ -157,6 +150,7 @@ DMXXIEXAMPLES_DEP_CFLAGS = @DMXXIEXAMPLES_DEP_CFLAGS@
DMXXIEXAMPLES_DEP_LIBS = @DMXXIEXAMPLES_DEP_LIBS@
DMXXMUEXAMPLES_DEP_CFLAGS = @DMXXMUEXAMPLES_DEP_CFLAGS@
DMXXMUEXAMPLES_DEP_LIBS = @DMXXMUEXAMPLES_DEP_LIBS@
+DOLT_BASH = @DOLT_BASH@
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@
DRIPROTO_CFLAGS = @DRIPROTO_CFLAGS@
@@ -166,18 +160,15 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRI_DRIVER_PATH = @DRI_DRIVER_PATH@
DSYMUTIL = @DSYMUTIL@
DTRACE = @DTRACE@
-ECHO = @ECHO@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
-FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
-FREETYPE_LIBS = @FREETYPE_LIBS@
GLX_ARCH_DEFINES = @GLX_ARCH_DEFINES@
GLX_DEFINES = @GLX_DEFINES@
GL_CFLAGS = @GL_CFLAGS@
@@ -196,7 +187,7 @@ KDRIVE_LIBS = @KDRIVE_LIBS@
KDRIVE_LOCAL_LIBS = @KDRIVE_LOCAL_LIBS@
KDRIVE_PURE_INCS = @KDRIVE_PURE_INCS@
KDRIVE_PURE_LIBS = @KDRIVE_PURE_LIBS@
-LAUNCHD = @LAUNCHD@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LD_EXPORT_SYMBOLS_FLAG = @LD_EXPORT_SYMBOLS_FLAG@
LEX = @LEX@
@@ -210,7 +201,10 @@ LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LINUXDOC = @LINUXDOC@
+LIPO = @LIPO@
LN_S = @LN_S@
+LTCOMPILE = @LTCOMPILE@
+LTCXXCOMPILE = @LTCXXCOMPILE@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
@@ -222,8 +216,7 @@ MESA_SOURCE = @MESA_SOURCE@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
MKDIR_P = @MKDIR_P@
-MKFONTDIR = @MKFONTDIR@
-MKFONTSCALE = @MKFONTSCALE@
+NM = @NM@
NMEDIT = @NMEDIT@
OBJC = @OBJC@
OBJCCLD = @OBJCCLD@
@@ -232,8 +225,8 @@ OBJCFLAGS = @OBJCFLAGS@
OBJCLINK = @OBJCLINK@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
-OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
-OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -266,7 +259,6 @@ VENDOR_NAME = @VENDOR_NAME@
VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@
VENDOR_RELEASE = @VENDOR_RELEASE@
VERSION = @VERSION@
-X11APP_ARCHS = @X11APP_ARCHS@
X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@
X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@
XDMCP_CFLAGS = @XDMCP_CFLAGS@
@@ -276,27 +268,12 @@ XDMXCONFIG_DEP_LIBS = @XDMXCONFIG_DEP_LIBS@
XDMX_CFLAGS = @XDMX_CFLAGS@
XDMX_LIBS = @XDMX_LIBS@
XDMX_SYS_LIBS = @XDMX_SYS_LIBS@
-XEGLMODULES_CFLAGS = @XEGLMODULES_CFLAGS@
-XEGL_LIBS = @XEGL_LIBS@
-XEGL_SYS_LIBS = @XEGL_SYS_LIBS@
XEPHYR_CFLAGS = @XEPHYR_CFLAGS@
-XEPHYR_DRI_LIBS = @XEPHYR_DRI_LIBS@
XEPHYR_INCS = @XEPHYR_INCS@
XEPHYR_LIBS = @XEPHYR_LIBS@
XF86CONFIGFILE = @XF86CONFIGFILE@
-XF86MISC_CFLAGS = @XF86MISC_CFLAGS@
-XF86MISC_LIBS = @XF86MISC_LIBS@
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@
-XGLMODULES_CFLAGS = @XGLMODULES_CFLAGS@
-XGLMODULES_LIBS = @XGLMODULES_LIBS@
-XGLXMODULES_CFLAGS = @XGLXMODULES_CFLAGS@
-XGLXMODULES_LIBS = @XGLXMODULES_LIBS@
-XGLX_LIBS = @XGLX_LIBS@
-XGLX_SYS_LIBS = @XGLX_SYS_LIBS@
-XGL_LIBS = @XGL_LIBS@
-XGL_MODULE_PATH = @XGL_MODULE_PATH@
-XGL_SYS_LIBS = @XGL_SYS_LIBS@
XKB_BASE_DIRECTORY = @XKB_BASE_DIRECTORY@
XKB_BIN_DIRECTORY = @XKB_BIN_DIRECTORY@
XKB_COMPILED_DIR = @XKB_COMPILED_DIR@
@@ -307,10 +284,6 @@ XNESTMODULES_CFLAGS = @XNESTMODULES_CFLAGS@
XNESTMODULES_LIBS = @XNESTMODULES_LIBS@
XNEST_LIBS = @XNEST_LIBS@
XNEST_SYS_LIBS = @XNEST_SYS_LIBS@
-XORGCFG_DEP_CFLAGS = @XORGCFG_DEP_CFLAGS@
-XORGCFG_DEP_LIBS = @XORGCFG_DEP_LIBS@
-XORGCONFIG_DEP_CFLAGS = @XORGCONFIG_DEP_CFLAGS@
-XORGCONFIG_DEP_LIBS = @XORGCONFIG_DEP_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_INCS = @XORG_INCS@
XORG_LIBS = @XORG_LIBS@
@@ -319,13 +292,8 @@ XORG_MODULES_LIBS = @XORG_MODULES_LIBS@
XORG_OS = @XORG_OS@
XORG_OS_SUBDIR = @XORG_OS_SUBDIR@
XORG_SYS_LIBS = @XORG_SYS_LIBS@
-XPRINTMODULES_CFLAGS = @XPRINTMODULES_CFLAGS@
-XPRINTMODULES_LIBS = @XPRINTMODULES_LIBS@
-XPRINTPROTO_CFLAGS = @XPRINTPROTO_CFLAGS@
-XPRINTPROTO_LIBS = @XPRINTPROTO_LIBS@
-XPRINT_CFLAGS = @XPRINT_CFLAGS@
-XPRINT_LIBS = @XPRINT_LIBS@
-XPRINT_SYS_LIBS = @XPRINT_SYS_LIBS@
+XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
+XPBPROXY_LIBS = @XPBPROXY_LIBS@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSDL_INCS = @XSDL_INCS@
@@ -358,8 +326,7 @@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -379,7 +346,6 @@ driverdir = @driverdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
extdir = @extdir@
-ft_config = @ft_config@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -389,12 +355,12 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-launchagentsdir = @launchagentsdir@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
logdir = @logdir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
moduledir = @moduledir@
@@ -412,8 +378,6 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xglmoduledir = @xglmoduledir@
-xpconfigdir = @xpconfigdir@
LSB_FIRST = l-xaaBitmap.c l-xaaStipple.c l-xaaTEGlyph.c
LSB_3_FIRST = l3-xaaBitmap.c l3-xaaStipple.c
MSB_FIRST = m-xaaBitmap.c m-xaaStipple.c m-xaaTEGlyph.c
@@ -444,9 +408,9 @@ DISTCLEANFILES = $(POLYSEG) \
sdk_HEADERS = xaa.h xaalocal.h xaarop.h xaaWrapper.h
EXTRA_DIST = xaacexp.h xaawrap.h xaaLine.c xaaDashLine.c \
xaaStipple.c xaaTEGlyph.c xaaNonTEGlyph.c xaaBitmap.c \
- xaaTEGlyphBlt.S XAA.HOWTO
+ XAA.HOWTO
-INCLUDES = $(XORG_INCS)
+INCLUDES = $(XORG_INCS) -I$(srcdir)/../../../miext/cw
AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
all: all-am
@@ -456,8 +420,8 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
@@ -620,7 +584,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
diff --git a/xorg-server/hw/xfree86/xaa/xaa.h b/xorg-server/hw/xfree86/xaa/xaa.h
index 1dc7ed2d5..d6ccc31e2 100644
--- a/xorg-server/hw/xfree86/xaa/xaa.h
+++ b/xorg-server/hw/xfree86/xaa/xaa.h
@@ -2,6 +2,10 @@
#ifndef _XAA_H
#define _XAA_H
+#define XAA_VERSION_MAJOR 1
+#define XAA_VERSION_MINOR 2
+#define XAA_VERSION_RELEASE 1
+
/*
******** OPERATION SPECIFIC FLAGS *********
diff --git a/xorg-server/hw/xfree86/xaa/xaaCpyPlane.c b/xorg-server/hw/xfree86/xaa/xaaCpyPlane.c
index cd9e9d47f..aa4c0407c 100644
--- a/xorg-server/hw/xfree86/xaa/xaaCpyPlane.c
+++ b/xorg-server/hw/xfree86/xaa/xaaCpyPlane.c
@@ -110,12 +110,12 @@ XAACopyPlaneNtoNColorExpand(
int Bpp = pSrc->bitsPerPixel >> 3;
unsigned long mask = TmpBitPlane;
- if(TmpBitPlane < 8) {
+ if(TmpBitPlane < (1 << 8)) {
offset = 0;
- } else if(TmpBitPlane < 16) {
+ } else if(TmpBitPlane < (1 << 16)) {
offset = 1;
mask >>= 8;
- } else if(TmpBitPlane < 24) {
+ } else if(TmpBitPlane < (1 << 24)) {
offset = 2;
mask >>= 16;
} else {
@@ -131,11 +131,9 @@ XAACopyPlaneNtoNColorExpand(
h = height = pbox->y2 - pbox->y1;
pitch = BitmapBytePad(width);
- if(!(data = xalloc(height * pitch)))
+ if(!(data = xcalloc(height, pitch)))
goto ALLOC_FAILED;
- bzero(data, height * pitch);
-
dataPtr = data;
srcPtr = ((pptSrc->y) * srcwidth) + src +
((pptSrc->x) * Bpp) + offset;
diff --git a/xorg-server/hw/xfree86/xaa/xaaInit.c b/xorg-server/hw/xfree86/xaa/xaaInit.c
index 22a35a0a0..8d3833e5a 100644
--- a/xorg-server/hw/xfree86/xaa/xaaInit.c
+++ b/xorg-server/hw/xfree86/xaa/xaaInit.c
@@ -19,6 +19,9 @@
#include "xaawrap.h"
#include "xf86fbman.h"
#include "servermd.h"
+#ifdef COMPOSITE
+#include "cw.h"
+#endif
#define MAX_PREALLOC_MEM 65536 /* MUST be >= 1024 */
@@ -39,9 +42,12 @@ static int XAASetDGAMode(int index, int num, DGADevicePtr devRet);
static void XAAEnableDisableFBAccess (int index, Bool enable);
static Bool XAAChangeWindowAttributes (WindowPtr pWin, unsigned long mask);
-static DevPrivateKey XAAScreenKey = &XAAScreenKey;
-static DevPrivateKey XAAGCKey = &XAAGCKey;
-static DevPrivateKey XAAPixmapKey = &XAAPixmapKey;
+static int XAAScreenKeyIndex;
+static DevPrivateKey XAAScreenKey = &XAAScreenKeyIndex;
+static int XAAGCKeyIndex;
+static DevPrivateKey XAAGCKey = &XAAGCKeyIndex;
+static int XAAPixmapKeyIndex;
+static DevPrivateKey XAAPixmapKey = &XAAPixmapKeyIndex;
DevPrivateKey XAAGetScreenKey(void) {
return XAAScreenKey;
diff --git a/xorg-server/hw/xfree86/xaa/xaaInitAccel.c b/xorg-server/hw/xfree86/xaa/xaaInitAccel.c
index 00483e3ed..3b397dc4a 100644
--- a/xorg-server/hw/xfree86/xaa/xaaInitAccel.c
+++ b/xorg-server/hw/xfree86/xaa/xaaInitAccel.c
@@ -16,8 +16,6 @@
#include "xf86fbman.h"
#include "servermd.h"
-static const OptionInfoRec *XAAAvailableOptions(void *unused);
-
/*
* XAA Config options
*/
@@ -103,7 +101,9 @@ static XF86ModuleVersionInfo xaaVersRec =
MODINFOSTRING1,
MODINFOSTRING2,
XORG_VERSION_CURRENT,
- 1, 2, 0,
+ XAA_VERSION_MAJOR,
+ XAA_VERSION_MINOR,
+ XAA_VERSION_RELEASE,
ABI_CLASS_VIDEODRV, /* requires the video driver ABI */
ABI_VIDEODRV_VERSION,
MOD_CLASS_NONE,
@@ -112,13 +112,6 @@ static XF86ModuleVersionInfo xaaVersRec =
_X_EXPORT XF86ModuleData xaaModuleData = { &xaaVersRec, NULL, NULL };
-/*ARGSUSED*/
-static const OptionInfoRec *
-XAAAvailableOptions(void *unused)
-{
- return (XAAOptions);
-}
-
Bool
XAAInitAccel(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
{
diff --git a/xorg-server/hw/xfree86/xaa/xaaNonTEText.c b/xorg-server/hw/xfree86/xaa/xaaNonTEText.c
index d4661e879..d32c0bbc5 100644
--- a/xorg-server/hw/xfree86/xaa/xaaNonTEText.c
+++ b/xorg-server/hw/xfree86/xaa/xaaNonTEText.c
@@ -291,8 +291,7 @@ PolyGlyphBltAsSingleBitmap (
pitch = (Right - Left + 31) >> 5;
size = (pitch << 2) * (Bottom - Top);
- block = (CARD32*)xalloc(size);
- bzero(block, size);
+ block = xcalloc(1, size);
topLine = 10000; botLine = -10000;
diff --git a/xorg-server/hw/xfree86/xaa/xaaOverlayDF.c b/xorg-server/hw/xfree86/xaa/xaaOverlayDF.c
index 64ca998ee..8db816e1e 100644
--- a/xorg-server/hw/xfree86/xaa/xaaOverlayDF.c
+++ b/xorg-server/hw/xfree86/xaa/xaaOverlayDF.c
@@ -151,7 +151,8 @@ typedef struct {
int (*TiledFillChooser)(GCPtr);
} XAAOverlayRec, *XAAOverlayPtr;
-static DevPrivateKey XAAOverlayKey = &XAAOverlayKey;
+static int XAAOverlayKeyIndex;
+static DevPrivateKey XAAOverlayKey = &XAAOverlayKeyIndex;
#define GET_OVERLAY_PRIV(pScreen) \
(XAAOverlayPtr)dixLookupPrivate(&(pScreen)->devPrivates, XAAOverlayKey)
diff --git a/xorg-server/hw/xfree86/xaa/xaaStateChange.c b/xorg-server/hw/xfree86/xaa/xaaStateChange.c
index 443bda628..57d8aa318 100644
--- a/xorg-server/hw/xfree86/xaa/xaaStateChange.c
+++ b/xorg-server/hw/xfree86/xaa/xaaStateChange.c
@@ -274,7 +274,8 @@ typedef struct _XAAStateWrapRec {
#endif
} XAAStateWrapRec, *XAAStateWrapPtr;
-static DevPrivateKey XAAStateKey = &XAAStateKey;
+static int XAAStateKeyIndex;
+static DevPrivateKey XAAStateKey = &XAAStateKeyIndex;
/* Wrap functions start here */
#define GET_STATEPRIV_GC(pGC) XAAStateWrapPtr pStatePriv =\
diff --git a/xorg-server/hw/xfree86/xaa/xaaTEGlyphBlt.S b/xorg-server/hw/xfree86/xaa/xaaTEGlyphBlt.S
deleted file mode 100644
index 5f3137f45..000000000
--- a/xorg-server/hw/xfree86/xaa/xaaTEGlyphBlt.S
+++ /dev/null
@@ -1,964 +0,0 @@
-/*
- * Copyright 1996 The XFree86 Project
- *
- * 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
- * HARM HANEMAAYER 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.
- *
- * Written by Harm Hanemaayer (H.Hanemaayer@inter.nl.net).
- */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaTEGlyphBlt.S,v 1.1 1999/07/10 07:24:54 dawes Exp $ */
-
-
-/*
- * Intel Pentium-optimized versions of "terminal emulator font" text
- * bitmap transfer routines.
- *
- * SCANLINE_PAD_DWORD.
- *
- * Only for glyphs with a fixed width of 6 pixels or 8 pixels.
- */
-
-#include "assyntax.h"
-
-#ifndef QNX4
- FILE("xaaTEGlyphBlt.s")
-#else
- FILE( __FILE__ )
-#endif
-
- AS_BEGIN
-
-/*
- * Definition of stack frame function arguments.
- * All functions have the same arguments (some don't have glyphwidth,
- * but that's OK, since it comes last and doesn't affect the offset
- * of the other arguments).
- */
-
-#define base_arg REGOFF(20,ESP)
-#define glyphp_arg REGOFF(24,ESP)
-#define line_arg REGOFF(28,ESP)
-#define width_arg REGOFF(32,ESP)
-#define glyphwidth_arg REGOFF(36,ESP)
-
-#define BYTE_REVERSED GLNAME(byte_reversed)
-
-/* I assume %eax and %edx can be trashed. */
-
- SEG_TEXT
-
- ALIGNTEXT4
-
-#ifdef FIXEDBASE
-# ifdef MSBFIRST
- GLOBL GLNAME(DrawTETextScanlineWidth6PMSBFirstFixedBase)
-GLNAME(DrawTETextScanlineWidth6PMSBFirstFixedBase):
-# else
- GLOBL GLNAME(DrawTETextScanlineWidth6PLSBFirstFixedBase)
-GLNAME(DrawTETextScanlineWidth6PLSBFirstFixedBase):
-# endif
-#else
-# ifdef MSBFIRST
- GLOBL GLNAME(DrawTETextScanlineWidth6PMSBFirst)
-GLNAME(DrawTETextScanlineWidth6PMSBFirst):
-# else
- GLOBL GLNAME(DrawTETextScanlineWidth6PLSBFirst)
-GLNAME(DrawTETextScanlineWidth6PLSBFirst):
-# endif
-#endif
-
-/* Definition of stack frame function arguments. */
-
-#define base_arg REGOFF(20,ESP)
-#define glyphp_arg REGOFF(24,ESP)
-#define line_arg REGOFF(28,ESP)
-#define width_arg REGOFF(32,ESP)
-
- SUB_L (CONST(16),ESP)
- MOV_L (EBP,REGOFF(12,ESP)) /* PUSH EBP */
- MOV_L (EBX,REGOFF(8,ESP)) /* PUSH EBX */
- MOV_L (ESI,REGOFF(4,ESP)) /* PUSH ESI */
- MOV_L (EDI,REGOFF(0,ESP)) /* PUSH EDI */
-
- MOV_L (line_arg,EBP)
- MOV_L (base_arg,EDI)
- MOV_L (glyphp_arg,ESI)
-
- ALIGNTEXT4
-
-.L6_1:
- /* Pentium-optimized instruction pairing. */
- /* EBX = bits = glyph[0][line] */
- MOV_L (REGOFF(4,ESI),EDX) /* glyphp[1] */
- MOV_L (REGIND(ESI),EBX) /* glyphp[0] */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[1][line] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[0][line] */
- SAL_L (CONST(6),EDX) /* glyphp[1][line] << 6 */
- MOV_L (REGOFF(8,ESI),ECX) /* glyphp[2] */
- MOV_L (REGOFF(12,ESI),EAX) /* glyphp[3] */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[2][line] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[3][line] */
- SAL_L (CONST(12),ECX) /* glyphp[2][line] << 12 */
- OR_L (EDX,EBX) /* bits |= ..[1].. << 6 */
- SAL_L (CONST(18),EAX) /* glyphp[3][line] << 18 */
- OR_L (ECX,EBX) /* bits |= ..[2].. << 12 */
-
- MOV_L (REGOFF(16,ESI),EDX) /* glyphp[4] */
- MOV_L (REGOFF(20,ESI),ECX) /* glyphp[5] */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[4][line] */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[5][line] */
- SAL_L (CONST(24),EDX) /* glyphp[4][line] << 24 */
- OR_L (EAX,EBX) /* bits |= ..[3].. << 18 */
- SAL_L (CONST(30),ECX) /* glyphp[5][line] << 30 */
- OR_L (EDX,EBX) /* bits |= ..[4].. << 24 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(20,ESI),EAX) /* glyphp[5] */
- OR_L (ECX,EBX) /* bits |= ..[5].. << 30 */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[5][line] */
- MOV_L (EBX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (CONST(0),EAX)
- OR_L (ECX,EBX) /* bits |= ..[5].. << 30 */
- MOV_L (CONST(0),EDX)
- MOV_B (BL,AL)
- MOV_B (BH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),BH)
- ROL_L (CONST(16),EBX)
- MOV_B (BL,AL)
- MOV_B (BH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),BH)
- ROL_L (CONST(16),EBX)
- MOV_L (REGOFF(20,ESI),EAX) /* glyphp[5] */
- MOV_L (EBX,REGIND(EDI))
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[5][line] */
-#endif
-
- CMP_L (CONST(32),width_arg)
- JG (.L6_2)
-#ifndef FIXEDBASE
- ADD_L (CONST(4),EDI) /* base++ */
-#endif
- JMP (.L6_4)
-.L6_2:
- /* Note that glyphp[5][line] is already read again. */
- /* EAX = bits = glyphp[5][line] >> 2 */
- MOV_L (REGOFF(24,ESI),EDX) /* glyphp[6] */
- MOV_L (REGOFF(28,ESI),EBX) /* glyphp[7] */
- SHR_L (CONST(2),EAX) /* glyphp[5][line] >> 2 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[6][line] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[7][line] */
- MOV_L (REGOFF(32,ESI),ECX) /* glyphp[8] */
- SAL_L (CONST(4),EDX) /* glyphp[6][line] << 4 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[8][line] */
- SAL_L (CONST(10),EBX) /* glyphp[7][line] << 10 */
- OR_L (EDX,EAX) /* bits |= ..[6].. << 4 */
- SAL_L (CONST(16),ECX) /* glyphp[8][line] << 16 */
- MOV_L (REGOFF(36,ESI),EDX) /* glyphp[9] */
- OR_L (EBX,EAX) /* bits |= ..[7].. << 10 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[9][line] */
- OR_L (ECX,EAX) /* bits |= ..[8].. << 16 */
- MOV_L (REGOFF(40,ESI),EBX) /* glyphp[10] */
- SAL_L (CONST(22),EDX) /* glyphp[9][line] << 22 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[10][line] */
- OR_L (EDX,EAX) /* bits |= ..[9].. << 22 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(40,ESI),ECX) /* glyphp[10] */
- SAL_L (CONST(28),EBX) /* glyphp[10][line] << 28 */
- MOV_L (REGOFF(44,ESI),EDX) /* glyphp[11] */
- OR_L (EBX,EAX) /* bits |= ..[10].. << 28 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[10][line] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(4,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[11][line] */
-#else
- MOV_L (CONST(0),ECX)
- SAL_L (CONST(28),EBX) /* glyphp[10][line] << 28 */
- MOV_L (CONST(0),EDX)
- OR_L (EBX,EAX) /* bits |= ..[10].. << 28 */
- MOV_B (AL,CL)
- MOV_B (AH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),AH)
- ROL_L (CONST(16),EAX)
- MOV_B (AL,CL)
- MOV_B (AH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),AH)
- MOV_L (REGOFF(40,ESI),ECX) /* glyphp[10] */
- ROL_L (CONST(16),EAX)
- MOV_L (REGOFF(44,ESI),EDX) /* glyphp[11] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(4,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[10][line] */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[11][line] */
-#endif
-
- CMP_L (CONST(64),width_arg)
- JG (.L6_3)
-#ifndef FIXEDBASE
- ADD_L (CONST(8),EDI) /* base+=2 */
-#endif
- JMP (.L6_4)
-.L6_3:
- /* Note that glyphp[10][line] is read again. */
- /* EAX = bits = glyphp[10][line] >> 4 */
- SHR_L (CONST(4),ECX) /* glyphp[10][line] >> 4 */
- MOV_L (REGOFF(48,ESI),EBX) /* glyphp[12] */
- SAL_L (CONST(2),EDX) /* glyphp[11][line] << 2 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[12][line] */
- OR_L (EDX,ECX) /* bits |= ..[11].. << 2 */
- MOV_L (REGOFF(52,ESI),EAX) /* glyphp[13] */
- SAL_L (CONST(8),EBX) /* glyphp[12][line] << 8 */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[13][line] */
- OR_L (EBX,ECX) /* bits |= ..[12].. << 8 */
- MOV_L (REGOFF(56,ESI),EDX) /* glyphp[14] */
- SAL_L (CONST(14),EAX) /* glyphp[13][line] << 14 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[14][line] */
- OR_L (EAX,ECX) /* bits |= ..[13].. << 14 */
- MOV_L (REGOFF(60,ESI),EBX) /* glyphp[15] */
- SAL_L (CONST(20),EDX) /* glyphp[14][line] << 20 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[15][line] */
- OR_L (EDX,ECX) /* bits |= ..[14].. << 20 */
-
-#ifndef MSBFIRST
- SAL_L (CONST(26),EBX) /* glyphp[15][line] << 26 */
- OR_L (EBX,ECX) /* bits |= ..[15].. << 26 */
-#ifndef FIXEDBASE
- MOV_L (ECX,REGOFF(8,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (ECX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),EAX)
- SAL_L (CONST(26),EBX) /* glyphp[15][line] << 26 */
- MOV_L (CONST(0),EDX)
- OR_L (EBX,ECX) /* bits |= ..[15].. << 26 */
- MOV_B (CL,AL)
- MOV_B (CH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),CL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),CH)
- ROL_L (CONST(16),ECX)
- MOV_B (CL,AL)
- MOV_B (CH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),CL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),CH)
- ROL_L (CONST(16),ECX)
-#ifndef FIXEDBASE
- MOV_L (ECX,REGOFF(8,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (ECX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#endif
-
-#ifndef FIXEDBASE
- ADD_L (CONST(12),EDI) /* base += 3*/
-#endif
- CMP_L (CONST(96),width_arg)
- JLE (.L6_4)
- ADD_L (CONST(64),ESI) /* glyphp += 16 */
- SUB_L (CONST(96),width_arg)
- JMP (.L6_1)
-
-.L6_4:
-
-#ifndef FIXEDBASE
- MOV_L (EDI,EAX) /* return base */
-#else
- MOV_L (base_arg,EAX) /* return base */
-#endif
- MOV_L (REGOFF(0,ESP),EDI) /* POPL EDI */
- MOV_L (REGOFF(4,ESP),ESI) /* POPL ESI */
- MOV_L (REGOFF(8,ESP),EBX) /* POPL EBX */
- MOV_L (REGOFF(12,ESP),EBP) /* POPL EBP */
- ADD_L (CONST(16),ESP)
- RET
-
-
- ALIGNTEXT4
-
-#ifdef FIXEDBASE
-# ifdef MSBFIRST
- GLOBL GLNAME(DrawTETextScanlineWidth8PMSBFirstFixedBase)
-GLNAME(DrawTETextScanlineWidth8PMSBFirstFixedBase):
-# else
- GLOBL GLNAME(DrawTETextScanlineWidth8PLSBFirstFixedBase)
-GLNAME(DrawTETextScanlineWidth8PLSBFirstFixedBase):
-# endif
-#else
-# ifdef MSBFIRST
- GLOBL GLNAME(DrawTETextScanlineWidth8PMSBFirst)
-GLNAME(DrawTETextScanlineWidth8PMSBFirst):
-# else
- GLOBL GLNAME(DrawTETextScanlineWidth8PLSBFirst)
-GLNAME(DrawTETextScanlineWidth8PLSBFirst):
-# endif
-#endif
-
- SUB_L (CONST(16),ESP)
- MOV_L (EBP,REGOFF(12,ESP)) /* PUSH EBP */
- MOV_L (EBX,REGOFF(8,ESP)) /* PUSH EBX */
- MOV_L (ESI,REGOFF(4,ESP)) /* PUSH ESI */
- MOV_L (EDI,REGOFF(0,ESP)) /* PUSH EDI */
-
- MOV_L (line_arg,EBP)
- MOV_L (base_arg,EDI)
- MOV_L (glyphp_arg,ESI)
-
- ALIGNTEXT4
-
-.L8_1:
- /* Pentium-optimized instruction pairing. */
- /* EBX = bits */
- MOV_L (REGIND(ESI),EAX) /* glyphp[0] */
- MOV_L (REGOFF(4,ESI),EDX) /* glyphp[1] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[0][line] */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[1][line] */
-#ifdef MSBFIRST
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),BH)
-#else
- MOV_L (EAX,EBX) /* bits = glyph[0][line] */
- MOV_B (DL,BH) /* bits |= ..[1].. << 8 */
-#endif
-
- ROL_L (CONST(16),EBX)
- MOV_L (REGOFF(8,ESI),EAX) /* glyphp[2] */
- MOV_L (REGOFF(12,ESI),ECX) /* glyphp[3] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[2][line] */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[3][line] */
-#ifdef MSBFIRST
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),BH)
-#else
- MOV_B (AL,BL) /* bits |= ..[2].. << 16 */
- MOV_B (CL,BH) /* bits |= ..[3].. << 24 */
-#endif
- ROL_L (CONST(16),EBX)
- MOV_L (EBX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
- CMP_L (CONST(32),width_arg)
-#ifndef FIXEDBASE
- JLE (.L8_2)
-#else
- JLE (.L8_3)
-#endif
-
- MOV_L (REGOFF(16,ESI),EAX) /* glyphp[4] */
- MOV_L (REGOFF(20,ESI),EDX) /* glyphp[5] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[4][line] */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[5][line] */
-#ifdef MSBFIRST
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),BH)
-#else
- MOV_L (EAX,EBX) /* bits = glyph[4][line] */
- MOV_B (DL,BH) /* nits |= ..[5].. << 8 */
-#endif
-
- ROL_L (CONST(16),EBX)
- MOV_L (REGOFF(24,ESI),EAX) /* glyphp[6] */
- MOV_L (REGOFF(28,ESI),ECX) /* glyphp[7] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[6][line] */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[7][line] */
-#ifdef MSBFIRST
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),BH)
-#else
- MOV_B (AL,BL) /* bits |= ..[6].. << 16 */
- MOV_B (CL,BH) /* bits |= ..[7].. << 24 */
-#endif
- ROL_L (CONST(16),EBX)
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(4,EDI)) /* WRITE_IN_BIT_ORDER(base+1, bits) */
- ADD_L (CONST(8),EDI) /* base += 2 */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
- CMP_L (CONST(64),width_arg)
- JLE (.L8_3)
- ADD_L (CONST(32),ESI) /* glyphp += 8 */
- SUB_L (CONST(64),width_arg)
- JMP (.L8_1)
-
-#ifndef FIXEDBASE
-.L8_2:
- ADD_L (CONST(4),EDI) /* base++ */
-.L8_3:
- MOV_L (EDI,EAX) /* return base */
-#else
-.L8_3:
- MOV_L (base_arg,EAX) /* return base */
-#endif
- MOV_L (REGOFF(0,ESP),EDI) /* POPL EDI */
- MOV_L (REGOFF(4,ESP),ESI) /* POPL ESI */
- MOV_L (REGOFF(8,ESP),EBX) /* POPL EBX */
- MOV_L (REGOFF(12,ESP),EBP) /* POPL EBP */
- ADD_L (CONST(16),ESP)
- RET
-
- ALIGNTEXT4
-
-#ifdef FIXEDBASE
-# ifdef MSBFIRST
- GLOBL GLNAME(DrawTETextScanlineWidth9PMSBFirstFixedBase)
-GLNAME(DrawTETextScanlineWidth9PMSBFirstFixedBase):
-# else
- GLOBL GLNAME(DrawTETextScanlineWidth9PLSBFirstFixedBase)
-GLNAME(DrawTETextScanlineWidth9PLSBFirstFixedBase):
-# endif
-#else
-# ifdef MSBFIRST
- GLOBL GLNAME(DrawTETextScanlineWidth9PMSBFirst)
-GLNAME(DrawTETextScanlineWidth9PMSBFirst):
-# else
- GLOBL GLNAME(DrawTETextScanlineWidth9PLSBFirst)
-GLNAME(DrawTETextScanlineWidth9PLSBFirst):
-# endif
-#endif
-
- SUB_L (CONST(16),ESP)
- MOV_L (EBP,REGOFF(12,ESP)) /* PUSH EBP */
- MOV_L (EBX,REGOFF(8,ESP)) /* PUSH EBX */
- MOV_L (ESI,REGOFF(4,ESP)) /* PUSH ESI */
- MOV_L (EDI,REGOFF(0,ESP)) /* PUSH EDI */
-
- MOV_L (line_arg,EBP)
- MOV_L (base_arg,EDI)
- MOV_L (glyphp_arg,ESI)
-
- ALIGNTEXT4
-
-.L9_1:
- /* Pentium-optimized instruction pairing. */
- /* EAX = bits */
- MOV_L (REGOFF(4,ESI),EBX) /* glyphp[1] */
- MOV_L (REGIND(ESI),EAX) /* glyphp[0] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[1][line] */
- MOV_L (REGOFF(8,ESI),ECX) /* glyphp[2] */
- SAL_L (CONST(9),EBX) /* glyphp[1][line] << 9 */
- MOV_L (REGOFF(12,ESI),EDX) /* glyphp[3] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[0][line] */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[3][line] */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[2][line] */
- OR_L (EBX,EAX) /* bits |= ..[1].. << 9 */
- SAL_L (CONST(18),ECX) /* glyphp[2][line] << 18 */
- OR_L (ECX,EAX) /* bits |= ..[2].. << 18 */
- SAL_L (CONST(27),EDX) /* glyphp[3][line << 27 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(12,ESI),EBX) /* glyphp[3] */
- OR_L (EDX,EAX) /* bits |= ..[3].. << 27 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[3][line] */
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (CONST(0),EBX)
- OR_L (EDX,EAX) /* bits |= ..[3].. << 27 */
- MOV_L (CONST(0),ECX)
- MOV_B (AL,BL)
- MOV_B (AH,CL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AH)
- ROL_L (CONST(16),EAX)
- MOV_B (AL,BL)
- MOV_B (AH,CL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AH)
- MOV_L (REGOFF(12,ESI),EBX) /* glyphp[3] */
- ROL_L (CONST(16),EAX)
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[3][line] */
- MOV_L (EAX,REGIND(EDI))
-#endif
-
- CMP_L (CONST(32),width_arg)
- JG (.L9_2)
-#ifndef FIXEDBASE
- ADD_L (CONST(4),EDI) /* base++ */
-#endif
- JMP (.L9_11)
-.L9_2:
- /* Note that glyphp[3][line] is read again. */
- /* EAX = bits, EBX = glyphp[3][line] >> 5 */
- SHR_L (CONST(5),EBX) /* glyphp[3][line] >> 5 */
- MOV_L (REGOFF(16,ESI),EAX) /* glyphp[4] */
- MOV_L (REGOFF(20,ESI),ECX) /* glyphp[5] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[4][line] */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[5][line] */
- MOV_L (REGOFF(24,ESI),EDX) /* glyphp[6] */
- SAL_L (CONST(4),EAX) /* glyphp[4][line] << 4 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[6][line] */
- SAL_L (CONST(13),ECX) /* glyphp[5][line] << 13 */
- OR_L (EBX,EAX) /* bits |= ..[4].. << 4 */
- SAL_L (CONST(22),EDX) /* glyphp[6][line] << 22 */
- MOV_L (REGOFF(28,ESI),EBX) /* glyphp[7] */
- OR_L (ECX,EAX) /* bits |= ..[5].. << 13 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[7][line] */
- OR_L (EDX,EAX) /* bits |= ..[6].. << 22 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(28,ESI),ECX) /* glyphp[7] */
- SAL_L (CONST(31),EBX) /* glyphp[7][line] << 31 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[7][line] */
- OR_L (EBX,EAX) /* bits |= ..[7].. << 31 */
- MOV_L (REGOFF(32,ESI),EDX) /* glyphp[8] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(4,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),ECX)
- SAL_L (CONST(31),EBX) /* glyphp[7][line] << 31 */
- MOV_L (CONST(0),EDX)
- OR_L (EBX,EAX) /* bits |= ..[7].. << 31 */
- MOV_B (AL,CL)
- MOV_B (AH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),AH)
- ROL_L (CONST(16),EAX)
- MOV_B (AL,CL)
- MOV_B (AH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),AH)
- MOV_L (REGOFF(28,ESI),ECX) /* glyphp[7] */
- ROL_L (CONST(16),EAX)
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[7][line] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(4,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
- MOV_L (REGOFF(32,ESI),EDX) /* glyphp[8] */
-#endif
-
- CMP_L (CONST(64),width_arg)
- JG (.L9_3)
-#ifndef FIXEDBASE
- ADD_L (CONST(8),EDI) /* base+=2 */
-#endif
- JMP (.L9_11)
-.L9_3:
-
- /* Note that glyphp[7][line] is read again. */
- /* ECX = bits = glyphp[7][line] >> 1 */
- SHR_L (CONST(1),ECX) /* glyphp[7][line] >> 1 */
- MOV_L (REGOFF(36,ESI),EBX) /* glyphp[9] */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[8][line] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[9][line] */
- SAL_L (CONST(8),EDX) /* glyphp[8][line] << 8 */
- MOV_L (REGOFF(40,ESI),EAX) /* glyphp[10] */
- SAL_L (CONST(17),EBX) /* glyphp[9][line] << 17 */
- OR_L (EDX,ECX) /* bits |= ..[8].. << 8 */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[10][line] */
- OR_L (EBX,ECX) /* bits |= ..[9].. << 17 */
- SAL_L (CONST(26),EAX) /* glyphp[10][line] << 26 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(40,ESI),EDX) /* glyphp[10] */
- OR_L (EAX,ECX) /* bits |= ..[10].. << 26 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[10][line] */
-#ifndef FIXEDBASE
- MOV_L (ECX,REGOFF(8,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (ECX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),EDX)
- OR_L (EAX,ECX) /* bits |= ..[10].. << 26 */
- MOV_L (CONST(0),EBX)
- MOV_B (CL,DL)
- MOV_B (CH,BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),CL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),CH)
- ROL_L (CONST(16),ECX)
- MOV_B (CL,DL)
- MOV_B (CH,BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),CL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),CH)
- MOV_L (REGOFF(40,ESI),EDX) /* glyphp[10] */
- ROL_L (CONST(16),ECX)
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[10][line] */
-#ifndef FIXEDBASE
- MOV_L (ECX,REGOFF(8,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (ECX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#endif
-
- CMP_L (CONST(96),width_arg)
- JG (.L9_4)
-#ifndef FIXEDBASE
- ADD_L (CONST(12),EDI) /* base+=3 */
-#endif
- JMP (.L9_11)
-.L9_4:
- /* Note that glyphp[10][line] is read again. */
- /* EDX = bits = glyphp[10][line] >> 6 */
- SHR_L (CONST(6),EDX) /* glyphp[10][line] >> 6 */
- MOV_L (REGOFF(44,ESI),EBX) /* glyphp[11] */
- MOV_L (REGOFF(48,ESI),EAX) /* glyphp[12] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[11][line] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[12][line] */
- MOV_L (REGOFF(52,ESI),ECX) /* glyphp[13] */
- SAL_L (CONST(3),EBX) /* glyphp[11][line] << 3 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[13][line] */
- SAL_L (CONST(12),EAX) /* glyphp[12][line] << 12 */
- OR_L (EBX,EDX) /* bits |= ..[11].. << 3 */
- SAL_L (CONST(21),ECX) /* glyphp[13][line] << 21 */
- MOV_L (REGOFF(56,ESI),EBX) /* glyphp[14] */
- OR_L (EAX,EDX) /* bits |= ..[12].. << 17 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[14][line] */
- SAL_L (CONST(30),EBX) /* glyphp[14][line] << 30 */
- OR_L (ECX,EDX) /* bits |= ..[13].. << 21 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(56,ESI),EAX) /* glyphp[14] */
- OR_L (EBX,EDX) /* bits |= ..[14].. << 30 */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[14][line] */
-#ifndef FIXEDBASE
- MOV_L (EDX,REGOFF(12,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EDX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),EAX)
- OR_L (EBX,EDX) /* bits |= ..[14].. << 30 */
- MOV_L (CONST(0),ECX)
- MOV_B (DL,AL)
- MOV_B (DH,CL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),DH)
- ROL_L (CONST(16),EDX)
- MOV_B (DL,AL)
- MOV_B (DH,CL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),DH)
- MOV_L (REGOFF(56,ESI),EAX) /* glyphp[14] */
- ROL_L (CONST(16),EDX)
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[14][line] */
-#ifndef FIXEDBASE
- MOV_L (EDX,REGOFF(12,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EDX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#endif
-
- CMP_L (CONST(128),width_arg)
- JG (.L9_5)
-#ifndef FIXEDBASE
- ADD_L (CONST(16),EDI) /* base+=4 */
-#endif
- JMP (.L9_11)
-.L9_5:
- /* Note that glyphp[14][line] is read again. */
- /* EAX = bits = glyphp[14][line] >> 2 */
- SHR_L (CONST(2),EAX) /* glyphp[14][line] >> 2 */
- MOV_L (REGOFF(60,ESI),ECX) /* glyphp[15] */
- MOV_L (REGOFF(64,ESI),EBX) /* glyphp[16] */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[15][line] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[16][line] */
- MOV_L (REGOFF(68,ESI),EDX) /* glyphp[17] */
- SAL_L (CONST(7),ECX) /* glyphp[15][line] << 7 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[17][line] */
- SAL_L (CONST(16),EBX) /* glyphp[16][line] << 16 */
- OR_L (ECX,EAX) /* bits |= ..[15].. << 7 */
- SAL_L (CONST(25),EDX) /* glyphp[17][line] << 25 */
- OR_L (EBX,EAX) /* bits |= ..[16].. << 16 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(68,ESI),ECX) /* glyphp[17] */
- OR_L (EDX,EAX) /* bits |= ..[17].. << 25 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[17][line] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(16,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),ECX)
- OR_L (EDX,EAX) /* bits |= ..[17].. << 25 */
- MOV_L (CONST(0),EBX)
- MOV_B (AL,CL)
- MOV_B (AH,BL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),AH)
- ROL_L (CONST(16),EAX)
- MOV_B (AL,CL)
- MOV_B (AH,BL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),AH)
- MOV_L (REGOFF(68,ESI),ECX) /* glyphp[17] */
- ROL_L (CONST(16),EAX)
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[17][line] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(16,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#endif
-
- CMP_L (CONST(160),width_arg)
- JG (.L9_6)
-#ifndef FIXEDBASE
- ADD_L (CONST(20),EDI) /* base+=5 */
-#endif
- JMP (.L9_11)
-.L9_6:
- /* Note that glyphp[17][line] is read again. */
- /* ECX = bits = glyphp[17][line] >> 7 */
- SHR_L (CONST(7),ECX) /* glyphp[17][line] >> 7 */
- MOV_L (REGOFF(72,ESI),EBX) /* glyphp[18] */
- MOV_L (REGOFF(76,ESI),EAX) /* glyphp[19] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[18][line] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[19][line] */
- MOV_L (REGOFF(80,ESI),EDX) /* glyphp[20] */
- SAL_L (CONST(2),EBX) /* glyphp[18][line] << 2 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[20][line] */
- SAL_L (CONST(11),EAX) /* glyphp[19][line] << 11 */
- OR_L (EBX,ECX) /* bits |= ..[18].. << 2 */
- SAL_L (CONST(20),EDX) /* glyphp[20][line] << 20 */
- MOV_L (REGOFF(84,ESI),EBX) /* glyphp[21] */
- OR_L (EAX,ECX) /* bits |= ..[19].. << 11 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[21][line] */
- OR_L (EDX,ECX) /* bits |= ..[20].. << 20 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(84,ESI),EAX) /* glyphp[21] */
- SAL_L (CONST(29),EBX) /* glyphp[21][line] << 29 */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[21][line] */
- OR_L (EBX,ECX) /* bits |= ..[14].. << 30 */
- MOV_L (REGOFF(88,ESI),EDX) /* glyphp[22] */
-#ifndef FIXEDBASE
- MOV_L (ECX,REGOFF(20,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (ECX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),EAX)
- SAL_L (CONST(29),EBX) /* glyphp[21][line] << 29 */
- MOV_L (CONST(0),EDX)
- OR_L (EBX,ECX) /* bits |= ..[14].. << 30 */
- MOV_B (CL,AL)
- MOV_B (CH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),CL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),CH)
- ROL_L (CONST(16),ECX)
- MOV_B (CL,AL)
- MOV_B (CH,DL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),CL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),CH)
- MOV_L (REGOFF(84,ESI),EAX) /* glyphp[21] */
- ROL_L (CONST(16),ECX)
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[21][line] */
-#ifndef FIXEDBASE
- MOV_L (ECX,REGOFF(20,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (ECX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
- MOV_L (REGOFF(88,ESI),EDX) /* glyphp[22] */
-#endif
-
- CMP_L (CONST(192),width_arg)
- JG (.L9_7)
-#ifndef FIXEDBASE
- ADD_L (CONST(24),EDI) /* base+=6 */
-#endif
- JMP (.L9_11)
-.L9_7:
- /* Note that glyphp[21][line] is read again. */
- /* EAX = bits = glyphp[21][line] >> 3 */
- SHR_L (CONST(3),EAX) /* glyphp[21][line] >> 3 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[22][line] */
- MOV_L (REGOFF(92,ESI),EBX) /* glyphp[23] */
- MOV_L (REGOFF(96,ESI),ECX) /* glyphp[24] */
- SAL_L (CONST(6),EDX) /* glyphp[22][line] << 6 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[23][line] */
- OR_L (EDX,EAX) /* bits |= ..[22].. << 6 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[24][line] */
- SAL_L (CONST(15),EBX) /* glyphp[23][line] << 15 */
- OR_L (EBX,EAX) /* bits |= ..[23].. << 15 */
- SAL_L (CONST(24),ECX) /* glyphp[24][line] << 24 */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(96,ESI),EDX) /* glyphp[24] */
- OR_L (ECX,EAX) /* bits |= ..[24].. << 24 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[24][line] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(24,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),EDX)
- OR_L (ECX,EAX) /* bits |= ..[24].. << 24 */
- MOV_L (CONST(0),EBX)
- MOV_B (AL,DL)
- MOV_B (AH,BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),AH)
- ROL_L (CONST(16),EAX)
- MOV_B (AL,DL)
- MOV_B (AH,BL)
- MOV_B (REGOFF(BYTE_REVERSED,EDX),AL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),AH)
- MOV_L (REGOFF(96,ESI),EDX) /* glyphp[24] */
- ROL_L (CONST(16),EAX)
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[24][line] */
-#ifndef FIXEDBASE
- MOV_L (EAX,REGOFF(24,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EAX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#endif
-
- CMP_L (CONST(224),width_arg)
- JG (.L9_8)
-#ifndef FIXEDBASE
- ADD_L (CONST(28),EDI) /* base+=7 */
-#endif
- JMP (.L9_11)
-.L9_8:
- /* Note that glyphp[24][line] is read again. */
- /* EDX = bits = glyphp[24][line] >> 8 */
-
- SHR_L (CONST(8),EDX) /* glyphp[24][line] >> 8 */
- MOV_L (REGOFF(100,ESI),EAX) /* glyphp[25] */
- MOV_L (REGOFF(104,ESI),EBX) /* glyphp[26] */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[25][line] */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[26][line] */
- MOV_L (REGOFF(108,ESI),ECX) /* glyphp[27] */
- SAL_L (CONST(1),EAX) /* glyphp[25][line] << 1 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[27][line] */
- SAL_L (CONST(10),EBX) /* glyphp[26][line] << 10 */
- OR_L (EAX,EDX) /* bits |= ..[25].. << 1 */
- SAL_L (CONST(19),ECX) /* glyphp[27][line] << 19 */
- OR_L (EBX,EDX) /* bits |= ..[26].. << 10 */
- MOV_L (REGOFF(112,ESI),EAX) /* glyphp[28] */
- OR_L (ECX,EDX) /* bits |= ..[27].. << 19 */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[28][line] */
-
-#ifndef MSBFIRST
- MOV_L (REGOFF(112,ESI),EBX) /* glyphp[28] */
- SAL_L (CONST(28),EAX) /* glyphp[28][line] << 28 */
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[28][line] */
- OR_L (EAX,EDX) /* bits |= ..[28].. << 28 */
- MOV_L (REGOFF(116,ESI),ECX) /* glyphp[29] */
-#ifndef FIXEDBASE
- MOV_L (EDX,REGOFF(28,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EDX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),EBX)
- SAL_L (CONST(28),EAX) /* glyphp[28][line] << 28 */
- MOV_L (CONST(0),ECX)
- OR_L (EAX,EDX) /* bits |= ..[28].. << 28 */
- MOV_B (DL,BL)
- MOV_B (DH,CL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),DH)
- ROL_L (CONST(16),EDX)
- MOV_B (DL,BL)
- MOV_B (DH,CL)
- MOV_B (REGOFF(BYTE_REVERSED,EBX),DL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),DH)
- MOV_L (REGOFF(112,ESI),EBX) /* glyphp[28] */
- ROL_L (CONST(16),EDX)
- MOV_L (REGOFF(116,ESI),ECX) /* glyphp[29] */
-#ifndef FIXEDBASE
- MOV_L (EDX,REGOFF(28,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EDX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
- MOV_L (REGBISD(EBX,EBP,4,0),EBX) /* glyphp[28][line] */
-#endif
-
- CMP_L (CONST(256),width_arg)
- JG (.L9_9)
-#ifndef FIXEDBASE
- ADD_L (CONST(32),EDI) /* base+=8 */
-#endif
- JMP (.L9_11)
-.L9_9:
- /* Note that glyphp[28][line] is read again. */
- /* EBX = bits = glyphp[28][line] >> 4 */
- SHR_L (CONST(4),EBX) /* glyphp[28][line] >> 4 */
- MOV_L (REGBISD(ECX,EBP,4,0),ECX) /* glyphp[29][line] */
- MOV_L (REGOFF(120,ESI),EAX) /* glyphp[30] */
- MOV_L (REGOFF(124,ESI),EDX) /* glyphp[31] */
- SAL_L (CONST(5),ECX) /* glyphp[29][line] << 5 */
- MOV_L (REGBISD(EAX,EBP,4,0),EAX) /* glyphp[30][line] */
- OR_L (ECX,EBX) /* bits |= ..[29].. << 5 */
- MOV_L (REGBISD(EDX,EBP,4,0),EDX) /* glyphp[31][line] */
- SAL_L (CONST(14),EAX) /* glyphp[30][line] << 14 */
- ADD_L (CONST(128),ESI) /* glyphp+=32 */
- SAL_L (CONST(23),EDX) /* glyphp[31][line] << 23 */
- OR_L (EAX,EBX) /* bits |= ..[30].. << 14 */
- SUB_L (CONST(288),width_arg) /* width-=288 */
- OR_L (EDX,EBX) /* bits |= ..[31].. << 23 */
-
-#ifndef MSBFIRST
-#ifndef FIXEDBASE
- MOV_L (EBX,REGOFF(32,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EBX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#else
- MOV_L (CONST(0),ECX)
- MOV_L (CONST(0),EAX)
- MOV_B (BL,CL)
- MOV_B (BH,AL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BH)
- ROL_L (CONST(16),EBX)
- MOV_B (BL,CL)
- MOV_B (BH,AL)
- MOV_B (REGOFF(BYTE_REVERSED,ECX),BL)
- MOV_B (REGOFF(BYTE_REVERSED,EAX),BH)
- ROL_L (CONST(16),EBX)
-#ifndef FIXEDBASE
- MOV_L (EBX,REGOFF(32,EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#else
- MOV_L (EBX,REGIND(EDI)) /* WRITE_IN_BIT_ORDER(base, bits) */
-#endif
-#endif
-
- ADD_L (CONST(36),EDI) /* base+=9 */
- CMP_L (CONST(0),width_arg)
- JG (.L9_1)
-
-.L9_11:
-#ifndef FIXEDBASE
- MOV_L (EDI,EAX) /* return base */
-#else
- MOV_L (base_arg,EAX) /* return base */
-#endif
- MOV_L (REGOFF(0,ESP),EDI) /* POPL EDI */
- MOV_L (REGOFF(4,ESP),ESI) /* POPL ESI */
- MOV_L (REGOFF(8,ESP),EBX) /* POPL EBX */
- MOV_L (REGOFF(12,ESP),EBP) /* POPL EBP */
- ADD_L (CONST(16),ESP)
- RET
diff --git a/xorg-server/hw/xfree86/xaa/xaaWrapper.c b/xorg-server/hw/xfree86/xaa/xaaWrapper.c
index 5d6ea05cf..88418946f 100644
--- a/xorg-server/hw/xfree86/xaa/xaaWrapper.c
+++ b/xorg-server/hw/xfree86/xaa/xaaWrapper.c
@@ -129,8 +129,10 @@ typedef struct _xaaWrapperGCPriv {
#define xaaWrapperGCPriv(pGC) xaaWrapperGCPrivPtr pGCPriv = xaaWrapperGetGCPriv(pGC)
-static DevPrivateKey xaaWrapperScrPrivateKey = &xaaWrapperScrPrivateKey;
-static DevPrivateKey xaaWrapperGCPrivateKey = &xaaWrapperGCPrivateKey;
+static int xaaWrapperScrPrivateKeyIndex;
+static DevPrivateKey xaaWrapperScrPrivateKey = &xaaWrapperScrPrivateKeyIndex;
+static int xaaWrapperGCPrivateKeyIndex;
+static DevPrivateKey xaaWrapperGCPrivateKey = &xaaWrapperGCPrivateKeyIndex;
static Bool
xaaWrapperCreateScreenResources(ScreenPtr pScreen)
diff --git a/xorg-server/hw/xfree86/xaa/xaalocal.h b/xorg-server/hw/xfree86/xaa/xaalocal.h
index e25b9df52..69a59050c 100644
--- a/xorg-server/hw/xfree86/xaa/xaalocal.h
+++ b/xorg-server/hw/xfree86/xaa/xaalocal.h
@@ -1051,6 +1051,10 @@ StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirstFixedBase(void);
StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirst(void);
StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirstFixedBase(void);
StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirst(void);
+StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirstFixedBase(void);
+StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirst(void);
+StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirstFixedBase(void);
+StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirst(void);
int
XAAPolyText8TEColorExpansion(
diff --git a/xorg-server/hw/xfree86/xaa/xaawrap.h b/xorg-server/hw/xfree86/xaa/xaawrap.h
index 38c97d70b..857dbc3ed 100644
--- a/xorg-server/hw/xfree86/xaa/xaawrap.h
+++ b/xorg-server/hw/xfree86/xaa/xaawrap.h
@@ -48,8 +48,8 @@
XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\
GCFuncs *oldFuncs = pGC->funcs;\
pGC->funcs = pGCPriv->wrapFuncs;\
- pGC->ops = pGCPriv->wrapOps
-
+ pGC->ops = pGCPriv->wrapOps; \
+ SYNC_CHECK(pGC)
#define XAA_PIXMAP_OP_EPILOGUE(pGC)\
pGCPriv->wrapOps = pGC->ops;\