Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 179872 | Differences between
and this patch

Collapse All | Expand All

(-)a/libswscale/rgb2rgb_template.c (-18 / +18 lines)
Lines 127-140 Link Here
127
            "psrlq         $8, %%mm3    \n\t" \
127
            "psrlq         $8, %%mm3    \n\t" \
128
            "psrlq         $8, %%mm6    \n\t" \
128
            "psrlq         $8, %%mm6    \n\t" \
129
            "psrlq         $8, %%mm7    \n\t" \
129
            "psrlq         $8, %%mm7    \n\t" \
130
            "pand "MANGLE(mask24l)", %%mm0\n\t" \
130
            "pand        %2, %%mm0\n\t" \
131
            "pand "MANGLE(mask24l)", %%mm1\n\t" \
131
            "pand        %2, %%mm1\n\t" \
132
            "pand "MANGLE(mask24l)", %%mm4\n\t" \
132
            "pand        %2, %%mm4\n\t" \
133
            "pand "MANGLE(mask24l)", %%mm5\n\t" \
133
            "pand        %2, %%mm5\n\t" \
134
            "pand "MANGLE(mask24h)", %%mm2\n\t" \
134
            "pand        %3, %%mm2\n\t" \
135
            "pand "MANGLE(mask24h)", %%mm3\n\t" \
135
            "pand        %3, %%mm3\n\t" \
136
            "pand "MANGLE(mask24h)", %%mm6\n\t" \
136
            "pand        %3, %%mm6\n\t" \
137
            "pand "MANGLE(mask24h)", %%mm7\n\t" \
137
            "pand        %3, %%mm7\n\t" \
138
            "por        %%mm2, %%mm0    \n\t" \
138
            "por        %%mm2, %%mm0    \n\t" \
139
            "por        %%mm3, %%mm1    \n\t" \
139
            "por        %%mm3, %%mm1    \n\t" \
140
            "por        %%mm6, %%mm4    \n\t" \
140
            "por        %%mm6, %%mm4    \n\t" \
Lines 144-157 Link Here
144
            "movq       %%mm4, %%mm3    \n\t" \
144
            "movq       %%mm4, %%mm3    \n\t" \
145
            "psllq        $48, %%mm2    \n\t" \
145
            "psllq        $48, %%mm2    \n\t" \
146
            "psllq        $32, %%mm3    \n\t" \
146
            "psllq        $32, %%mm3    \n\t" \
147
            "pand "MANGLE(mask24hh)", %%mm2\n\t" \
147
            "pand         %4, %%mm2\n\t" \
148
            "pand "MANGLE(mask24hhh)", %%mm3\n\t" \
148
            "pand         %5, %%mm3\n\t" \
149
            "por        %%mm2, %%mm0    \n\t" \
149
            "por        %%mm2, %%mm0    \n\t" \
150
            "psrlq        $16, %%mm1    \n\t" \
150
            "psrlq        $16, %%mm1    \n\t" \
151
            "psrlq        $32, %%mm4    \n\t" \
151
            "psrlq        $32, %%mm4    \n\t" \
152
            "psllq        $16, %%mm5    \n\t" \
152
            "psllq        $16, %%mm5    \n\t" \
153
            "por        %%mm3, %%mm1    \n\t" \
153
            "por        %%mm3, %%mm1    \n\t" \
154
            "pand  "MANGLE(mask24hhhh)", %%mm5\n\t" \
154
            "pand         %6, %%mm5\n\t" \
155
            "por        %%mm5, %%mm4    \n\t" \
155
            "por        %%mm5, %%mm4    \n\t" \
156
 \
156
 \
157
            MOVNTQ"     %%mm0,   %0     \n\t" \
157
            MOVNTQ"     %%mm0,   %0     \n\t" \
Lines 184-190 Link Here
184
            "movq       %%mm5, %%mm7    \n\t"
184
            "movq       %%mm5, %%mm7    \n\t"
185
            STORE_BGR24_MMX
185
            STORE_BGR24_MMX
186
            :"=m"(*dest)
186
            :"=m"(*dest)
187
            :"m"(*s)
187
            :"m"(*s), "m"(mask24l), "m"(mask24h), "m"(mask24hh), "m"(mask24hhh), "m"(mask24hhhh)
188
            :"memory");
188
            :"memory");
189
        dest += 24;
189
        dest += 24;
190
        s += 32;
190
        s += 32;
Lines 977-983 Link Here
977
            STORE_BGR24_MMX
977
            STORE_BGR24_MMX
978
978
979
            :"=m"(*d)
979
            :"=m"(*d)
980
            :"m"(*s)
980
            :"m"(*s), "m"(mask24l), "m"(mask24h), "m"(mask24hh), "m"(mask24hhh), "m"(mask24hhhh)
981
            :"memory");
981
            :"memory");
982
        d += 24;
982
        d += 24;
983
        s += 8;
983
        s += 8;
Lines 1083-1089 Link Here
1083
            STORE_BGR24_MMX
1083
            STORE_BGR24_MMX
1084
1084
1085
            :"=m"(*d)
1085
            :"=m"(*d)
1086
            :"m"(*s)
1086
            :"m"(*s), "m"(mask24l), "m"(mask24h), "m"(mask24hh), "m"(mask24hhh), "m"(mask24hhhh)
1087
            :"memory");
1087
            :"memory");
1088
        d += 24;
1088
        d += 24;
1089
        s += 8;
1089
        s += 8;
Lines 1297-1305 Link Here
1297
    __asm__ volatile (
1297
    __asm__ volatile (
1298
        "test             %%"REG_a", %%"REG_a"          \n\t"
1298
        "test             %%"REG_a", %%"REG_a"          \n\t"
1299
        "jns                     2f                     \n\t"
1299
        "jns                     2f                     \n\t"
1300
        "movq     "MANGLE(mask24r)", %%mm5              \n\t"
1300
        "movq                %3, %%mm5              \n\t"
1301
        "movq     "MANGLE(mask24g)", %%mm6              \n\t"
1301
        "movq                %4, %%mm6              \n\t"
1302
        "movq     "MANGLE(mask24b)", %%mm7              \n\t"
1302
        "movq                %5, %%mm7              \n\t"
1303
        ASMALIGN(4)
1303
        ASMALIGN(4)
1304
        "1:                                             \n\t"
1304
        "1:                                             \n\t"
1305
        PREFETCH" 32(%1, %%"REG_a")                     \n\t"
1305
        PREFETCH" 32(%1, %%"REG_a")                     \n\t"
Lines 1335-1341 Link Here
1335
        " js                     1b                     \n\t"
1335
        " js                     1b                     \n\t"
1336
        "2:                                             \n\t"
1336
        "2:                                             \n\t"
1337
        : "+a" (mmx_size)
1337
        : "+a" (mmx_size)
1338
        : "r" (src-mmx_size), "r"(dst-mmx_size)
1338
        : "r" (src-mmx_size), "r"(dst-mmx_size), "m"(mask24r), "m"(mask24g), "m"(mask24b)
1339
    );
1339
    );
1340
1340
1341
    __asm__ volatile(SFENCE:::"memory");
1341
    __asm__ volatile(SFENCE:::"memory");

Return to bug 179872