1 /* $XFree86: xc/lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S,v 1.1 2002/10/30 12:51:53 alanh Exp $ */
2 /**************************************************************************
4 Copyright 2002 Tungsten Graphics Inc., Cedar Park, Texas.
8 Permission is hereby granted, free of charge, to any person obtaining a
9 copy of this software and associated documentation files (the "Software"),
10 to deal in the Software without restriction, including without limitation
11 on the rights to use, copy, modify, merge, publish, distribute, sub
12 license, and/or sell copies of the Software, and to permit persons to whom
13 the Software is furnished to do so, subject to the following conditions:
15 The above copyright notice and this permission notice (including the next
16 paragraph) shall be included in all copies or substantial portions of the
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
22 ATI, TUNGSTEN GRAPHICS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
23 DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24 OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25 USE OR OTHER DEALINGS IN THE SOFTWARE.
27 **************************************************************************/
35 GLOBL( _x86_Normal3fv)
36 movl 4(%esp), %eax /* load 'v' off stack */
37 movl (%eax), %ecx /* load v[0] */
38 movl 4(%eax), %edx /* load v[1] */
39 movl 8(%eax), %eax /* load v[2] */
40 movl %ecx, 0 /* store v[0] to current vertex */
41 movl %edx, 4 /* store v[1] to current vertex */
42 movl %eax, 8 /* store v[2] to current vertex */
44 GLOBL ( _x86_Normal3fv_end )
47 vertex 3f vertex size 4
50 GLOBL ( _x86_Vertex3f_4 )
69 GLOBL ( _x86_Vertex3f_4_end )
72 vertex 3f vertex size 6
74 GLOBL ( _x86_Vertex3f_6 )
98 GLOBL ( _x86_Vertex3f_6_end )
100 vertex 3f generic size
102 GLOBL ( _x86_Vertex3f )
116 movsl %ds:(%esi), %es:(%edi)
127 GLOBL ( _x86_Vertex3f_end )
130 Vertex 3fv vertex size 6
132 GLOBL ( _x86_Vertex3fv_6 )
156 GLOBL ( _x86_Vertex3fv_6_end )
159 Vertex 3fv vertex size 8
161 GLOBL ( _x86_Vertex3fv_8 )
189 GLOBL ( _x86_Vertex3fv_8_end )
192 Vertex 3fv generic vertex size
194 GLOBL ( _x86_Vertex3fv )
198 movl (0x1010101), %edi
209 movsl %ds:(%esi), %es:(%edi)
210 movl %edi, (0x1010101)
211 movl (0x2020202), %eax
215 movl %eax, (0x2020202)
219 GLOBL ( _x86_Vertex3fv_end )
224 GLOBL ( _x86_Normal3f )
225 movl $0x12345678, %edx
233 GLOBL ( _x86_Normal3f_end )
238 GLOBL ( _x86_Color4ubv_ub )
240 movl $0x12345678, %edx
244 GLOBL ( _x86_Color4ubv_ub_end )
249 GLOBL ( _x86_Color4ubv_4f )
258 movl (%edx,%eax,4),%eax
259 movl (%edx,%ecx,4),%ecx
260 movl %eax, (0xdeadbeaf)
261 movl %ecx, (0xdeadbeaf)
267 movl (%edx,%eax,4), %eax
268 movl (%edx,%ecx,4), %ecx
269 movl %eax, (0xdeadbeaf)
270 movl %ecx, (0xdeadbeaf)
273 GLOBL ( _x86_Color4ubv_4f_end )
279 GLOBL( _x86_Color4ub_ub )
291 GLOBL( _x86_Color4ub_ub_end )
296 GLOBL( _x86_Color3fv_3f )
306 GLOBL( _x86_Color3fv_3f_end )
311 GLOBL( _x86_Color3f_3f )
312 movl $0x12345678, %edx
320 GLOBL( _x86_Color3f_3f_end )
326 GLOBL( _x86_TexCoord2fv )
328 movl $0x12345678, %edx
335 GLOBL( _x86_TexCoord2fv_end )
339 GLOBL( _x86_TexCoord2f )
340 movl $0x12345678, %edx
346 GLOBL( _x86_TexCoord2f_end )
349 MultiTexCoord2fvARB st0/st1
351 GLOBL( _x86_MultiTexCoord2fvARB )
360 movl %edx, 0xdeadbeef(%eax)
361 movl %ecx, 0xdeadbeef(%eax)
363 GLOBL( _x86_MultiTexCoord2fvARB_end )
368 GLOBL( _x86_MultiTexCoord2fvARB_2 )
373 movl 0(,%eax,4), %edx
380 GLOBL( _x86_MultiTexCoord2fvARB_2_end )
383 MultiTexCoord2fARB st0/st1
385 GLOBL( _x86_MultiTexCoord2fARB )
392 movl %edx, 0xdeadbeef(%eax)
393 movl %ecx, 0xdeadbeef(%eax)
395 GLOBL( _x86_MultiTexCoord2fARB_end )
400 GLOBL( _x86_MultiTexCoord2fARB_2 )
404 movl 12(%esp,1), %ecx
406 movl 0(,%eax,4), %eax
410 GLOBL( _x86_MultiTexCoord2fARB_2_end )