#include "imports.h"
#include "mmath.h"
#include "simple_list.h"
#include "tnl_vtxfmt.h"
#if defined(USE_X86_ASM)
struct dynfn *tnl_makeX86Vertex2f( TNLcontext *tnl, int key )
{
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (RADEON_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
switch (tnl->vertex_size) {
default: {
static char temp[] = {
0x57,
0x56,
0xbe, 0, 0, 0, 0,
0x8b, 0x3d, 0, 0, 0, 0,
0x8b, 0x44, 0x24, 0x0c,
0x8b, 0x54, 0x24, 0x10,
0x89, 0x07,
0x89, 0x57, 0x04,
0x83, 0xc7, 0x08,
0xb9, 0, 0, 0, 0,
0xf3, 0xa5,
0xa1, 0, 0, 0, 0,
0x89, 0x3d, 0, 0, 0, 0,
0x48,
0xa3, 0, 0, 0, 0,
0x5e,
0x5f,
0x74, 0x01,
0xc3,
0xff, 0x25, 0, 0, 0, 0
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 3, 0x0, (int)&tnl->vertex[2]);
FIXUP(dfn->code, 9, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 37, 0x0, tnl->vertex_size-2);
FIXUP(dfn->code, 44, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 50, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 56, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 67, 0x0, (int)&tnl->notify);
break;
}
}
insert_at_head( &tnl->dfn_cache.Vertex3f, dfn );
dfn->key = key;
return dfn;
}
struct dynfn *tnl_makeX86Vertex3f( TNLcontext *tnl, int key )
{
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (RADEON_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
switch (tnl->vertex_size) {
case 4: {
static char temp[] = {
0x8b, 0x0d, 0,0,0,0,
0x8b, 0x44, 0x24, 0x04,
0x8b, 0x54, 0x24, 0x08,
0x89, 0x01,
0x89, 0x51, 0x04,
0x8b, 0x44, 0x24, 0x0c,
0x8b, 0x15, 0,0,0,0,
0x89, 0x41, 0x08,
0x89, 0x51, 0x0c,
0xa1, 0, 0, 0, 0,
0x83, 0xc1, 0x10,
0x48,
0x89, 0x0d, 0,0,0,0,
0xa3, 0, 0, 0, 0,
0x74, 0x01,
0xc3,
0xff, 0x25, 0,0,0,0
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 2, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 25, 0x0, (int)&tnl->vertex[3]);
FIXUP(dfn->code, 36, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 46, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 51, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 60, 0x0, (int)&tnl->notify);
break;
}
case 6: {
static char temp[] = {
0x57,
0x8b, 0x3d, 0, 0, 0, 0,
0x8b, 0x44, 0x24, 0x8,
0x8b, 0x54, 0x24, 0xc,
0x8b, 0x4c, 0x24, 0x10,
0x89, 0x07,
0x89, 0x57, 0x04,
0x89, 0x4f, 0x08,
0xa1, 0, 0, 0, 0,
0x8b, 0x15, 0, 0, 0, 0,
0x8b, 0x0d, 0, 0, 0, 0,
0x89, 0x47, 0x0c,
0x89, 0x57, 0x10,
0x89, 0x4f, 0x14,
0x83, 0xc7, 0x18,
0xa1, 0, 0, 0, 0,
0x89, 0x3d, 0, 0, 0, 0,
0x48,
0x5f,
0xa3, 0, 0, 0, 0,
0x74, 0x01,
0xc3,
0xff, 0x25, 0,0,0,0,
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 3, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 28, 0x0, (int)&tnl->vertex[3]);
FIXUP(dfn->code, 34, 0x0, (int)&tnl->vertex[4]);
FIXUP(dfn->code, 40, 0x0, (int)&tnl->vertex[5]);
FIXUP(dfn->code, 57, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 63, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 70, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 79, 0x0, (int)&tnl->notify);
break;
}
default: {
static char temp[] = {
0x57,
0x56,
0xbe, 0, 0, 0, 0,
0x8b, 0x3d, 0, 0, 0, 0,
0x8b, 0x44, 0x24, 0x0c,
0x8b, 0x54, 0x24, 0x10,
0x8b, 0x4c, 0x24, 0x14,
0x89, 0x07,
0x89, 0x57, 0x04,
0x89, 0x4f, 0x08,
0x83, 0xc7, 0x0c,
0xb9, 0, 0, 0, 0,
0xf3, 0xa5,
0xa1, 0, 0, 0, 0,
0x89, 0x3d, 0, 0, 0, 0,
0x48,
0xa3, 0, 0, 0, 0,
0x5e,
0x5f,
0x74, 0x01,
0xc3,
0xff, 0x25, 0, 0, 0, 0
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 3, 0x0, (int)&tnl->vertex[3]);
FIXUP(dfn->code, 9, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 37, 0x0, tnl->vertex_size-3);
FIXUP(dfn->code, 44, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 50, 0x0, (int)&tnl->dmaptr);
FIXUP(dfn->code, 56, 0x0, (int)&tnl->counter);
FIXUP(dfn->code, 67, 0x0, (int)&tnl->notify);
break;
}
}
insert_at_head( &tnl->dfn_cache.Vertex3f, dfn );
dfn->key = key;
return dfn;
}
struct dynfn *tnl_makeX86Vertex3fv( TNLcontext *tnl, int key )
{
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
switch (tnl->vertex_size) {
case 6: {
static char temp[] = {
0xa1, 0x00, 0x00, 0, 0,
0x8b, 0x4c, 0x24, 0x04,
0x8b, 0x11,
0x89, 0x10,
0x8b, 0x51, 0x04,
0x8b, 0x49, 0x08,
0x89, 0x50, 0x04,
0x89, 0x48, 0x08,
0x8b, 0x15, 0x1c, 0, 0, 0,
0x8b, 0x0d, 0x20, 0, 0, 0,
0x89, 0x50, 0x0c,
0x89, 0x48, 0x10,
0x8b, 0x15, 0x24, 0, 0, 0,
0x89, 0x50, 0x14,
0x83, 0xc0, 0x18,
0xa3, 0x00, 0x00, 0, 0,
0xa1, 0x04, 0x00, 0, 0,
0x48,
0xa3, 0x04, 0x00, 0, 0,
0x74, 0x01,
0xc3,
0xff, 0x25, 0x08, 0, 0, 0,
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 1, 0x00000000, (int)&tnl->dmaptr);
FIXUP(dfn->code, 27, 0x0000001c, (int)&tnl->vertex[3]);
FIXUP(dfn->code, 33, 0x00000020, (int)&tnl->vertex[4]);
FIXUP(dfn->code, 45, 0x00000024, (int)&tnl->vertex[5]);
FIXUP(dfn->code, 56, 0x00000000, (int)&tnl->dmaptr);
FIXUP(dfn->code, 61, 0x00000004, (int)&tnl->counter);
FIXUP(dfn->code, 67, 0x00000004, (int)&tnl->counter);
FIXUP(dfn->code, 76, 0x00000008, (int)&tnl->notify);
break;
}
case 8: {
static char temp[] = {
0xa1, 0x00, 0x00, 0, 0,
0x8b, 0x4c, 0x24, 0x04,
0x8b, 0x11,
0x89, 0x10,
0x8b, 0x51, 0x04,
0x8b, 0x49, 0x08,
0x89, 0x50, 0x04,
0x89, 0x48, 0x08,
0x8b, 0x15, 0x1c, 0, 0, 0,
0x8b, 0x0d, 0x20, 0, 0, 0,
0x89, 0x50, 0x0c,
0x89, 0x48, 0x10,
0x8b, 0x15, 0x1c, 0, 0, 0,
0x8b, 0x0d, 0x20, 0, 0, 0,
0x89, 0x50, 0x14,
0x89, 0x48, 0x18,
0x8b, 0x15, 0x24, 0, 0, 0,
0x89, 0x50, 0x1c,
0x83, 0xc0, 0x20,
0xa3, 0x00, 0x00, 0, 0,
0xa1, 0x04, 0x00, 0, 0,
0x48,
0xa3, 0x04, 0x00, 0, 0,
0x74, 0x01,
0xc3,
0xff, 0x25, 0x08, 0, 0, 0,
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 1, 0x00000000, (int)&tnl->dmaptr);
FIXUP(dfn->code, 27, 0x0000001c, (int)&tnl->vertex[3]);
FIXUP(dfn->code, 33, 0x00000020, (int)&tnl->vertex[4]);
FIXUP(dfn->code, 45, 0x0000001c, (int)&tnl->vertex[5]);
FIXUP(dfn->code, 51, 0x00000020, (int)&tnl->vertex[6]);
FIXUP(dfn->code, 63, 0x00000024, (int)&tnl->vertex[7]);
FIXUP(dfn->code, 74, 0x00000000, (int)&tnl->dmaptr);
FIXUP(dfn->code, 79, 0x00000004, (int)&tnl->counter);
FIXUP(dfn->code, 85, 0x00000004, (int)&tnl->counter);
FIXUP(dfn->code, 94, 0x00000008, (int)&tnl->notify);
break;
}
default: {
static char temp[] = {
0x8b, 0x54, 0x24, 0x04,
0x57,
0x56,
0x8b, 0x3d, 1,1,1,1,
0x8b, 0x02,
0x8b, 0x4a, 0x04,
0x8b, 0x72, 0x08,
0x89, 0x07,
0x89, 0x4f, 0x04,
0x89, 0x77, 0x08,
0x83, 0xc7, 0x0c,
0xb9, 0x06, 0x00, 0x00, 0x00,
0xbe, 0x58, 0x00, 0x00, 0x00,
0xf3, 0xa5,
0x89, 0x3d, 1, 1, 1, 1,
0xa1, 2, 2, 2, 2,
0x5e,
0x5f,
0x48,
0xa3, 2, 2, 2, 2,
0x74, 0x01,
0xc3,
0xff, 0x25, 0, 0, 0, 0
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 8, 0x01010101, (int)&tnl->dmaptr);
FIXUP(dfn->code, 32, 0x00000006, tnl->vertex_size-3);
FIXUP(dfn->code, 37, 0x00000058, (int)&tnl->vertex[3]);
FIXUP(dfn->code, 45, 0x01010101, (int)&tnl->dmaptr);
FIXUP(dfn->code, 50, 0x02020202, (int)&tnl->counter);
FIXUP(dfn->code, 58, 0x02020202, (int)&tnl->counter);
FIXUP(dfn->code, 67, 0x0, (int)&tnl->notify);
break;
}
}
insert_at_head( &tnl->dfn_cache.Vertex3fv, dfn );
dfn->key = key;
return dfn;
}
struct dynfn *tnl_makeX86Attr4fv( TNLcontext *tnl, int key )
{
static char temp[] = {
0x8b, 0x44, 0x24, 0x04,
0xba, 0, 0, 0, 0,
0x8b, 0x08,
0x89, 0x0a,
0x8b, 0x48, 0x04,
0x89, 0x4a, 0x04,
0x8b, 0x48, 0x08,
0x89, 0x4a, 0x08,
0x8b, 0x48, 0x0a,
0x89, 0x4a, 0x0a,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.Normal3fv, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 5, 0x0, (int)tnl->normalptr);
return dfn;
}
struct dynfn *tnl_makeX86Attr4f( TNLcontext *tnl, int key )
{
static char temp[] = {
0xba, 0x78, 0x56, 0x34, 0x12,
0x8b, 0x44, 0x24, 0x04,
0x89, 0x02,
0x8b, 0x44, 0x24, 0x08,
0x89, 0x42, 0x04,
0x8b, 0x44, 0x24, 0x0c,
0x89, 0x42, 0x08,
0x8b, 0x44, 0x24, 0x10,
0x89, 0x42, 0x0a,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.Normal3f, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 1, 0x12345678, (int)tnl->normalptr);
return dfn;
}
struct dynfn *tnl_makeX86Attr3fv( TNLcontext *tnl, int key )
{
static char temp[] = {
0x8b, 0x44, 0x24, 0x04,
0xba, 0, 0, 0, 0,
0x8b, 0x08,
0x89, 0x0a,
0x8b, 0x48, 0x04,
0x89, 0x4a, 0x04,
0x8b, 0x48, 0x08,
0x89, 0x4a, 0x08,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.Normal3fv, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 5, 0x0, (int)tnl->normalptr);
return dfn;
}
struct dynfn *tnl_makeX86Attr3f( TNLcontext *tnl, int key )
{
static char temp[] = {
0xba, 0x78, 0x56, 0x34, 0x12,
0x8b, 0x44, 0x24, 0x04,
0x89, 0x02,
0x8b, 0x44, 0x24, 0x08,
0x89, 0x42, 0x04,
0x8b, 0x44, 0x24, 0x0c,
0x89, 0x42, 0x08,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.Normal3f, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 1, 0x12345678, (int)tnl->normalptr);
return dfn;
}
struct dynfn *tnl_makeX86Attr4ubv( TNLcontext *tnl, int key )
{
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
insert_at_head( &tnl->dfn_cache.Color4ubv, dfn );
dfn->key = key;
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
if (key & TNL_CP_VC_FRMT_PKCOLOR) {
static char temp[] = {
0x8b, 0x44, 0x24, 0x04,
0xba, 0x78, 0x56, 0x34, 0x12,
0x8b, 0x00,
0x89, 0x02,
0xc3,
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 5, 0x12345678, (int)tnl->ubytecolorptr);
return dfn;
}
else {
static char temp[] = {
0x53,
0xba, 0x00, 0x00, 0x00, 0x00,
0x31, 0xc0,
0x31, 0xc9,
0x8b, 0x5c, 0x24, 0x08,
0x8b, 0x1b,
0x88, 0xd8,
0x88, 0xf9,
0x8b, 0x04, 0x82,
0x8b, 0x0c, 0x8a,
0xa3, 0xaf, 0xbe, 0xad, 0xde,
0x89, 0x0d, 0xaf, 0xbe, 0xad, 0xde,
0x31, 0xc0,
0x31, 0xc9,
0xc1, 0xeb, 0x10,
0x88, 0xd8,
0x88, 0xf9,
0x8b, 0x04, 0x82,
0x8b, 0x0c, 0x8a,
0xa3, 0xaf, 0xbe, 0xad, 0xde,
0x89, 0x0d, 0xaf, 0xbe, 0xad, 0xde,
0x5b,
0xc3,
};
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 2, 0x00000000, (int)_mesa_ubyte_to_float_color_tab);
FIXUP(dfn->code, 27, 0xdeadbeaf, (int)tnl->floatcolorptr);
FIXUP(dfn->code, 33, 0xdeadbeaf, (int)tnl->floatcolorptr+4);
FIXUP(dfn->code, 55, 0xdeadbeaf, (int)tnl->floatcolorptr+8);
FIXUP(dfn->code, 61, 0xdeadbeaf, (int)tnl->floatcolorptr+12);
return dfn;
}
}
struct dynfn *tnl_makeX86Attr4ub( TNLcontext *tnl, int key )
{
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
if (key & TNL_CP_VC_FRMT_PKCOLOR) {
static char temp[] = {
0x53,
0x8b, 0x44, 0x24, 0x08,
0x8b, 0x54, 0x24, 0x0c,
0x8b, 0x4c, 0x24, 0x10,
0x8b, 0x5c, 0x24, 0x14,
0xa2, 0, 0, 0, 0,
0x88, 0x15, 0, 0, 0, 0,
0x88, 0x0d, 0, 0, 0, 0,
0x88, 0x1d, 0, 0, 0, 0,
0x5b,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
insert_at_head( &tnl->dfn_cache.Color4ub, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 18, 0x0, (int)tnl->ubytecolorptr);
FIXUP(dfn->code, 24, 0x0, (int)tnl->ubytecolorptr+1);
FIXUP(dfn->code, 30, 0x0, (int)tnl->ubytecolorptr+2);
FIXUP(dfn->code, 36, 0x0, (int)tnl->ubytecolorptr+3);
return dfn;
}
else
return 0;
}
struct dynfn *tnl_makeX86Attr2fv( TNLcontext *tnl, int key )
{
static char temp[] = {
0x8b, 0x44, 0x24, 0x04,
0xba, 0x78, 0x56, 0x34, 0x12,
0x8b, 0x08,
0x8b, 0x40, 0x04,
0x89, 0x0a,
0x89, 0x42, 0x04,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.TexCoord2fv, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 5, 0x12345678, (int)tnl->texcoordptr[0]);
return dfn;
}
struct dynfn *tnl_makeX86Attr2f( TNLcontext *tnl, int key )
{
static char temp[] = {
0xba, 0x78, 0x56, 0x34, 0x12,
0x8b, 0x44, 0x24, 0x04,
0x8b, 0x4c, 0x24, 0x08,
0x89, 0x02,
0x89, 0x4a, 0x04,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.TexCoord2f, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 1, 0x12345678, (int)tnl->texcoordptr[0]);
return dfn;
}
struct dynfn *tnl_makeX86Attr1fv( TNLcontext *tnl, int key )
{
static char temp[] = {
0x8b, 0x44, 0x24, 0x04,
0xba, 0x78, 0x56, 0x34, 0x12,
0x8b, 0x08,
0x89, 0x0a,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.TexCoord2fv, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 5, 0x12345678, (int)tnl->texcoordptr[0]);
return dfn;
}
struct dynfn *tnl_makeX86Attr1f( TNLcontext *tnl, int key )
{
static char temp[] = {
0xba, 0x78, 0x56, 0x34, 0x12,
0x8b, 0x44, 0x24, 0x04,
0x89, 0x02,
0xc3,
};
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (TNL_DEBUG & DEBUG_CODEGEN)
_mesa_debug(NULL, "%s 0x%08x\n", __FUNCTION__, key );
insert_at_head( &tnl->dfn_cache.TexCoord2f, dfn );
dfn->key = key;
dfn->code = ALIGN_MALLOC( sizeof(temp), 16 );
memcpy (dfn->code, temp, sizeof(temp));
FIXUP(dfn->code, 1, 0x12345678, (int)tnl->texcoordptr[0]);
return dfn;
}
void _tnl_InitX86Codegen( struct dfn_generators *gen )
{
gen->Attr1f = tnl_makeX86Attr1f;
gen->Attr1fv = tnl_makeX86Attr1fv;
gen->Attr2f = tnl_makeX86Attr2f;
gen->Attr2fv = tnl_makeX86Attr2fv;
gen->Attr3f = tnl_makeX86Attr3f;
gen->Attr3fv = tnl_makeX86Attr3fv;
gen->Attr4f = tnl_makeX86Attr4f;
gen->Attr4fv = tnl_makeX86Attr4fv;
gen->Attr4ub = tnl_makeX86Attr4ub;
gen->Attr4ubv = tnl_makeX86Attr4ubv;
gen->Vertex3f = tnl_makeX86Vertex3f;
gen->Vertex3fv = tnl_makeX86Vertex3fv;
}
#else
void _tnl_InitX86Codegen( struct dfn_generators *gen )
{
(void) gen;
}
#endif