diff options
author | Kendall Bennett <[email protected]> | 1999-11-12 04:56:54 +0000 |
---|---|---|
committer | Kendall Bennett <[email protected]> | 1999-11-12 04:56:54 +0000 |
commit | e312cf26ea1ae0445926df20c43e80363d453cb5 (patch) | |
tree | 6e13b3e4f76081cc0edc61e5941b1b140c771e3a /src/mesa/x86/3dnow.c | |
parent | b95d252c347e14825cd61b28223040cfc5d0e7de (diff) |
. Updates to get X86, MXX and 3DNow assembler code working with Watcom
C++ and NASM. This includes lots of _ASMAPI macros to ensure that
assembler functions are prototyped as __cdecl, as Watcom C++ uses
register calling conventions by default.
. Misc fixes to files to remove warnings generated by Watcom C++.
Diffstat (limited to 'src/mesa/x86/3dnow.c')
-rw-r--r-- | src/mesa/x86/3dnow.c | 115 |
1 files changed, 57 insertions, 58 deletions
diff --git a/src/mesa/x86/3dnow.c b/src/mesa/x86/3dnow.c index 212b6bffa5b..a32815bf625 100644 --- a/src/mesa/x86/3dnow.c +++ b/src/mesa/x86/3dnow.c @@ -1,4 +1,4 @@ -/* $Id: 3dnow.c,v 1.2 1999/10/19 18:37:06 keithw Exp $ */ +/* $Id: 3dnow.c,v 1.3 1999/11/12 04:57:22 kendallb Exp $ */ /* * Mesa 3-D graphics library @@ -29,7 +29,7 @@ * 3DNow! optimizations contributed by * Holger Waechtler <[email protected]> */ -#if defined(USE_3DNOW_ASM) +#if defined(USE_3DNOW_ASM) && defined(USE_X86_ASM) #include "3dnow.h" #include <limits.h> @@ -58,31 +58,31 @@ #define DECLARE_XFORM_GROUP(pfx, v, masked) \ - extern void gl_##pfx##_transform_points##v##_general_##masked(XFORM_ARGS); \ - extern void gl_##pfx##_transform_points##v##_identity_##masked(XFORM_ARGS); \ - extern void gl_##pfx##_transform_points##v##_3d_no_rot_##masked(XFORM_ARGS); \ - extern void gl_##pfx##_transform_points##v##_perspective_##masked(XFORM_ARGS);\ - extern void gl_##pfx##_transform_points##v##_2d_##masked(XFORM_ARGS); \ - extern void gl_##pfx##_transform_points##v##_2d_no_rot_##masked(XFORM_ARGS); \ - extern void gl_##pfx##_transform_points##v##_3d_##masked(XFORM_ARGS); + extern void _ASMAPI gl##pfx##_transform_points##v##_general_##masked(XFORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_points##v##_identity_##masked(XFORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_points##v##_3d_no_rot_##masked(XFORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_points##v##_perspective_##masked(XFORM_ARGS);\ + extern void _ASMAPI gl##pfx##_transform_points##v##_2d_##masked(XFORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_points##v##_2d_no_rot_##masked(XFORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_points##v##_3d_##masked(XFORM_ARGS); #define ASSIGN_XFORM_GROUP( pfx, cma, vsize, masked ) \ gl_transform_tab[cma][vsize][MATRIX_GENERAL] \ - = gl_##pfx##_transform_points##vsize##_general_##masked; \ + = gl##pfx##_transform_points##vsize##_general_##masked; \ gl_transform_tab[cma][vsize][MATRIX_IDENTITY] \ - = gl_##pfx##_transform_points##vsize##_identity_##masked; \ + = gl##pfx##_transform_points##vsize##_identity_##masked; \ gl_transform_tab[cma][vsize][MATRIX_3D_NO_ROT] \ - = gl_##pfx##_transform_points##vsize##_3d_no_rot_##masked; \ + = gl##pfx##_transform_points##vsize##_3d_no_rot_##masked; \ gl_transform_tab[cma][vsize][MATRIX_PERSPECTIVE] \ - = gl_##pfx##_transform_points##vsize##_perspective_##masked; \ + = gl##pfx##_transform_points##vsize##_perspective_##masked; \ gl_transform_tab[cma][vsize][MATRIX_2D] \ - = gl_##pfx##_transform_points##vsize##_2d_##masked; \ + = gl##pfx##_transform_points##vsize##_2d_##masked; \ gl_transform_tab[cma][vsize][MATRIX_2D_NO_ROT] \ - = gl_##pfx##_transform_points##vsize##_2d_no_rot_##masked; \ + = gl##pfx##_transform_points##vsize##_2d_no_rot_##masked; \ gl_transform_tab[cma][vsize][MATRIX_3D] \ - = gl_##pfx##_transform_points##vsize##_3d_##masked; + = gl##pfx##_transform_points##vsize##_3d_##masked; @@ -97,48 +97,48 @@ #define DECLARE_NORM_GROUP(pfx, masked) \ - extern void gl_##pfx##_rescale_normals_##masked## (NORM_ARGS); \ - extern void gl_##pfx##_normalize_normals_##masked## (NORM_ARGS); \ - extern void gl_##pfx##_transform_normals_##masked## (NORM_ARGS); \ - extern void gl_##pfx##_transform_normals_no_rot_##masked## (NORM_ARGS); \ - extern void gl_##pfx##_transform_rescale_normals_##masked## (NORM_ARGS); \ - extern void gl_##pfx##_transform_rescale_normals_no_rot_##masked## (NORM_ARGS); \ - extern void gl_##pfx##_transform_normalize_normals_##masked## (NORM_ARGS); \ - extern void gl_##pfx##_transform_normalize_normals_no_rot_##masked## (NORM_ARGS); + extern void _ASMAPI gl##pfx##_rescale_normals_##masked## (NORM_ARGS); \ + extern void _ASMAPI gl##pfx##_normalize_normals_##masked## (NORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_normals_##masked## (NORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_normals_no_rot_##masked## (NORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_rescale_normals_##masked## (NORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_rescale_normals_no_rot_##masked## (NORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_normalize_normals_##masked## (NORM_ARGS); \ + extern void _ASMAPI gl##pfx##_transform_normalize_normals_no_rot_##masked## (NORM_ARGS); #define ASSIGN_NORM_GROUP( pfx, cma, masked ) \ gl_normal_tab[NORM_RESCALE][cma] = \ - gl_##pfx##_rescale_normals_##masked##; \ + gl##pfx##_rescale_normals_##masked##; \ gl_normal_tab[NORM_NORMALIZE][cma] = \ - gl_##pfx##_normalize_normals_##masked##; \ + gl##pfx##_normalize_normals_##masked##; \ gl_normal_tab[NORM_TRANSFORM][cma] = \ - gl_##pfx##_transform_normals_##masked##; \ + gl##pfx##_transform_normals_##masked##; \ gl_normal_tab[NORM_TRANSFORM_NO_ROT][cma] = \ - gl_##pfx##_transform_normals_no_rot_##masked##; \ + gl##pfx##_transform_normals_no_rot_##masked##; \ gl_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] = \ - gl_##pfx##_transform_rescale_normals_##masked##; \ + gl##pfx##_transform_rescale_normals_##masked##; \ gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] = \ - gl_##pfx##_transform_rescale_normals_no_rot_##masked##; \ + gl##pfx##_transform_rescale_normals_no_rot_##masked##; \ gl_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] = \ - gl_##pfx##_transform_normalize_normals_##masked##; \ + gl##pfx##_transform_normalize_normals_##masked##; \ gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] = \ - gl_##pfx##_transform_normalize_normals_no_rot_##masked##; + gl##pfx##_transform_normalize_normals_no_rot_##masked##; -extern void gl_3dnow_project_vertices( GLfloat *first, +extern void _ASMAPI gl_3dnow_project_vertices( GLfloat *first, GLfloat *last, const GLfloat *m, GLuint stride ); -extern void gl_3dnow_project_clipped_vertices( GLfloat *first, +extern void _ASMAPI gl_3dnow_project_clipped_vertices( GLfloat *first, GLfloat *last, const GLfloat *m, GLuint stride, const GLubyte *clipmask ); -extern void gl_v16_3dnow_general_xform( GLfloat *first_vert, +extern void _ASMAPI gl_v16_3dnow_general_xform( GLfloat *first_vert, const GLfloat *m, const GLfloat *src, GLuint src_stride, @@ -146,32 +146,32 @@ extern void gl_v16_3dnow_general_xform( GLfloat *first_vert, void gl_init_3dnow_asm_transforms (void) { - DECLARE_XFORM_GROUP( 3dnow, 1, raw ) - DECLARE_XFORM_GROUP( 3dnow, 2, raw ) - DECLARE_XFORM_GROUP( 3dnow, 3, raw ) - DECLARE_XFORM_GROUP( 3dnow, 4, raw ) - - DECLARE_XFORM_GROUP( 3dnow, 1, masked ) - 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_XFORM_GROUP( _3dnow, 1, raw ) + DECLARE_XFORM_GROUP( _3dnow, 2, raw ) + DECLARE_XFORM_GROUP( _3dnow, 3, raw ) + DECLARE_XFORM_GROUP( _3dnow, 4, raw ) + + DECLARE_XFORM_GROUP( _3dnow, 1, masked ) + 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 ) */ - ASSIGN_XFORM_GROUP( 3dnow, 0, 1, raw ) - 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, 0, 1, raw ) + 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, 1, masked ) - 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, CULL_MASK_ACTIVE, 1, masked ) + 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_NORM_GROUP( 3dnow, 0, raw ) -/* ASSIGN_NORM_GROUP( 3dnow, CULL_MASK_ACTIVE, masked ) + ASSIGN_NORM_GROUP( _3dnow, 0, raw ) +/* ASSIGN_NORM_GROUP( _3dnow, CULL_MASK_ACTIVE, masked ) */ #ifdef DEBUG @@ -187,4 +187,3 @@ void gl_init_3dnow_asm_transforms (void) } #endif - |