diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2005-10-12 12:11:27 +0000 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2005-10-12 12:11:27 +0000 |
commit | 7f526efd17973ec6d2204f7a47b6923e2be31363 (patch) | |
tree | ec12de11a1d1eb51e1ca63f32491742d9801fe24 /postproc/swscale_template.c | |
parent | b926572aa9548617483ee6d24a360ef939732333 (diff) | |
download | ffmpeg-7f526efd17973ec6d2204f7a47b6923e2be31363.tar.gz |
Change unsigned->signed and int->long, this fits the asm code better on 64
bit systems.
Also fixes several crashes because (long)-i is incorrect if i is unsigned.
Originally committed as revision 16740 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
Diffstat (limited to 'postproc/swscale_template.c')
-rw-r--r-- | postproc/swscale_template.c | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/postproc/swscale_template.c b/postproc/swscale_template.c index 1a68deecc7..3c503e3c72 100644 --- a/postproc/swscale_template.c +++ b/postproc/swscale_template.c @@ -757,7 +757,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, int16_t *lumFilter, int16_t **lumSrc, int lumFilterSize, int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize, - uint8_t *dest, uint8_t *uDest, uint8_t *vDest, int dstW, int chrDstW) + uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW) { #ifdef HAVE_MMX if(uDest != NULL) @@ -765,14 +765,14 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, int16_t *lumFilter, int16_t * asm volatile( YSCALEYUV2YV12X(0, CHR_MMX_FILTER_OFFSET) :: "r" (&c->redDither), - "r" (uDest), "p" ((long)chrDstW) + "r" (uDest), "p" (chrDstW) : "%"REG_a, "%"REG_d, "%"REG_S ); asm volatile( YSCALEYUV2YV12X(4096, CHR_MMX_FILTER_OFFSET) :: "r" (&c->redDither), - "r" (vDest), "p" ((long)chrDstW) + "r" (vDest), "p" (chrDstW) : "%"REG_a, "%"REG_d, "%"REG_S ); } @@ -780,7 +780,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, int16_t *lumFilter, int16_t * asm volatile( YSCALEYUV2YV12X(0, LUM_MMX_FILTER_OFFSET) :: "r" (&c->redDither), - "r" (dest), "p" ((long)dstW) + "r" (dest), "p" (dstW) : "%"REG_a, "%"REG_d, "%"REG_S ); #else @@ -806,7 +806,7 @@ yuv2nv12XinC(lumFilter, lumSrc, lumFilterSize, } static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc, - uint8_t *dest, uint8_t *uDest, uint8_t *vDest, int dstW, int chrDstW) + uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW) { #ifdef HAVE_MMX if(uDest != NULL) @@ -814,14 +814,14 @@ static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc, asm volatile( YSCALEYUV2YV121 :: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW), - "g" ((long)-chrDstW) + "g" (-chrDstW) : "%"REG_a ); asm volatile( YSCALEYUV2YV121 :: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW), - "g" ((long)-chrDstW) + "g" (-chrDstW) : "%"REG_a ); } @@ -829,7 +829,7 @@ static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc, asm volatile( YSCALEYUV2YV121 :: "r" (lumSrc + dstW), "r" (dest + dstW), - "g" ((long)-dstW) + "g" (-dstW) : "%"REG_a ); #else @@ -1489,7 +1489,7 @@ static inline void RENAME(yuv2packed1)(SwsContext *c, uint16_t *buf0, uint16_t * //FIXME yuy2* can read upto 7 samples to much -static inline void RENAME(yuy2ToY)(uint8_t *dst, uint8_t *src, int width) +static inline void RENAME(yuy2ToY)(uint8_t *dst, uint8_t *src, long width) { #ifdef HAVE_MMX asm volatile( @@ -1504,7 +1504,7 @@ static inline void RENAME(yuy2ToY)(uint8_t *dst, uint8_t *src, int width) "movq %%mm0, (%2, %%"REG_a") \n\t" "add $8, %%"REG_a" \n\t" " js 1b \n\t" - : : "g" ((long)-width), "r" (src+width*2), "r" (dst+width) + : : "g" (-width), "r" (src+width*2), "r" (dst+width) : "%"REG_a ); #else @@ -1514,7 +1514,7 @@ static inline void RENAME(yuy2ToY)(uint8_t *dst, uint8_t *src, int width) #endif } -static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, int width) +static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width) { #if defined (HAVE_MMX2) || defined (HAVE_3DNOW) asm volatile( @@ -1539,7 +1539,7 @@ static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, "movd %%mm1, (%3, %%"REG_a") \n\t" "add $4, %%"REG_a" \n\t" " js 1b \n\t" - : : "g" ((long)-width), "r" (src1+width*4), "r" (src2+width*4), "r" (dstU+width), "r" (dstV+width) + : : "g" (-width), "r" (src1+width*4), "r" (src2+width*4), "r" (dstU+width), "r" (dstV+width) : "%"REG_a ); #else @@ -1553,7 +1553,7 @@ static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, } //this is allmost identical to the previous, end exists only cuz yuy2ToY/UV)(dst, src+1, ...) would have 100% unaligned accesses -static inline void RENAME(uyvyToY)(uint8_t *dst, uint8_t *src, int width) +static inline void RENAME(uyvyToY)(uint8_t *dst, uint8_t *src, long width) { #ifdef HAVE_MMX asm volatile( @@ -1567,7 +1567,7 @@ static inline void RENAME(uyvyToY)(uint8_t *dst, uint8_t *src, int width) "movq %%mm0, (%2, %%"REG_a") \n\t" "add $8, %%"REG_a" \n\t" " js 1b \n\t" - : : "g" ((long)-width), "r" (src+width*2), "r" (dst+width) + : : "g" (-width), "r" (src+width*2), "r" (dst+width) : "%"REG_a ); #else @@ -1577,7 +1577,7 @@ static inline void RENAME(uyvyToY)(uint8_t *dst, uint8_t *src, int width) #endif } -static inline void RENAME(uyvyToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, int width) +static inline void RENAME(uyvyToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width) { #if defined (HAVE_MMX2) || defined (HAVE_3DNOW) asm volatile( @@ -1602,7 +1602,7 @@ static inline void RENAME(uyvyToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, "movd %%mm1, (%3, %%"REG_a") \n\t" "add $4, %%"REG_a" \n\t" " js 1b \n\t" - : : "g" ((long)-width), "r" (src1+width*4), "r" (src2+width*4), "r" (dstU+width), "r" (dstV+width) + : : "g" (-width), "r" (src1+width*4), "r" (src2+width*4), "r" (dstU+width), "r" (dstV+width) : "%"REG_a ); #else @@ -1648,7 +1648,7 @@ static inline void RENAME(bgr32ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1 } } -static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, int width) +static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, long width) { #ifdef HAVE_MMX asm volatile( @@ -1717,7 +1717,7 @@ static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, int width) "movq %%mm0, (%1, %%"REG_a") \n\t" "add $8, %%"REG_a" \n\t" " js 1b \n\t" - : : "r" (src+width*3), "r" (dst+width), "g" ((long)-width) + : : "r" (src+width*3), "r" (dst+width), "g" (-width) : "%"REG_a, "%"REG_b ); #else @@ -1733,7 +1733,7 @@ static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, int width) #endif } -static inline void RENAME(bgr24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, int width) +static inline void RENAME(bgr24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width) { #ifdef HAVE_MMX asm volatile( @@ -1882,7 +1882,7 @@ static inline void RENAME(bgr24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1 "movd %%mm0, (%3, %%"REG_a") \n\t" "add $4, %%"REG_a" \n\t" " js 1b \n\t" - : : "r" (src1+width*6), "r" (src2+width*6), "r" (dstU+width), "r" (dstV+width), "g" ((long)-width) + : : "r" (src1+width*6), "r" (src2+width*6), "r" (dstU+width), "r" (dstV+width), "g" (-width) : "%"REG_a, "%"REG_b ); #else @@ -2035,7 +2035,7 @@ static inline void RENAME(rgb24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1 // Bilinear / Bicubic scaling static inline void RENAME(hScale)(int16_t *dst, int dstW, uint8_t *src, int srcW, int xInc, - int16_t *filter, int16_t *filterPos, int filterSize) + int16_t *filter, int16_t *filterPos, long filterSize) { #ifdef HAVE_MMX assert(filterSize % 4 == 0 && filterSize>0); @@ -2173,7 +2173,7 @@ static inline void RENAME(hScale)(int16_t *dst, int dstW, uint8_t *src, int srcW : "+r" (counter), "+r" (filter) : "m" (filterPos), "m" (dst), "m"(offset), - "m" (src), "r" ((long)filterSize*2) + "m" (src), "r" (filterSize*2) : "%"REG_b, "%"REG_a, "%"REG_c ); } @@ -2373,7 +2373,7 @@ FUNNY_Y_CODE } } -inline static void RENAME(hcscale)(uint16_t *dst, int dstWidth, uint8_t *src1, uint8_t *src2, +inline static void RENAME(hcscale)(uint16_t *dst, long dstWidth, uint8_t *src1, uint8_t *src2, int srcW, int xInc, int flags, int canMMX2BeUsed, int16_t *hChrFilter, int16_t *hChrFilterPos, int hChrFilterSize, void *funnyUVCode, int srcFormat, uint8_t *formatConvBuffer, int16_t *mmx2Filter, |