projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
i965/vs: Make some vec4_visitor functions virtual.
[mesa.git]
/
src
/
mesa
/
x86-64
/
xform4.S
diff --git
a/src/mesa/x86-64/xform4.S
b/src/mesa/x86-64/xform4.S
index 3f9c9d56ab7dcfdeae89aaa074b15fbd6be3246c..5abd5a25de5c080a197d3cc8e87e4799a7ff929f 100644
(file)
--- a/
src/mesa/x86-64/xform4.S
+++ b/
src/mesa/x86-64/xform4.S
@@
-29,8
+29,25
@@
.text
.align 16
.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
.globl _mesa_x86_64_transform_points4_general
+.hidden _mesa_x86_64_transform_points4_general
_mesa_x86_64_transform_points4_general:
/*
* rdi = dest
_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 */
* rdx = source
*/
movl V4F_COUNT(%rdx), %ecx /* count */
- movz
x V4F_STRIDE(%rdx), %eax
/* stride */
+ movz
bl V4F_STRIDE(%rdx), %eax
/* stride */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */
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
.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
.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
/*
* 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 */
movaps 16(%rax), %xmm10
movl V4F_COUNT(%rdx), %ecx /* count */
- movz
x V4F_STRIDE(%rdx), %eax
/* stride */
+ movz
bl V4F_STRIDE(%rdx), %eax
/* stride */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */
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
.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 */
_mesa_x86_64_transform_points4_identity:
movl V4F_COUNT(%rdx), %ecx /* count */
- movz
x V4F_STRIDE(%rdx), %eax
/* stride */
+ movz
bl V4F_STRIDE(%rdx), %eax
/* stride */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */
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
.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 */
movl V4F_COUNT(%rdx), %ecx /* count */
- movz
x V4F_STRIDE(%rdx), %eax
/* stride */
+ movz
bl V4F_STRIDE(%rdx), %eax
/* stride */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */
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
.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 */
movl V4F_COUNT(%rdx), %ecx /* count */
- movz
x V4F_STRIDE(%rdx), %eax
/* stride */
+ movz
bl V4F_STRIDE(%rdx), %eax
/* stride */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */
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
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 */
movl V4F_COUNT(%rdx), %ecx /* count */
- movz
x V4F_STRIDE(%rdx), %eax
/* stride */
+ movz
bl V4F_STRIDE(%rdx), %eax
/* stride */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */
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
.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 */
movl V4F_COUNT(%rdx), %ecx /* count */
- movz
x V4F_STRIDE(%rdx), %eax
/* stride */
+ movz
bl V4F_STRIDE(%rdx), %eax
/* stride */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */
movl %ecx, V4F_COUNT(%rdi) /* set dest count */
movl $4, V4F_SIZE(%rdi) /* set dest size */