Merge branch 'master' of git://anongit.freedesktop.org/mesa/mesa
[mesa.git] / src / mesa / x86-64 / xform4.S
index 3f9c9d56ab7dcfdeae89aaa074b15fbd6be3246c..5abd5a25de5c080a197d3cc8e87e4799a7ff929f 100644 (file)
 .text
 
 .align 16
+.globl _mesa_x86_64_cpuid
+.hidden _mesa_x86_64_cpuid
+_mesa_x86_64_cpuid:
+       pushq   %rbx
+       movl    (%rdi), %eax
+       movl    8(%rdi), %ecx
+
+       cpuid
+
+       movl    %ebx, 4(%rdi)
+       movl    %eax, (%rdi)
+       movl    %ecx, 8(%rdi)
+       movl    %edx, 12(%rdi)
+       popq    %rbx
+       ret
 
+.align 16
 .globl _mesa_x86_64_transform_points4_general
+.hidden _mesa_x86_64_transform_points4_general
 _mesa_x86_64_transform_points4_general:
 /*
  *     rdi = dest
@@ -38,7 +55,7 @@ _mesa_x86_64_transform_points4_general:
  *     rdx = source
  */
        movl V4F_COUNT(%rdx), %ecx      /* count */
-       movzx V4F_STRIDE(%rdx), %eax    /* stride */
+       movzbl V4F_STRIDE(%rdx), %eax   /* stride */
 
        movl %ecx, V4F_COUNT(%rdi)      /* set dest count */
        movl $4, V4F_SIZE(%rdi)         /* set dest size */
@@ -101,11 +118,12 @@ p4_constants:
 .byte  0x00, 0x00, 0x00, 0x00
 .byte  0x00, 0x00, 0x00, 0x00
 .byte  0x00, 0x00, 0x00, 0x00
-.float 0f+1.0
+.float 1.0
 
 .text
 .align 16
 .globl _mesa_x86_64_transform_points4_3d
+.hidden _mesa_x86_64_transform_points4_3d
 /*
  * this is slower than _mesa_x86_64_transform_points4_general
  * because it ensures that the last matrix row (or is it column?) is 0,0,0,1
@@ -120,7 +138,7 @@ _mesa_x86_64_transform_points4_3d:
        movaps 16(%rax), %xmm10
 
        movl V4F_COUNT(%rdx), %ecx      /* count */
-       movzx V4F_STRIDE(%rdx), %eax    /* stride */
+       movzbl V4F_STRIDE(%rdx), %eax   /* stride */
 
        movl %ecx, V4F_COUNT(%rdi)      /* set dest count */
        movl $4, V4F_SIZE(%rdi)         /* set dest size */
@@ -177,10 +195,11 @@ p4_3d_done:
 
 .align 16
 .globl _mesa_x86_64_transform_points4_identity
+.hidden _mesa_x86_64_transform_points4_identity
 _mesa_x86_64_transform_points4_identity:
 
        movl V4F_COUNT(%rdx), %ecx      /* count */
-       movzx V4F_STRIDE(%rdx), %eax    /* stride */
+       movzbl V4F_STRIDE(%rdx), %eax   /* stride */
 
        movl %ecx, V4F_COUNT(%rdi)      /* set dest count */
        movl $4, V4F_SIZE(%rdi)         /* set dest size */
@@ -204,11 +223,12 @@ p4_identity_done:
 
        
 .align 16
-.globl _mesa_x86_64_transform_points4_3d_no_rot
-_mesa_x86_64_transform_points4_3d_no_rot:
+.globl _mesa_3dnow_transform_points4_3d_no_rot
+.hidden _mesa_3dnow_transform_points4_3d_no_rot
+_mesa_3dnow_transform_points4_3d_no_rot:
 
        movl V4F_COUNT(%rdx), %ecx      /* count */
-       movzx V4F_STRIDE(%rdx), %eax    /* stride */
+       movzbl V4F_STRIDE(%rdx), %eax   /* stride */
 
        movl %ecx, V4F_COUNT(%rdi)      /* set dest count */
        movl $4, V4F_SIZE(%rdi)         /* set dest size */
@@ -268,11 +288,12 @@ p4_3d_no_rot_done:
 
        
 .align 16
-.globl _mesa_x86_64_transform_points4_perspective
-_mesa_x86_64_transform_points4_perspective:
+.globl _mesa_3dnow_transform_points4_perspective
+.hidden _mesa_3dnow_transform_points4_perspective
+_mesa_3dnow_transform_points4_perspective:
 
        movl V4F_COUNT(%rdx), %ecx      /* count */
-       movzx V4F_STRIDE(%rdx), %eax    /* stride */
+       movzbl V4F_STRIDE(%rdx), %eax   /* stride */
 
        movl %ecx, V4F_COUNT(%rdi)      /* set dest count */
        movl $4, V4F_SIZE(%rdi)         /* set dest size */
@@ -334,11 +355,12 @@ p4_perspective_done:
        ret
 
 .align 16
-.globl _mesa_x86_64_transform_points4_2d_no_rot
-_mesa_x86_64_transform_points4_2d_no_rot:
+.globl _mesa_3dnow_transform_points4_2d_no_rot
+.hidden _mesa_3dnow_transform_points4_2d_no_rot
+_mesa_3dnow_transform_points4_2d_no_rot:
 
        movl V4F_COUNT(%rdx), %ecx      /* count */
-       movzx V4F_STRIDE(%rdx), %eax    /* stride */
+       movzbl V4F_STRIDE(%rdx), %eax   /* stride */
 
        movl %ecx, V4F_COUNT(%rdi)      /* set dest count */
        movl $4, V4F_SIZE(%rdi)         /* set dest size */
@@ -389,11 +411,12 @@ p4_2d_no_rot_done:
 
        
 .align 16
-.globl _mesa_x86_64_transform_points4_2d
-_mesa_x86_64_transform_points4_2d:
+.globl _mesa_3dnow_transform_points4_2d
+.hidden _mesa_3dnow_transform_points4_2d
+_mesa_3dnow_transform_points4_2d:
 
        movl V4F_COUNT(%rdx), %ecx      /* count */
-       movzx V4F_STRIDE(%rdx), %eax    /* stride */
+       movzbl V4F_STRIDE(%rdx), %eax   /* stride */
 
        movl %ecx, V4F_COUNT(%rdi)      /* set dest count */
        movl $4, V4F_SIZE(%rdi)         /* set dest size */