Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
f6759d9a
Commit
f6759d9a
authored
Apr 08, 2014
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
swscale/x86/swscale_template: loose hardcoded dstw_offset
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
e20e854c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
41 deletions
+37
-41
swscale_template.c
libswscale/x86/swscale_template.c
+37
-41
No files found.
libswscale/x86/swscale_template.c
View file @
f6759d9a
...
...
@@ -338,7 +338,7 @@ static void RENAME(yuv2yuvX)(const int16_t *filter, int filterSize,
MOVNTQ( q3, 24(dst, index, 4))\
\
"add $8, "#index" \n\t"\
"cmp
"#
dstw", "#index" \n\t"\
"cmp
"
dstw", "#index" \n\t"\
" jb 1b \n\t"
#define WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t) REAL_WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t)
...
...
@@ -364,13 +364,13 @@ static void RENAME(yuv2rgb32_X_ar)(SwsContext *c, const int16_t *lumFilter,
"psraw $3, %%mm1
\n\t
"
"psraw $3, %%mm7
\n\t
"
"packuswb %%mm7, %%mm1
\n\t
"
WRITEBGR32
(
%
4
,
%
5
,
%%
REGa
,
%%
mm3
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm2
,
%%
mm6
)
WRITEBGR32
(
%
4
,
"%5"
,
%%
REGa
,
%%
mm3
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm2
,
%%
mm6
)
YSCALEYUV2PACKEDX_END
}
else
{
YSCALEYUV2PACKEDX_ACCURATE
YSCALEYUV2RGBX
"pcmpeqd %%mm7, %%mm7
\n\t
"
WRITEBGR32
(
%
4
,
%
5
,
%%
REGa
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%
4
,
"%5"
,
%%
REGa
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
YSCALEYUV2PACKEDX_END
}
}
...
...
@@ -393,13 +393,13 @@ static void RENAME(yuv2rgb32_X)(SwsContext *c, const int16_t *lumFilter,
"psraw $3, %%mm1
\n\t
"
"psraw $3, %%mm7
\n\t
"
"packuswb %%mm7, %%mm1
\n\t
"
WRITEBGR32
(
%
4
,
%
5
,
%%
REGa
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%
4
,
"%5"
,
%%
REGa
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm3
,
%%
mm6
)
YSCALEYUV2PACKEDX_END
}
else
{
YSCALEYUV2PACKEDX
YSCALEYUV2RGBX
"pcmpeqd %%mm7, %%mm7
\n\t
"
WRITEBGR32
(
%
4
,
%
5
,
%%
REGa
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%
4
,
"%5"
,
%%
REGa
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
YSCALEYUV2PACKEDX_END
}
}
...
...
@@ -428,7 +428,7 @@ static void RENAME(yuv2rgb32_X)(SwsContext *c, const int16_t *lumFilter,
MOVNTQ(%%mm1, 8(dst, index, 2))\
\
"add $8, "#index" \n\t"\
"cmp
"#
dstw", "#index" \n\t"\
"cmp
"
dstw", "#index" \n\t"\
" jb 1b \n\t"
#define WRITERGB16(dst, dstw, index) REAL_WRITERGB16(dst, dstw, index)
...
...
@@ -452,7 +452,7 @@ static void RENAME(yuv2rgb565_X_ar)(SwsContext *c, const int16_t *lumFilter,
"paddusb "
GREEN_DITHER
"(%0), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%0), %%mm5
\n\t
"
#endif
WRITERGB16
(
%
4
,
%
5
,
%%
REGa
)
WRITERGB16
(
%
4
,
"%5"
,
%%
REGa
)
YSCALEYUV2PACKEDX_END
}
...
...
@@ -476,7 +476,7 @@ static void RENAME(yuv2rgb565_X)(SwsContext *c, const int16_t *lumFilter,
"paddusb "
GREEN_DITHER
"(%0), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%0), %%mm5
\n\t
"
#endif
WRITERGB16
(
%
4
,
%
5
,
%%
REGa
)
WRITERGB16
(
%
4
,
"%5"
,
%%
REGa
)
YSCALEYUV2PACKEDX_END
}
...
...
@@ -505,7 +505,7 @@ static void RENAME(yuv2rgb565_X)(SwsContext *c, const int16_t *lumFilter,
MOVNTQ(%%mm1, 8(dst, index, 2))\
\
"add $8, "#index" \n\t"\
"cmp
"#
dstw", "#index" \n\t"\
"cmp
"
dstw", "#index" \n\t"\
" jb 1b \n\t"
#define WRITERGB15(dst, dstw, index) REAL_WRITERGB15(dst, dstw, index)
...
...
@@ -529,7 +529,7 @@ static void RENAME(yuv2rgb555_X_ar)(SwsContext *c, const int16_t *lumFilter,
"paddusb "
GREEN_DITHER
"(%0), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%0), %%mm5
\n\t
"
#endif
WRITERGB15
(
%
4
,
%
5
,
%%
REGa
)
WRITERGB15
(
%
4
,
"%5"
,
%%
REGa
)
YSCALEYUV2PACKEDX_END
}
...
...
@@ -553,7 +553,7 @@ static void RENAME(yuv2rgb555_X)(SwsContext *c, const int16_t *lumFilter,
"paddusb "
GREEN_DITHER
"(%0), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%0), %%mm5
\n\t
"
#endif
WRITERGB15
(
%
4
,
%
5
,
%%
REGa
)
WRITERGB15
(
%
4
,
"%5"
,
%%
REGa
)
YSCALEYUV2PACKEDX_END
}
...
...
@@ -607,7 +607,7 @@ static void RENAME(yuv2rgb555_X)(SwsContext *c, const int16_t *lumFilter,
"add $24, "#dst" \n\t"\
\
"add $8, "#index" \n\t"\
"cmp
"#
dstw", "#index" \n\t"\
"cmp
"
dstw", "#index" \n\t"\
" jb 1b \n\t"
#define WRITEBGR24MMXEXT(dst, dstw, index) \
...
...
@@ -655,7 +655,7 @@ static void RENAME(yuv2rgb555_X)(SwsContext *c, const int16_t *lumFilter,
"add $24, "#dst" \n\t"\
\
"add $8, "#index" \n\t"\
"cmp
"#
dstw", "#index" \n\t"\
"cmp
"
dstw", "#index" \n\t"\
" jb 1b \n\t"
#if COMPILE_TEMPLATE_MMXEXT
...
...
@@ -682,7 +682,7 @@ static void RENAME(yuv2bgr24_X_ar)(SwsContext *c, const int16_t *lumFilter,
"pxor %%mm7, %%mm7
\n\t
"
"lea (%%"
REG_a
", %%"
REG_a
", 2), %%"
REG_c
"
\n\t
"
//FIXME optimize
"add %4, %%"
REG_c
"
\n\t
"
WRITEBGR24
(
%%
REGc
,
%
5
,
%%
REGa
)
WRITEBGR24
(
%%
REGc
,
"%5"
,
%%
REGa
)
::
"r"
(
&
c
->
redDither
),
"m"
(
dummy
),
"m"
(
dummy
),
"m"
(
dummy
),
"r"
(
dest
),
"m"
(
dstW_reg
),
"m"
(
uv_off
)
...
...
@@ -707,7 +707,7 @@ static void RENAME(yuv2bgr24_X)(SwsContext *c, const int16_t *lumFilter,
"pxor %%mm7, %%mm7
\n\t
"
"lea (%%"
REG_a
", %%"
REG_a
", 2), %%"
REG_c
"
\n\t
"
//FIXME optimize
"add %4, %%"
REG_c
"
\n\t
"
WRITEBGR24
(
%%
REGc
,
%
5
,
%%
REGa
)
WRITEBGR24
(
%%
REGc
,
"%5"
,
%%
REGa
)
::
"r"
(
&
c
->
redDither
),
"m"
(
dummy
),
"m"
(
dummy
),
"m"
(
dummy
),
"r"
(
dest
),
"m"
(
dstW_reg
),
"m"
(
uv_off
)
...
...
@@ -729,7 +729,7 @@ static void RENAME(yuv2bgr24_X)(SwsContext *c, const int16_t *lumFilter,
MOVNTQ(%%mm7, 8(dst, index, 2))\
\
"add $8, "#index" \n\t"\
"cmp
"#
dstw", "#index" \n\t"\
"cmp
"
dstw", "#index" \n\t"\
" jb 1b \n\t"
#define WRITEYUY2(dst, dstw, index) REAL_WRITEYUY2(dst, dstw, index)
...
...
@@ -750,7 +750,7 @@ static void RENAME(yuv2yuyv422_X_ar)(SwsContext *c, const int16_t *lumFilter,
"psraw $3, %%mm4
\n\t
"
"psraw $3, %%mm1
\n\t
"
"psraw $3, %%mm7
\n\t
"
WRITEYUY2
(
%
4
,
%
5
,
%%
REGa
)
WRITEYUY2
(
%
4
,
"%5"
,
%%
REGa
)
YSCALEYUV2PACKEDX_END
}
...
...
@@ -771,7 +771,7 @@ static void RENAME(yuv2yuyv422_X)(SwsContext *c, const int16_t *lumFilter,
"psraw $3, %%mm4
\n\t
"
"psraw $3, %%mm1
\n\t
"
"psraw $3, %%mm7
\n\t
"
WRITEYUY2
(
%
4
,
%
5
,
%%
REGa
)
WRITEYUY2
(
%
4
,
"%5"
,
%%
REGa
)
YSCALEYUV2PACKEDX_END
}
...
...
@@ -872,7 +872,7 @@ static void RENAME(yuv2rgb32_2)(SwsContext *c, const int16_t *buf[2],
"psraw $3, %%mm1
\n\t
"
/* abuf0[eax] - abuf1[eax] >>7*/
"psraw $3, %%mm7
\n\t
"
/* abuf0[eax] - abuf1[eax] >>7*/
"packuswb %%mm7, %%mm1
\n\t
"
WRITEBGR32
(
%
4
,
8280
(
%
5
)
,
%%
r8
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%
4
,
DSTW_OFFSET
"(%5)"
,
%%
r8
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm3
,
%%
mm6
)
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"r"
(
dest
),
"a"
(
&
c
->
redDither
),
"r"
(
abuf0
),
"r"
(
abuf1
)
...
...
@@ -896,7 +896,7 @@ static void RENAME(yuv2rgb32_2)(SwsContext *c, const int16_t *buf[2],
"packuswb %%mm7, %%mm1
\n\t
"
"pop %1
\n\t
"
"pop %0
\n\t
"
WRITEBGR32
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm1
,
%%
mm0
,
%%
mm7
,
%%
mm3
,
%%
mm6
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -910,7 +910,7 @@ static void RENAME(yuv2rgb32_2)(SwsContext *c, const int16_t *buf[2],
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB
(
%%
REGBP
,
%
5
)
"pcmpeqd %%mm7, %%mm7
\n\t
"
WRITEBGR32
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -927,14 +927,13 @@ static void RENAME(yuv2bgr24_2)(SwsContext *c, const int16_t *buf[2],
const
int16_t
*
buf0
=
buf
[
0
],
*
buf1
=
buf
[
1
],
*
ubuf0
=
ubuf
[
0
],
*
ubuf1
=
ubuf
[
1
];
//Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
__asm__
volatile
(
"mov %%"
REG_b
", "
ESP_OFFSET
"(%5)
\n\t
"
"mov %4, %%"
REG_b
"
\n\t
"
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB
(
%%
REGBP
,
%
5
)
"pxor %%mm7, %%mm7
\n\t
"
WRITEBGR24
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITEBGR24
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -951,7 +950,6 @@ static void RENAME(yuv2rgb555_2)(SwsContext *c, const int16_t *buf[2],
const
int16_t
*
buf0
=
buf
[
0
],
*
buf1
=
buf
[
1
],
*
ubuf0
=
ubuf
[
0
],
*
ubuf1
=
ubuf
[
1
];
//Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
__asm__
volatile
(
"mov %%"
REG_b
", "
ESP_OFFSET
"(%5)
\n\t
"
"mov %4, %%"
REG_b
"
\n\t
"
...
...
@@ -964,7 +962,7 @@ static void RENAME(yuv2rgb555_2)(SwsContext *c, const int16_t *buf[2],
"paddusb "
GREEN_DITHER
"(%5), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%5), %%mm5
\n\t
"
#endif
WRITERGB15
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITERGB15
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -981,7 +979,6 @@ static void RENAME(yuv2rgb565_2)(SwsContext *c, const int16_t *buf[2],
const
int16_t
*
buf0
=
buf
[
0
],
*
buf1
=
buf
[
1
],
*
ubuf0
=
ubuf
[
0
],
*
ubuf1
=
ubuf
[
1
];
//Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
__asm__
volatile
(
"mov %%"
REG_b
", "
ESP_OFFSET
"(%5)
\n\t
"
"mov %4, %%"
REG_b
"
\n\t
"
...
...
@@ -994,7 +991,7 @@ static void RENAME(yuv2rgb565_2)(SwsContext *c, const int16_t *buf[2],
"paddusb "
GREEN_DITHER
"(%5), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%5), %%mm5
\n\t
"
#endif
WRITERGB16
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITERGB16
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1051,13 +1048,12 @@ static void RENAME(yuv2yuyv422_2)(SwsContext *c, const int16_t *buf[2],
const
int16_t
*
buf0
=
buf
[
0
],
*
buf1
=
buf
[
1
],
*
ubuf0
=
ubuf
[
0
],
*
ubuf1
=
ubuf
[
1
];
//Note 8280 == DSTW_OFFSET but the preprocessor can't handle that there :(
__asm__
volatile
(
"mov %%"
REG_b
", "
ESP_OFFSET
"(%5)
\n\t
"
"mov %4, %%"
REG_b
"
\n\t
"
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2PACKED
(
%%
REGBP
,
%
5
)
WRITEYUY2
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITEYUY2
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1200,7 +1196,7 @@ static void RENAME(yuv2rgb32_1)(SwsContext *c, const int16_t *buf0,
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB1
(
%%
REGBP
,
%
5
)
YSCALEYUV2RGB1_ALPHA
(
%%
REGBP
)
WRITEBGR32
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
abuf0
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1213,7 +1209,7 @@ static void RENAME(yuv2rgb32_1)(SwsContext *c, const int16_t *buf0,
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB1
(
%%
REGBP
,
%
5
)
"pcmpeqd %%mm7, %%mm7
\n\t
"
WRITEBGR32
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1229,7 +1225,7 @@ static void RENAME(yuv2rgb32_1)(SwsContext *c, const int16_t *buf0,
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB1b
(
%%
REGBP
,
%
5
)
YSCALEYUV2RGB1_ALPHA
(
%%
REGBP
)
WRITEBGR32
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
abuf0
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1242,7 +1238,7 @@ static void RENAME(yuv2rgb32_1)(SwsContext *c, const int16_t *buf0,
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB1b
(
%%
REGBP
,
%
5
)
"pcmpeqd %%mm7, %%mm7
\n\t
"
WRITEBGR32
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
WRITEBGR32
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
,
%%
mm2
,
%%
mm4
,
%%
mm5
,
%%
mm7
,
%%
mm0
,
%%
mm1
,
%%
mm3
,
%%
mm6
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1268,7 +1264,7 @@ static void RENAME(yuv2bgr24_1)(SwsContext *c, const int16_t *buf0,
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB1
(
%%
REGBP
,
%
5
)
"pxor %%mm7, %%mm7
\n\t
"
WRITEBGR24
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITEBGR24
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1283,7 +1279,7 @@ static void RENAME(yuv2bgr24_1)(SwsContext *c, const int16_t *buf0,
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2RGB1b
(
%%
REGBP
,
%
5
)
"pxor %%mm7, %%mm7
\n\t
"
WRITEBGR24
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITEBGR24
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1315,7 +1311,7 @@ static void RENAME(yuv2rgb555_1)(SwsContext *c, const int16_t *buf0,
"paddusb "
GREEN_DITHER
"(%5), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%5), %%mm5
\n\t
"
#endif
WRITERGB15
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITERGB15
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1336,7 +1332,7 @@ static void RENAME(yuv2rgb555_1)(SwsContext *c, const int16_t *buf0,
"paddusb "
GREEN_DITHER
"(%5), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%5), %%mm5
\n\t
"
#endif
WRITERGB15
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITERGB15
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1368,7 +1364,7 @@ static void RENAME(yuv2rgb565_1)(SwsContext *c, const int16_t *buf0,
"paddusb "
GREEN_DITHER
"(%5), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%5), %%mm5
\n\t
"
#endif
WRITERGB16
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITERGB16
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1389,7 +1385,7 @@ static void RENAME(yuv2rgb565_1)(SwsContext *c, const int16_t *buf0,
"paddusb "
GREEN_DITHER
"(%5), %%mm4
\n\t
"
"paddusb "
RED_DITHER
"(%5), %%mm5
\n\t
"
#endif
WRITERGB16
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITERGB16
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1451,7 +1447,7 @@ static void RENAME(yuv2yuyv422_1)(SwsContext *c, const int16_t *buf0,
"mov %4, %%"
REG_b
"
\n\t
"
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2PACKED1
(
%%
REGBP
,
%
5
)
WRITEYUY2
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITEYUY2
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
@@ -1464,7 +1460,7 @@ static void RENAME(yuv2yuyv422_1)(SwsContext *c, const int16_t *buf0,
"mov %4, %%"
REG_b
"
\n\t
"
"push %%"
REG_BP
"
\n\t
"
YSCALEYUV2PACKED1b
(
%%
REGBP
,
%
5
)
WRITEYUY2
(
%%
REGb
,
8280
(
%
5
)
,
%%
REGBP
)
WRITEYUY2
(
%%
REGb
,
DSTW_OFFSET
"(%5)"
,
%%
REGBP
)
"pop %%"
REG_BP
"
\n\t
"
"mov "
ESP_OFFSET
"(%5), %%"
REG_b
"
\n\t
"
::
"c"
(
buf0
),
"d"
(
buf1
),
"S"
(
ubuf0
),
"D"
(
ubuf1
),
"m"
(
dest
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment