123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/*
223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Mesa 3-D graphics library
37dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul * Version:  6.5.1
422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
57dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a
823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * copy of this software and associated documentation files (the "Software"),
923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * to deal in the Software without restriction, including without limitation
1023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * and/or sell copies of the Software, and to permit persons to whom the
1223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Software is furnished to do so, subject to the following conditions:
1322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
1423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * The above copyright notice and this permission notice shall be included
1523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * in all copies or substantial portions of the Software.
1622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
1723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
2023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
2123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
2423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
257dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul/**
267dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul * \brief  Templates for vector conversions.
277dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul * \author Keith Whitwell.
2823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
2923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
3023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_4F
3123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void DEST_4F( GLfloat (*t)[4],
3223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		     CONST void *ptr,
3323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		     GLuint stride,
3479b2d13ae2280650070d5a0f157afecbfa02f9e6Gareth Hughes		     ARGS )
3523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
3623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
3723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *first = f;
3823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
3923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
4023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) first;
4123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) start;
4223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   for (i = DST_START ; i < n ; i++, NEXT_F) {
4322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes      CHECK {
4423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell         NEXT_F2;
4523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 if (SZ >= 1) t[i][0] = TRX_4F(f, 0);
4623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 if (SZ >= 2) t[i][1] = TRX_4F(f, 1);
4723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 if (SZ >= 3) t[i][2] = TRX_4F(f, 2);
48c6182ab54c6d11371ad523a89e22380996cf0742Brian Paul	 if (SZ == 4) t[i][3] = TRX_4F(f, 3); else t[i][3] = 1.0;
4923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
5023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
5123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
5223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
5323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
5423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
5512c037dbff3d5a812e31624645d577413cd54122Keith Whitwell
567dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#ifdef DEST_4FN
577dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paulstatic void DEST_4FN( GLfloat (*t)[4],
5812c037dbff3d5a812e31624645d577413cd54122Keith Whitwell		      CONST void *ptr,
5912c037dbff3d5a812e31624645d577413cd54122Keith Whitwell		      GLuint stride,
6012c037dbff3d5a812e31624645d577413cd54122Keith Whitwell		      ARGS )
6112c037dbff3d5a812e31624645d577413cd54122Keith Whitwell{
6212c037dbff3d5a812e31624645d577413cd54122Keith Whitwell   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
6312c037dbff3d5a812e31624645d577413cd54122Keith Whitwell   const GLubyte *first = f;
6412c037dbff3d5a812e31624645d577413cd54122Keith Whitwell   GLuint i;
6512c037dbff3d5a812e31624645d577413cd54122Keith Whitwell
6612c037dbff3d5a812e31624645d577413cd54122Keith Whitwell   (void) first;
6712c037dbff3d5a812e31624645d577413cd54122Keith Whitwell   (void) start;
6812c037dbff3d5a812e31624645d577413cd54122Keith Whitwell   for (i = DST_START ; i < n ; i++, NEXT_F) {
6912c037dbff3d5a812e31624645d577413cd54122Keith Whitwell      CHECK {
7012c037dbff3d5a812e31624645d577413cd54122Keith Whitwell         NEXT_F2;
717dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul	 if (SZ >= 1) t[i][0] = TRX_4FN(f, 0);
727dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul	 if (SZ >= 2) t[i][1] = TRX_4FN(f, 1);
737dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul	 if (SZ >= 3) t[i][2] = TRX_4FN(f, 2);
747dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul	 if (SZ == 4) t[i][3] = TRX_4FN(f, 3); else t[i][3] = 1.0;
7512c037dbff3d5a812e31624645d577413cd54122Keith Whitwell      }
7612c037dbff3d5a812e31624645d577413cd54122Keith Whitwell   }
7712c037dbff3d5a812e31624645d577413cd54122Keith Whitwell}
7812c037dbff3d5a812e31624645d577413cd54122Keith Whitwell#endif
7912c037dbff3d5a812e31624645d577413cd54122Keith Whitwell
8012c037dbff3d5a812e31624645d577413cd54122Keith Whitwell
817dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#ifdef DEST_3FN
827dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paulstatic void DEST_3FN( GLfloat (*t)[3],
8323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		     CONST void *ptr,
8423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		     GLuint stride,
8579b2d13ae2280650070d5a0f157afecbfa02f9e6Gareth Hughes		     ARGS )
8623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
8723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
8823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *first = f;
8923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
9023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) first;
9123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) start;
9223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   for (i = DST_START ; i < n ; i++, NEXT_F) {
9323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      CHECK {
9423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell         NEXT_F2;
957dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul	 t[i][0] = TRX_3FN(f, 0);
967dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul	 t[i][1] = TRX_3FN(f, 1);
977dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul	 t[i][2] = TRX_3FN(f, 2);
9823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
9923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
10023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
10123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
10223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
10323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_1F
10423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void DEST_1F( GLfloat *t,
10523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		     CONST void *ptr,
10623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		     GLuint stride,
10779b2d13ae2280650070d5a0f157afecbfa02f9e6Gareth Hughes		     ARGS )
10823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
10923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
11023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *first = f;
11123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
11223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) first;
11323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) start;
11423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   for (i = DST_START ; i < n ; i++, NEXT_F) {
11523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      CHECK {
11623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell         NEXT_F2;
11723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i] = TRX_1F(f, 0);
11823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
11923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
12023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
12123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
12223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
12323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_4UB
12423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void DEST_4UB( GLubyte (*t)[4],
12574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                      CONST void *ptr,
12674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                      GLuint stride,
12779b2d13ae2280650070d5a0f157afecbfa02f9e6Gareth Hughes                      ARGS )
12823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
12923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
13023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *first = f;
13123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
13223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) start;
13323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) first;
13423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   for (i = DST_START ; i < n ; i++, NEXT_F) {
13523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      CHECK {
13623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell         NEXT_F2;
13723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 if (SZ >= 1) TRX_UB(t[i][0], f, 0);
13823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 if (SZ >= 2) TRX_UB(t[i][1], f, 1);
13922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes	 if (SZ >= 3) TRX_UB(t[i][2], f, 2);
14023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 if (SZ == 4) TRX_UB(t[i][3], f, 3); else t[i][3] = 255;
14123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
14223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
14323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
14423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
14523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
14623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
14774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#ifdef DEST_4US
14874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulstatic void DEST_4US( GLushort (*t)[4],
14974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                      CONST void *ptr,
15074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                      GLuint stride,
15179b2d13ae2280650070d5a0f157afecbfa02f9e6Gareth Hughes                      ARGS )
15274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul{
153eae38ca1b23cb78d0130d8b30d167a9d12b9f4b2Brian Paul   const GLubyte *f = (GLubyte *) ((GLubyte *) ptr + SRC_START * stride);
154eae38ca1b23cb78d0130d8b30d167a9d12b9f4b2Brian Paul   const GLubyte *first = f;
15574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   GLuint i;
15674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   (void) start;
15774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   (void) first;
15874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   for (i = DST_START ; i < n ; i++, NEXT_F) {
15974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul      CHECK {
16074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul         NEXT_F2;
16174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul	 if (SZ >= 1) TRX_US(t[i][0], f, 0);
16274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul	 if (SZ >= 2) TRX_US(t[i][1], f, 1);
16322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes	 if (SZ >= 3) TRX_US(t[i][2], f, 2);
16474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul	 if (SZ == 4) TRX_US(t[i][3], f, 3); else t[i][3] = 65535;
16574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul      }
16674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   }
16774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul}
16874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#endif
16974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
17074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
17123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_1UB
17223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void DEST_1UB( GLubyte *t,
17323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		      CONST void *ptr,
17423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		      GLuint stride,
17579b2d13ae2280650070d5a0f157afecbfa02f9e6Gareth Hughes		      ARGS )
17623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
17723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
17823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *first = f;
17923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
18023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) start;
18123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) first;
18223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   for (i = DST_START ; i < n ; i++, NEXT_F) {
18323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      CHECK {
18423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell         NEXT_F2;
18523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	  TRX_UB(t[i], f, 0);
18623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
18723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
18823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
18923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
19023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
19123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
19223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_1UI
19323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void DEST_1UI( GLuint *t,
19423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		      CONST void *ptr,
19523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell		      GLuint stride,
19679b2d13ae2280650070d5a0f157afecbfa02f9e6Gareth Hughes		      ARGS )
19723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
19823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) ptr + SRC_START * stride;
19923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *first = f;
20023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
20123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) start;
20223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   (void) first;
20323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
20423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   for (i = DST_START ; i < n ; i++, NEXT_F) {
20523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      CHECK {
20623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell         NEXT_F2;
20723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i] = TRX_UI(f, 0);
20823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
20923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
21023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
21123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
21223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
21323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
21423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void INIT(void)
21523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
21623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_1UI
21723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   ASSERT(SZ == 1);
21823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   TAB(_1ui)[SRC_IDX] = DEST_1UI;
21923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
22023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_1UB
22123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   ASSERT(SZ == 1);
22223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   TAB(_1ub)[SRC_IDX] = DEST_1UB;
22323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
22423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_1F
22523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   ASSERT(SZ == 1);
22623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   TAB(_1f)[SRC_IDX] = DEST_1F;
22723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
2287dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#ifdef DEST_3FN
22923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   ASSERT(SZ == 3);
2307dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul   TAB(_3fn)[SRC_IDX] = DEST_3FN;
23123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
23223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_4UB
23323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   TAB(_4ub)[SZ][SRC_IDX] = DEST_4UB;
23423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
23574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#ifdef DEST_4US
23674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   TAB(_4us)[SZ][SRC_IDX] = DEST_4US;
23774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#endif
23823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#ifdef DEST_4F
23923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   TAB(_4f)[SZ][SRC_IDX] = DEST_4F;
24023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#endif
2417dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#ifdef DEST_4FN
2427dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul   TAB(_4fn)[SZ][SRC_IDX] = DEST_4FN;
24312c037dbff3d5a812e31624645d577413cd54122Keith Whitwell#endif
24422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes
24523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
24623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
24723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
248d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef INIT
24923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef INIT
250d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
251d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef DEST_1UI
25223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DEST_1UI
253d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
254d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef DEST_1UB
25523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DEST_1UB
256d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
257d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef DEST_4UB
25823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DEST_4UB
259d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
260d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef DEST_4US
26174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef DEST_4US
262d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
2637dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#ifdef DEST_3FN
2647dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef DEST_3FN
265d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
266d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef DEST_4F
26723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DEST_4F
268d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
2697dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#ifdef DEST_4FN
2707dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef DEST_4FN
27112c037dbff3d5a812e31624645d577413cd54122Keith Whitwell#endif
272d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef DEST_1F
27323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DEST_1F
274d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
275d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef SZ
27623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SZ
277d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
278d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef TAG
27923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TAG
280d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
281d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul
282