1
.file "composite_line_22_4a4_mmx.S"
6
.globl pixops_composite_line_22_4a4_mmx
7
.type pixops_composite_line_22_4a4_mmx,@function
20
pixops_composite_line_22_4a4_mmx:
32
* int x_scaled -24(%ebp)
38
/* Initialize variables */
49
/* Load initial values into %mm1, %mm3 */
55
movl (%edi, %edx), %eax
56
movd (%edi, %edx), %mm5
70
movl (%edi, %edx), %eax
71
movd (%edi, %edx), %mm5
91
/* int x_index = (x & 0xf000) >> 12 */
98
movq 8(%edi,%eax),%mm5
100
movq 16(%edi,%eax),%mm6
101
movq 24(%edi,%eax),%mm7
131
/* x_scale = x >> 16; */
152
* Load the two new values into %mm1, %mm3, move old values into %mm0, %mm2
159
# %mm4 will always be already clear here
163
movl (%edi, %edx), %eax
164
movd (%edi, %edx), %mm5
170
* mull destroyed %edx, need to reconstitute
175
orl $0xff000000, %eax
181
movl (%edi, %edx), %eax
182
movd (%edi, %edx), %mm5
187
orl $0xff000000, %eax