Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 52384
Collapse All | Expand All

(-)/var/tmp/portage/xawtv-3.86-r1/work/xawtv-3.86/libng/contrib-plugins/linear-blend.c.old (-14 lines)
Lines 42-86 Link Here
42
#ifdef MMX
42
#ifdef MMX
43
  asm volatile(
43
  asm volatile(
44
       "leal (%0, %1), %%eax                           \n\t"
44
       "leal (%0, %1), %%eax                           \n\t"
45
       "leal (%%eax, %1, 4), %%ebx                     \n\t"
46
45
47
       "movq (%0), %%mm0                               \n\t" // L0
46
       "movq (%0), %%mm0                               \n\t" // L0
48
       "movq (%%eax, %1), %%mm1                        \n\t" // L2
49
       PAVGB(%%mm1, %%mm0)                                   // L0+L2
47
       PAVGB(%%mm1, %%mm0)                                   // L0+L2
50
       "movq (%%eax), %%mm2                            \n\t" // L1
51
       PAVGB(%%mm2, %%mm0)
48
       PAVGB(%%mm2, %%mm0)
52
       "movq %%mm0, (%0)                               \n\t"
49
       "movq %%mm0, (%0)                               \n\t"
53
       "movq (%%eax, %1, 2), %%mm0                     \n\t" // L3
54
       PAVGB(%%mm0, %%mm2)                                   // L1+L3
50
       PAVGB(%%mm0, %%mm2)                                   // L1+L3
55
       PAVGB(%%mm1, %%mm2)                                   // 2L2 + L1 + L3
51
       PAVGB(%%mm1, %%mm2)                                   // 2L2 + L1 + L3
56
       "movq %%mm2, (%%eax)                            \n\t"
57
       "movq (%0, %1, 4), %%mm2                        \n\t" // L4
52
       "movq (%0, %1, 4), %%mm2                        \n\t" // L4
58
       PAVGB(%%mm2, %%mm1)                                   // L2+L4
53
       PAVGB(%%mm2, %%mm1)                                   // L2+L4
59
       PAVGB(%%mm0, %%mm1)                                   // 2L3 + L2 + L4
54
       PAVGB(%%mm0, %%mm1)                                   // 2L3 + L2 + L4
60
       "movq %%mm1, (%%eax, %1)                        \n\t"
61
       "movq (%%ebx), %%mm1                            \n\t" // L5
62
       PAVGB(%%mm1, %%mm0)                                   // L3+L5
55
       PAVGB(%%mm1, %%mm0)                                   // L3+L5
63
       PAVGB(%%mm2, %%mm0)                                   // 2L4 + L3 + L5
56
       PAVGB(%%mm2, %%mm0)                                   // 2L4 + L3 + L5
64
       "movq %%mm0, (%%eax, %1, 2)                     \n\t"
65
       "movq (%%ebx, %1), %%mm0                        \n\t" // L6
66
       PAVGB(%%mm0, %%mm2)                                   // L4+L6
57
       PAVGB(%%mm0, %%mm2)                                   // L4+L6
67
       PAVGB(%%mm1, %%mm2)                                   // 2L5 + L4 + L6
58
       PAVGB(%%mm1, %%mm2)                                   // 2L5 + L4 + L6
68
       "movq %%mm2, (%0, %1, 4)                        \n\t"
59
       "movq %%mm2, (%0, %1, 4)                        \n\t"
69
       "movq (%%ebx, %1, 2), %%mm2                     \n\t" // L7
70
       PAVGB(%%mm2, %%mm1)                                   // L5+L7
60
       PAVGB(%%mm2, %%mm1)                                   // L5+L7
71
       PAVGB(%%mm0, %%mm1)                                   // 2L6 + L5 + L7
61
       PAVGB(%%mm0, %%mm1)                                   // 2L6 + L5 + L7
72
       "movq %%mm1, (%%ebx)                            \n\t"
73
       "movq (%0, %1, 8), %%mm1                        \n\t" // L8
62
       "movq (%0, %1, 8), %%mm1                        \n\t" // L8
74
       PAVGB(%%mm1, %%mm0)                                   // L6+L8
63
       PAVGB(%%mm1, %%mm0)                                   // L6+L8
75
       PAVGB(%%mm2, %%mm0)                                   // 2L7 + L6 + L8
64
       PAVGB(%%mm2, %%mm0)                                   // 2L7 + L6 + L8
76
       "movq %%mm0, (%%ebx, %1)                        \n\t"
77
       "movq (%%ebx, %1, 4), %%mm0                     \n\t" // L9
65
       "movq (%%ebx, %1, 4), %%mm0                     \n\t" // L9
78
       PAVGB(%%mm0, %%mm2)                                   // L7+L9
66
       PAVGB(%%mm0, %%mm2)                                   // L7+L9
79
       PAVGB(%%mm1, %%mm2)                                   // 2L8 + L7 + L9
67
       PAVGB(%%mm1, %%mm2)                                   // 2L8 + L7 + L9
80
       "movq %%mm2, (%%ebx, %1, 2)                     \n\t"
81
68
82
       : : "r" (src), "r" (stride)
69
       : : "r" (src), "r" (stride)
83
       : "%eax", "%ebx"
84
  );
70
  );
85
  emms();
71
  emms();
86
#else
72
#else

Return to bug 52384