Browse Source

x86 assembly dispatch

tags/mesa_3_3
Josh Vanderhoof 25 years ago
parent
commit
efe03ae1af
4 changed files with 4047 additions and 42 deletions
  1. 19
    19
      Make-config
  2. 27
    22
      src/mesa/glapi/glapi.c
  3. 16
    1
      src/mesa/glapi/glapioffsets.h
  4. 3985
    0
      src/mesa/x86/glapi_x86.S

+ 19
- 19
Make-config View File

@@ -1,4 +1,4 @@
# $Id: Make-config,v 1.16 2000/01/13 00:44:37 brianp Exp $
# $Id: Make-config,v 1.17 2000/01/16 07:26:35 joshv Exp $

MESA_MAJOR=3
MESA_MINOR=3
@@ -197,7 +197,7 @@ freebsd-386:
"CFLAGS = -O3 -ffast-math -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100 -DUSE_X86_ASM -DFREEBSD" \
"MAKELIB = ../bin/mklib.freebsd" \
"XLIBS = -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S"

gcc:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -471,7 +471,7 @@ linux-386:
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

linux-386-static:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -483,7 +483,7 @@ linux-386-static:
"CFLAGS = -O2 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

linux-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -506,7 +506,7 @@ linux-386-glide:
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_XSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

linux-386-opt-V2-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -518,7 +518,7 @@ linux-386-opt-V2-glide:
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DFX_V2 -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include"\
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

linux-386-opt-glide:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -530,7 +530,7 @@ linux-386-opt-glide:
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

linux-3dnow:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -542,7 +542,7 @@ linux-3dnow:
"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
@@ -560,7 +560,7 @@ linux-3dnow-glide:
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_XSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
@@ -579,7 +579,7 @@ linux-katmai:
"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -I/usr/X11R6/include" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
@@ -603,7 +603,7 @@ linux-katmai-glide:
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -DUSE_XSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \
@@ -641,7 +641,7 @@ linux-386-ggi:
"CFLAGS = -O3 -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -DGGI -DCDECL=" \
"MAKELIB = ../bin/mklib.ggi" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lggi -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

# Linux on Alpha (based on email from John Ferguson ferguson@viz.tamu.edu)
linux-alpha:
@@ -704,7 +704,7 @@ linux-386-pthread:
"CFLAGS = -O3 -fPIC -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/us\r/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lpthread -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

# Contributed by C. Alex. North-Keys (erlkonig@talisman.org)
linux-386-pthread-glide:
@@ -716,7 +716,7 @@ linux-386-pthread-glide:
"CFLAGS = -O3 -fPIC -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS -DFX -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.glide" \
"XLIBS = -L/usr/X11/lib -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lpthread -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S X86/vertex.S"

linux-sparc:
@@ -862,7 +862,7 @@ os2-x11:
"CFLAGS = -Zmt -O3 -m486 -funroll-loops -Wall -Wno-unused -ansi -pedantic -ffast-math -DUSE_X86_ASM -D_SVID_SOURCE -D_BSD_SOURCE -I$(X11ROOT)/XFree86/include" \
"MAKELIB = ..\\bin\\mklib-emx.cmd " \
"XLIBS = -Zmt -Zcrtdll -Zexe -L$(X11ROOT)/XFree86/lib -lXt -lX11 -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

osf1:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -1271,7 +1271,7 @@ linux-static-debug:
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -DUSE_XSHM -DDEBUG -DSVGA -DFX -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM_not -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"XLIBS = -L/usr/local/glide/lib -lglide2x -ltexus -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lvga -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

linux-elf-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -1283,7 +1283,7 @@ linux-elf-debug:
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DTHREADS -DPTHREADS -DDEBUG" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lvga -lm -lpthread" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

linux-glide-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -1295,7 +1295,7 @@ linux-glide-debug:
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DTHREADS -DPTHREADS -DFX -DDEBUG -I/usr/local/glide/include -I/usr/include/glide" \
"MAKELIB = ../bin/mklib.linux" \
"XLIBS = -L/usr/local/glide/lib -lglide2x -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lvga -lm -lpthread" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S"
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S"

# for profiling on Linux systems
linux-prof:
@@ -1308,7 +1308,7 @@ linux-prof:
"CFLAGS = -O2 -pg -ansi -pedantic -Wall -DUSE_XSHM -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -I/usr/include/glide -I/usr/local/glide/include" \
"MAKELIB = ../bin/mklib.ar-ruv" \
"XLIBS = -L/usr/local/glide/lib -lglide2x -L/usr/X11/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \
"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \
X86/mmx_blend.S \
X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \
X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \

+ 27
- 22
src/mesa/glapi/glapi.c View File

@@ -1,4 +1,4 @@
/* $Id: glapi.c,v 1.23 2000/01/14 16:35:25 brianp Exp $ */
/* $Id: glapi.c,v 1.24 2000/01/16 07:26:35 joshv Exp $ */

/*
* Mesa 3-D graphics library
@@ -47,7 +47,7 @@


/* This is used when thread safety is disabled */
static struct _glapi_table *Dispatch = &__glapi_noop_table;
struct _glapi_table *_mesa_Dispatch = &__glapi_noop_table;

/* Used when thread safety disabled */
void *_glapi_CurrentContext = NULL;
@@ -177,11 +177,11 @@ _glapi_set_dispatch(struct _glapi_table *dispatch)
#if defined(THREADS)
_glthread_SetTSD(&DispatchTSD, (void*) dispatch, dispatch_thread_init);
if (ThreadSafe)
Dispatch = NULL; /* to help with debugging */
_mesa_Dispatch = NULL; /* to help with debugging */
else
Dispatch = dispatch;
_mesa_Dispatch = dispatch;
#else
Dispatch = dispatch;
_mesa_Dispatch = dispatch;
#endif
}

@@ -198,11 +198,11 @@ _glapi_get_dispatch(void)
return (struct _glapi_table *) _glthread_GetTSD(&DispatchTSD);
}
else {
assert(Dispatch);
return Dispatch;
assert(_mesa_Dispatch);
return _mesa_Dispatch;
}
#else
return Dispatch;
return _mesa_Dispatch;
#endif
}

@@ -517,28 +517,28 @@ trace(void)
return trace > 0;
}

#define DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = Dispatch ? Dispatch : _glapi_get_dispatch(); \
if (trace()) printf MESSAGE; \
#define DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = _mesa_Dispatch ? _mesa_Dispatch : _glapi_get_dispatch(); \
if (trace()) printf MESSAGE; \
(dispatch->FUNC) ARGS

#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = Dispatch ? Dispatch : _glapi_get_dispatch(); \
if (trace()) printf MESSAGE; \
#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = _mesa_Dispatch ? _mesa_Dispatch : _glapi_get_dispatch(); \
if (trace()) printf MESSAGE; \
return (dispatch->FUNC) ARGS

#else

#define DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = Dispatch ? Dispatch : _glapi_get_dispatch(); \
#define DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = _mesa_Dispatch ? _mesa_Dispatch : _glapi_get_dispatch(); \
(dispatch->FUNC) ARGS

#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = Dispatch ? Dispatch : _glapi_get_dispatch(); \
#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
const struct _glapi_table *dispatch; \
dispatch = _mesa_Dispatch ? _mesa_Dispatch : _glapi_get_dispatch(); \
return (dispatch->FUNC) ARGS

#endif
@@ -548,6 +548,11 @@ trace(void)
#define GLAPIENTRY
#endif

#if defined(USE_X86_ASM) && !defined(__WIN32__)
#undef NAME
#define NAME(func) _mesa_fallback_##func
#endif

#include "glapitemp.h"



+ 16
- 1
src/mesa/glapi/glapioffsets.h View File

@@ -1,4 +1,4 @@
/* $Id: glapioffsets.h,v 1.1 1999/12/16 12:35:18 brianp Exp $ */
/* $Id: glapioffsets.h,v 1.2 2000/01/16 07:26:35 joshv Exp $ */

/*
* Mesa 3-D graphics library
@@ -780,6 +780,21 @@

/* 100. GLU_EXT_nurbs_tessellator - GLU functions */

/* 173. GL_EXT/INGR_blend_func_separate */
#define _gloffset_BlendFuncSeparateINGR (_EXTBASE + 107)

/* GL_MESA_window_pos */
#define _gloffset_WindowPos4fMESA (_EXTBASE + 108)

/* GL_MESA_resize_buffers */
#define _gloffset_ResizeBuffersMESA (_EXTBASE + 109)

/* GL_ARB_transpose_matrix */
#define _gloffset_LoadTransposeMatrixdARB (_EXTBASE + 110)
#define _gloffset_LoadTransposeMatrixfARB (_EXTBASE + 111)
#define _gloffset_MultTransposeMatrixdARB (_EXTBASE + 112)
#define _gloffset_MultTransposeMatrixfARB (_EXTBASE + 113)



#endif

+ 3985
- 0
src/mesa/x86/glapi_x86.S
File diff suppressed because it is too large
View File


Loading…
Cancel
Save