summaryrefslogtreecommitdiffstats
path: root/src/mesa/x86/3dnow.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/x86/3dnow.c')
-rw-r--r--src/mesa/x86/3dnow.c131
1 files changed, 61 insertions, 70 deletions
diff --git a/src/mesa/x86/3dnow.c b/src/mesa/x86/3dnow.c
index b6ef3739361..821a33d76cd 100644
--- a/src/mesa/x86/3dnow.c
+++ b/src/mesa/x86/3dnow.c
@@ -1,4 +1,4 @@
-/* $Id: 3dnow.c,v 1.17 2001/03/28 20:44:43 gareth Exp $ */
+/* $Id: 3dnow.c,v 1.18 2001/03/29 06:46:15 gareth Exp $ */
/*
* Mesa 3-D graphics library
@@ -51,31 +51,31 @@
const GLubyte flag
-#define DECLARE_XFORM_GROUP( pfx, sz, masked ) \
-extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_general_##masked( XFORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_identity_##masked( XFORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_3d_no_rot_##masked( XFORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_perspective_##masked( XFORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_2d_##masked( XFORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_2d_no_rot_##masked( XFORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_3d_##masked( XFORM_ARGS );
+#define DECLARE_XFORM_GROUP( pfx, sz ) \
+extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_general( XFORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_identity( XFORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_3d_no_rot( XFORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_perspective( XFORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_2d( XFORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_2d_no_rot( XFORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_3d( XFORM_ARGS );
-#define ASSIGN_XFORM_GROUP( pfx, cma, sz, masked ) \
- _mesa_transform_tab[cma][sz][MATRIX_GENERAL] = \
- _mesa_##pfx##_transform_points##sz##_general_##masked; \
- _mesa_transform_tab[cma][sz][MATRIX_IDENTITY] = \
- _mesa_##pfx##_transform_points##sz##_identity_##masked; \
- _mesa_transform_tab[cma][sz][MATRIX_3D_NO_ROT] = \
- _mesa_##pfx##_transform_points##sz##_3d_no_rot_##masked; \
- _mesa_transform_tab[cma][sz][MATRIX_PERSPECTIVE] = \
- _mesa_##pfx##_transform_points##sz##_perspective_##masked; \
- _mesa_transform_tab[cma][sz][MATRIX_2D] = \
- _mesa_##pfx##_transform_points##sz##_2d_##masked; \
- _mesa_transform_tab[cma][sz][MATRIX_2D_NO_ROT] = \
- _mesa_##pfx##_transform_points##sz##_2d_no_rot_##masked; \
- _mesa_transform_tab[cma][sz][MATRIX_3D] = \
- _mesa_##pfx##_transform_points##sz##_3d_##masked;
+#define ASSIGN_XFORM_GROUP( pfx, sz ) \
+ _mesa_transform_tab[0][sz][MATRIX_GENERAL] = \
+ _mesa_##pfx##_transform_points##sz##_general; \
+ _mesa_transform_tab[0][sz][MATRIX_IDENTITY] = \
+ _mesa_##pfx##_transform_points##sz##_identity; \
+ _mesa_transform_tab[0][sz][MATRIX_3D_NO_ROT] = \
+ _mesa_##pfx##_transform_points##sz##_3d_no_rot; \
+ _mesa_transform_tab[0][sz][MATRIX_PERSPECTIVE] = \
+ _mesa_##pfx##_transform_points##sz##_perspective; \
+ _mesa_transform_tab[0][sz][MATRIX_2D] = \
+ _mesa_##pfx##_transform_points##sz##_2d; \
+ _mesa_transform_tab[0][sz][MATRIX_2D_NO_ROT] = \
+ _mesa_##pfx##_transform_points##sz##_2d_no_rot; \
+ _mesa_transform_tab[0][sz][MATRIX_3D] = \
+ _mesa_##pfx##_transform_points##sz##_3d;
@@ -87,47 +87,42 @@ extern void _ASMAPI _mesa_##pfx##_transform_points##sz##_3d_##masked( XFORM_ARGS
GLvector3f *dest
-#define DECLARE_NORM_GROUP( pfx, masked ) \
-extern void _ASMAPI _mesa_##pfx##_rescale_normals_##masked( NORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_normalize_normals_##masked( NORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_normals_##masked( NORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_normals_no_rot_##masked( NORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_rescale_normals_##masked( NORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_rescale_normals_no_rot_##masked( NORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_normalize_normals_##masked( NORM_ARGS ); \
-extern void _ASMAPI _mesa_##pfx##_transform_normalize_normals_no_rot_##masked( NORM_ARGS );
-
-
-#define ASSIGN_NORM_GROUP( pfx, cma, masked ) \
- _mesa_normal_tab[NORM_RESCALE][cma] = \
- _mesa_##pfx##_rescale_normals_##masked; \
- _mesa_normal_tab[NORM_NORMALIZE][cma] = \
- _mesa_##pfx##_normalize_normals_##masked; \
- _mesa_normal_tab[NORM_TRANSFORM][cma] = \
- _mesa_##pfx##_transform_normals_##masked; \
- _mesa_normal_tab[NORM_TRANSFORM_NO_ROT][cma] = \
- _mesa_##pfx##_transform_normals_no_rot_##masked; \
- _mesa_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] = \
- _mesa_##pfx##_transform_rescale_normals_##masked; \
- _mesa_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] = \
- _mesa_##pfx##_transform_rescale_normals_no_rot_##masked; \
- _mesa_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] = \
- _mesa_##pfx##_transform_normalize_normals_##masked; \
- _mesa_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] = \
- _mesa_##pfx##_transform_normalize_normals_no_rot_##masked;
+#define DECLARE_NORM_GROUP( pfx ) \
+extern void _ASMAPI _mesa_##pfx##_rescale_normals( NORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_normalize_normals( NORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_normals( NORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_normals_no_rot( NORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_rescale_normals( NORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_rescale_normals_no_rot( NORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_normalize_normals( NORM_ARGS ); \
+extern void _ASMAPI _mesa_##pfx##_transform_normalize_normals_no_rot( NORM_ARGS );
+
+
+#define ASSIGN_NORM_GROUP( pfx ) \
+ _mesa_normal_tab[NORM_RESCALE][0] = \
+ _mesa_##pfx##_rescale_normals; \
+ _mesa_normal_tab[NORM_NORMALIZE][0] = \
+ _mesa_##pfx##_normalize_normals; \
+ _mesa_normal_tab[NORM_TRANSFORM][0] = \
+ _mesa_##pfx##_transform_normals; \
+ _mesa_normal_tab[NORM_TRANSFORM_NO_ROT][0] = \
+ _mesa_##pfx##_transform_normals_no_rot; \
+ _mesa_normal_tab[NORM_TRANSFORM|NORM_RESCALE][0] = \
+ _mesa_##pfx##_transform_rescale_normals; \
+ _mesa_normal_tab[NORM_TRANSFORM_NO_ROT|NORM_RESCALE][0] = \
+ _mesa_##pfx##_transform_rescale_normals_no_rot; \
+ _mesa_normal_tab[NORM_TRANSFORM|NORM_NORMALIZE][0] = \
+ _mesa_##pfx##_transform_normalize_normals; \
+ _mesa_normal_tab[NORM_TRANSFORM_NO_ROT|NORM_NORMALIZE][0] = \
+ _mesa_##pfx##_transform_normalize_normals_no_rot;
#ifdef USE_3DNOW_ASM
-DECLARE_XFORM_GROUP( 3dnow, 2, raw )
-DECLARE_XFORM_GROUP( 3dnow, 3, raw )
-DECLARE_XFORM_GROUP( 3dnow, 4, raw )
+DECLARE_XFORM_GROUP( 3dnow, 2 )
+DECLARE_XFORM_GROUP( 3dnow, 3 )
+DECLARE_XFORM_GROUP( 3dnow, 4 )
-DECLARE_XFORM_GROUP( 3dnow, 2, masked )
-DECLARE_XFORM_GROUP( 3dnow, 3, masked )
-DECLARE_XFORM_GROUP( 3dnow, 4, masked )
-
-DECLARE_NORM_GROUP( 3dnow, raw )
-/*DECLARE_NORM_GROUP( 3dnow, masked )*/
+DECLARE_NORM_GROUP( 3dnow )
extern void _ASMAPI
@@ -155,16 +150,11 @@ _mesa_3dnow_project_clipped_vertices( GLfloat *first,
void _mesa_init_3dnow_transform_asm( void )
{
#ifdef USE_3DNOW_ASM
- ASSIGN_XFORM_GROUP( 3dnow, 0, 2, raw );
- ASSIGN_XFORM_GROUP( 3dnow, 0, 3, raw );
- ASSIGN_XFORM_GROUP( 3dnow, 0, 4, raw );
-
-/* ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 2, masked ); */
-/* ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 3, masked ); */
-/* ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 4, masked ); */
+ ASSIGN_XFORM_GROUP( 3dnow, 2 );
+ ASSIGN_XFORM_GROUP( 3dnow, 3 );
+ ASSIGN_XFORM_GROUP( 3dnow, 4 );
- ASSIGN_NORM_GROUP( 3dnow, 0, raw );
-/* ASSIGN_NORM_GROUP( 3dnow, CULL_MASK_ACTIVE, masked ); */
+ ASSIGN_NORM_GROUP( 3dnow );
#ifdef DEBUG
_math_test_all_transform_functions( "3DNow!" );
@@ -177,6 +167,7 @@ void _mesa_init_3dnow_vertex_asm( void )
{
#ifdef USE_3DNOW_ASM
_mesa_xform_points3_v16_general = _mesa_v16_3dnow_general_xform;
+
_mesa_project_v16 = _mesa_3dnow_project_vertices;
_mesa_project_clipped_v16 = _mesa_3dnow_project_clipped_vertices;