Commit 0ab9e7bd authored by michael's avatar michael

only 6 registers used


git-svn-id: file:///var/local/repositories/mplayer/trunk/postproc@2729 b3059339-0415-0410-9bf9-f77b7e298cf2
parent 2128e949
...@@ -474,10 +474,10 @@ static int canMMX2BeUsed=0; ...@@ -474,10 +474,10 @@ static int canMMX2BeUsed=0;
"psllq $16, %%mm3 \n\t" /* RGBRGB00 3 */\ "psllq $16, %%mm3 \n\t" /* RGBRGB00 3 */\
"por %%mm4, %%mm3 \n\t" /* RGBRGBRG 2.5 */\ "por %%mm4, %%mm3 \n\t" /* RGBRGBRG 2.5 */\
\ \
"leal (%%eax, %%eax, 2), %%ebx \n\t"\ MOVNTQ(%%mm0, (%%ebx))\
MOVNTQ(%%mm0, (%4, %%ebx))\ MOVNTQ(%%mm2, 8(%%ebx))\
MOVNTQ(%%mm2, 8(%4, %%ebx))\ MOVNTQ(%%mm3, 16(%%ebx))\
MOVNTQ(%%mm3, 16(%4, %%ebx))\ "addl $24, %%ebx \n\t"\
\ \
"addl $8, %%eax \n\t"\ "addl $8, %%eax \n\t"\
"cmpl %5, %%eax \n\t"\ "cmpl %5, %%eax \n\t"\
...@@ -740,10 +740,11 @@ FULL_YSCALEYUV2RGB ...@@ -740,10 +740,11 @@ FULL_YSCALEYUV2RGB
else if(dstbpp==24) else if(dstbpp==24)
{ {
asm volatile( asm volatile(
"movl %4, %%ebx \n\t"
YSCALEYUV2RGB YSCALEYUV2RGB
WRITEBGR24 WRITEBGR24
:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw), :: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "m" (dest), "m" (dstw),
"m" (yalpha1), "m" (uvalpha1) "m" (yalpha1), "m" (uvalpha1)
: "%eax", "%ebx" : "%eax", "%ebx"
); );
...@@ -922,9 +923,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui ...@@ -922,9 +923,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui
else if(dstbpp==24) else if(dstbpp==24)
{ {
asm volatile( asm volatile(
"movl %4, %%ebx \n\t"
YSCALEYUV2RGB1 YSCALEYUV2RGB1
WRITEBGR24 WRITEBGR24
:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw), :: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "m" (dest), "m" (dstw),
"m" (yalpha1), "m" (uvalpha1) "m" (yalpha1), "m" (uvalpha1)
: "%eax", "%ebx" : "%eax", "%ebx"
); );
...@@ -978,9 +980,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui ...@@ -978,9 +980,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui
else if(dstbpp==24) else if(dstbpp==24)
{ {
asm volatile( asm volatile(
"movl %4, %%ebx \n\t"
YSCALEYUV2RGB1b YSCALEYUV2RGB1b
WRITEBGR24 WRITEBGR24
:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw), :: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "m" (dest), "m" (dstw),
"m" (yalpha1), "m" (uvalpha1) "m" (yalpha1), "m" (uvalpha1)
: "%eax", "%ebx" : "%eax", "%ebx"
); );
......
...@@ -474,10 +474,10 @@ static int canMMX2BeUsed=0; ...@@ -474,10 +474,10 @@ static int canMMX2BeUsed=0;
"psllq $16, %%mm3 \n\t" /* RGBRGB00 3 */\ "psllq $16, %%mm3 \n\t" /* RGBRGB00 3 */\
"por %%mm4, %%mm3 \n\t" /* RGBRGBRG 2.5 */\ "por %%mm4, %%mm3 \n\t" /* RGBRGBRG 2.5 */\
\ \
"leal (%%eax, %%eax, 2), %%ebx \n\t"\ MOVNTQ(%%mm0, (%%ebx))\
MOVNTQ(%%mm0, (%4, %%ebx))\ MOVNTQ(%%mm2, 8(%%ebx))\
MOVNTQ(%%mm2, 8(%4, %%ebx))\ MOVNTQ(%%mm3, 16(%%ebx))\
MOVNTQ(%%mm3, 16(%4, %%ebx))\ "addl $24, %%ebx \n\t"\
\ \
"addl $8, %%eax \n\t"\ "addl $8, %%eax \n\t"\
"cmpl %5, %%eax \n\t"\ "cmpl %5, %%eax \n\t"\
...@@ -740,10 +740,11 @@ FULL_YSCALEYUV2RGB ...@@ -740,10 +740,11 @@ FULL_YSCALEYUV2RGB
else if(dstbpp==24) else if(dstbpp==24)
{ {
asm volatile( asm volatile(
"movl %4, %%ebx \n\t"
YSCALEYUV2RGB YSCALEYUV2RGB
WRITEBGR24 WRITEBGR24
:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw), :: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "m" (dest), "m" (dstw),
"m" (yalpha1), "m" (uvalpha1) "m" (yalpha1), "m" (uvalpha1)
: "%eax", "%ebx" : "%eax", "%ebx"
); );
...@@ -922,9 +923,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui ...@@ -922,9 +923,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui
else if(dstbpp==24) else if(dstbpp==24)
{ {
asm volatile( asm volatile(
"movl %4, %%ebx \n\t"
YSCALEYUV2RGB1 YSCALEYUV2RGB1
WRITEBGR24 WRITEBGR24
:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw), :: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "m" (dest), "m" (dstw),
"m" (yalpha1), "m" (uvalpha1) "m" (yalpha1), "m" (uvalpha1)
: "%eax", "%ebx" : "%eax", "%ebx"
); );
...@@ -978,9 +980,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui ...@@ -978,9 +980,10 @@ static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, ui
else if(dstbpp==24) else if(dstbpp==24)
{ {
asm volatile( asm volatile(
"movl %4, %%ebx \n\t"
YSCALEYUV2RGB1b YSCALEYUV2RGB1b
WRITEBGR24 WRITEBGR24
:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw), :: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "m" (dest), "m" (dstw),
"m" (yalpha1), "m" (uvalpha1) "m" (yalpha1), "m" (uvalpha1)
: "%eax", "%ebx" : "%eax", "%ebx"
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment