summaryrefslogtreecommitdiffstats
path: root/src/mesa/tnl/t_vtx_x86_gcc.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/tnl/t_vtx_x86_gcc.S')
-rw-r--r--src/mesa/tnl/t_vtx_x86_gcc.S42
1 files changed, 29 insertions, 13 deletions
diff --git a/src/mesa/tnl/t_vtx_x86_gcc.S b/src/mesa/tnl/t_vtx_x86_gcc.S
index 5a1adc0f33d..0bccd17302b 100644
--- a/src/mesa/tnl/t_vtx_x86_gcc.S
+++ b/src/mesa/tnl/t_vtx_x86_gcc.S
@@ -82,9 +82,13 @@ GLOBL ( _tnl_x86_Vertex1fv )
pop %esi
pop %edi
dec %edx // counter--
- movl %edx, SUBST(3) // 0x3 --> counter
- .short 0x840f // if (counter == 0)
- .long SUBST(4) // notify()
+ movl %edx, SUBST(3) // 0x3 --> counter
+ jne .0 // if (counter != 0) return
+ pushl $SUBST(4) // 0x4 --> ctx
+ .byte 0xe8 // call ...
+ .long SUBST(5) // ... _tnl_wrap_filled_vertex(ctx)
+ pop %eax
+.0:
ret // return
GLOBL ( _tnl_x86_Vertex1fv_end )
@@ -110,8 +114,12 @@ GLOBL ( _tnl_x86_Vertex2fv )
pop %edi
dec %edx // counter--
movl %edx, SUBST(3) // save counter
- .short 0x840f // if (counter == 0)
- .long SUBST(4) // notify()
+ jne .1 // if (counter != 0) return
+ pushl $SUBST(4) // load ctx
+ .byte 0xe8 // call ...
+ .long SUBST(5) // ... _tnl_wrap_filled_vertex(ctx)
+ pop %eax
+.1:
ret // return
GLOBL ( _tnl_x86_Vertex2fv_end )
@@ -138,8 +146,12 @@ GLOBL ( _tnl_x86_Vertex3fv )
pop %edi
dec %edx // counter--
movl %edx, SUBST(3) // save counter
- .short 0x840f // if (counter == 0)
- .long SUBST(4) // notify()
+ jne .2 // if (counter != 0) return
+ pushl $SUBST(4) // load ctx
+ .byte 0xe8 // call ...
+ .long SUBST(5) // ... _tnl_wrap_filled_vertex(ctx)
+ pop %eax
+.2:
ret // return
GLOBL ( _tnl_x86_Vertex3fv_end )
@@ -169,8 +181,12 @@ GLOBL ( _tnl_x86_Vertex4fv )
pop %edi
dec %edx // counter--
movl %edx, SUBST(3) // save counter
- .short 0x840f // if (counter == 0)
- .long SUBST(4) // notify()
+ jne .3 // if (counter != 0) return
+ pushl $SUBST(4) // load ctx
+ .byte 0xe8 // call ...
+ .long SUBST(5) // ... _tnl_wrap_filled_vertex(ctx)
+ pop %eax
+.3:
ret // return
GLOBL ( _tnl_x86_Vertex4fv_end )
@@ -312,9 +328,9 @@ GLOBL( _tnl_x86_dispatch_multitexcoordfv_end )
GLOBL( _tnl_x86_dispatch_vertexattribf )
movl 4(%esp), %eax
cmpl $16, %eax
- jb .0 // "cmovge" is not supported on all CPUs
+ jb .8 // "cmovge" is not supported on all CPUs
movl $16, %eax
-.0:
+.8:
leal 8(%esp), %ecx // calculate 'v'
movl %ecx, 4(%esp) // save in 1st arg slot
sall $4, %eax
@@ -324,9 +340,9 @@ GLOBL( _tnl_x86_dispatch_vertexattribf_end )
GLOBL( _tnl_x86_dispatch_vertexattribfv )
movl 4(%esp), %eax
cmpl $16, %eax
- jb .1 // "cmovge" is not supported on all CPUs
+ jb .9 // "cmovge" is not supported on all CPUs
movl $16, %eax
-.1:
+.9:
movl 8(%esp), %ecx // load 'v'
movl %ecx, 4(%esp) // save in 1st arg slot
sall $4, %eax