1
.file "nr-compose-transform.c"
3
# Ensure Inkscape is execshield protected
4
.section .note.GNU-stack
9
.globl nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_0
10
.type nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_0,@function
13
* This code is in public domain
17
nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_0:
25
/* Load %mm7 with [0 0 0 0] */
29
/* Load %mm6 with [128 128 128 128] */
30
movl $0x80808080, %eax
34
/* Load %mm5 with [255 255 255 255] */
35
movl $0xffffffff, %eax
39
/* Load %mm0 with [a a a a] */
93
testl $0xff000000, %eax
98
/* [a a a 255] -> %mm3 */
102
orl $0xff000000, %eax
106
/* [Fg * a] -> mm1 */
114
/* Multiply by alpha */
122
/* [255 - FgA] -> mm2 */
132
/* Fg + ((255 - FgA) * Bg) / 255 */
180
.size nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_0,.Lfe2-nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_0
188
* d -32(%ebp) -> %edi
189
* i -60(%ebp) -> %esi
190
* sx -64(%ebp) -> %ebx
202
.globl nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_n
203
.type nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_n,@function
204
nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_n:
212
/* Load %mm7 with [0 0 0 0] */
216
/* Load %mm6 with [128 128 128 128] */
217
movl $0x80808080, %eax
221
/* Load %mm5 with [255 255 255 255] */
222
movl $0xffffffff, %eax
226
/* Load %mm0 with [a a a a] */
227
movzbl 48(%ebp), %eax
233
movzbl 52(%ebp), %ecx
267
/* Zero accumulator */
270
/* Set i to dptr (size - 1) */
279
movl (%edi,%esi), %ebx
281
/* Test negative before shift */
287
/* We multiply sx by 4 here */
290
movl 4(%edi,%esi), %eax
292
/* Test negative before shift */
298
/* We multiply sy by srs here */
306
testl $0xff000000, %eax
311
/* [a a a 255] -> %mm3 */
315
orl $0xff000000, %eax
319
/* [Fg * a] -> mm1 */
327
/* Add to accumulator */
334
/* Divide components by sample size */
338
/* Multiply by alpha */
346
/* [255 - FgA] -> mm1 */
357
/* Fg + ((255 - FgA) * Bg) / 255 */
413
.size nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_n,.Lfe3-nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_n
414
.ident "GCC: (GNU) 3.2"