Mercurial > mplayer.hg
comparison libswscale/rgb2rgb_template.c @ 26910:da8e02081774
add const, suppress warnings
author | bcoudurier |
---|---|
date | Sun, 01 Jun 2008 03:21:12 +0000 |
parents | b7eeb3590bc9 |
children | 3f6d2ca29727 |
comparison
equal
deleted
inserted
replaced
26909:b7eeb3590bc9 | 26910:da8e02081774 |
---|---|
269 asm volatile(EMMS:::"memory"); | 269 asm volatile(EMMS:::"memory"); |
270 #endif | 270 #endif |
271 mm_end = end - 3; | 271 mm_end = end - 3; |
272 while (s < mm_end) | 272 while (s < mm_end) |
273 { | 273 { |
274 register unsigned x= *((uint32_t *)s); | 274 register unsigned x= *((const uint32_t *)s); |
275 *((uint32_t *)d) = (x&0x7FFF7FFF) + (x&0x7FE07FE0); | 275 *((uint32_t *)d) = (x&0x7FFF7FFF) + (x&0x7FE07FE0); |
276 d+=4; | 276 d+=4; |
277 s+=4; | 277 s+=4; |
278 } | 278 } |
279 if (s < end) | 279 if (s < end) |
280 { | 280 { |
281 register unsigned short x= *((uint16_t *)s); | 281 register unsigned short x= *((const uint16_t *)s); |
282 *((uint16_t *)d) = (x&0x7FFF) + (x&0x7FE0); | 282 *((uint16_t *)d) = (x&0x7FFF) + (x&0x7FE0); |
283 } | 283 } |
284 } | 284 } |
285 | 285 |
286 static inline void RENAME(rgb16to15)(const uint8_t *src, uint8_t *dst, long src_size) | 286 static inline void RENAME(rgb16to15)(const uint8_t *src, uint8_t *dst, long src_size) |
430 asm volatile(SFENCE:::"memory"); | 430 asm volatile(SFENCE:::"memory"); |
431 asm volatile(EMMS:::"memory"); | 431 asm volatile(EMMS:::"memory"); |
432 #endif | 432 #endif |
433 while (s < end) | 433 while (s < end) |
434 { | 434 { |
435 register int rgb = *(uint32_t*)s; s += 4; | 435 register int rgb = *(const uint32_t*)s; s += 4; |
436 *d++ = ((rgb&0xFF)>>3) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>8); | 436 *d++ = ((rgb&0xFF)>>3) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>8); |
437 } | 437 } |
438 } | 438 } |
439 | 439 |
440 static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size) | 440 static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size) |
491 asm volatile(SFENCE:::"memory"); | 491 asm volatile(SFENCE:::"memory"); |
492 asm volatile(EMMS:::"memory"); | 492 asm volatile(EMMS:::"memory"); |
493 #endif | 493 #endif |
494 while (s < end) | 494 while (s < end) |
495 { | 495 { |
496 register int rgb = *(uint32_t*)s; s += 4; | 496 register int rgb = *(const uint32_t*)s; s += 4; |
497 *d++ = ((rgb&0xF8)<<8) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>19); | 497 *d++ = ((rgb&0xF8)<<8) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>19); |
498 } | 498 } |
499 } | 499 } |
500 | 500 |
501 static inline void RENAME(rgb32to15)(const uint8_t *src, uint8_t *dst, long src_size) | 501 static inline void RENAME(rgb32to15)(const uint8_t *src, uint8_t *dst, long src_size) |
589 asm volatile(SFENCE:::"memory"); | 589 asm volatile(SFENCE:::"memory"); |
590 asm volatile(EMMS:::"memory"); | 590 asm volatile(EMMS:::"memory"); |
591 #endif | 591 #endif |
592 while (s < end) | 592 while (s < end) |
593 { | 593 { |
594 register int rgb = *(uint32_t*)s; s += 4; | 594 register int rgb = *(const uint32_t*)s; s += 4; |
595 *d++ = ((rgb&0xFF)>>3) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>9); | 595 *d++ = ((rgb&0xFF)>>3) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>9); |
596 } | 596 } |
597 } | 597 } |
598 | 598 |
599 static inline void RENAME(rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size) | 599 static inline void RENAME(rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size) |
650 asm volatile(SFENCE:::"memory"); | 650 asm volatile(SFENCE:::"memory"); |
651 asm volatile(EMMS:::"memory"); | 651 asm volatile(EMMS:::"memory"); |
652 #endif | 652 #endif |
653 while (s < end) | 653 while (s < end) |
654 { | 654 { |
655 register int rgb = *(uint32_t*)s; s += 4; | 655 register int rgb = *(const uint32_t*)s; s += 4; |
656 *d++ = ((rgb&0xF8)<<7) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>19); | 656 *d++ = ((rgb&0xF8)<<7) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>19); |
657 } | 657 } |
658 } | 658 } |
659 | 659 |
660 static inline void RENAME(rgb24to16)(const uint8_t *src, uint8_t *dst, long src_size) | 660 static inline void RENAME(rgb24to16)(const uint8_t *src, uint8_t *dst, long src_size) |
935 const uint16_t *end; | 935 const uint16_t *end; |
936 #ifdef HAVE_MMX | 936 #ifdef HAVE_MMX |
937 const uint16_t *mm_end; | 937 const uint16_t *mm_end; |
938 #endif | 938 #endif |
939 uint8_t *d = dst; | 939 uint8_t *d = dst; |
940 const uint16_t *s = (uint16_t *)src; | 940 const uint16_t *s = (const uint16_t*)src; |
941 end = s + src_size/2; | 941 end = s + src_size/2; |
942 #ifdef HAVE_MMX | 942 #ifdef HAVE_MMX |
943 asm volatile(PREFETCH" %0"::"m"(*s):"memory"); | 943 asm volatile(PREFETCH" %0"::"m"(*s):"memory"); |
944 mm_end = end - 7; | 944 mm_end = end - 7; |
945 while (s < mm_end) | 945 while (s < mm_end) |
1296 const uint16_t *end; | 1296 const uint16_t *end; |
1297 #ifdef HAVE_MMX | 1297 #ifdef HAVE_MMX |
1298 const uint16_t *mm_end; | 1298 const uint16_t *mm_end; |
1299 #endif | 1299 #endif |
1300 uint8_t *d = dst; | 1300 uint8_t *d = dst; |
1301 const uint16_t *s = (uint16_t *)src; | 1301 const uint16_t *s = (const uint16_t*)src; |
1302 end = s + src_size/2; | 1302 end = s + src_size/2; |
1303 #ifdef HAVE_MMX | 1303 #ifdef HAVE_MMX |
1304 asm volatile(PREFETCH" %0"::"m"(*s):"memory"); | 1304 asm volatile(PREFETCH" %0"::"m"(*s):"memory"); |
1305 asm volatile("pxor %%mm7,%%mm7 \n\t":::"memory"); | 1305 asm volatile("pxor %%mm7,%%mm7 \n\t":::"memory"); |
1306 mm_end = end - 3; | 1306 mm_end = end - 3; |
1364 } | 1364 } |
1365 | 1365 |
1366 static inline void RENAME(rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size) | 1366 static inline void RENAME(rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size) |
1367 { | 1367 { |
1368 long idx = 15 - src_size; | 1368 long idx = 15 - src_size; |
1369 uint8_t *s = src-idx, *d = dst-idx; | 1369 const uint8_t *s = src-idx; |
1370 uint8_t *d = dst-idx; | |
1370 #ifdef HAVE_MMX | 1371 #ifdef HAVE_MMX |
1371 asm volatile( | 1372 asm volatile( |
1372 "test %0, %0 \n\t" | 1373 "test %0, %0 \n\t" |
1373 "jns 2f \n\t" | 1374 "jns 2f \n\t" |
1374 PREFETCH" (%1, %0) \n\t" | 1375 PREFETCH" (%1, %0) \n\t" |
1418 : "+&r"(idx) | 1419 : "+&r"(idx) |
1419 : "r" (s), "r" (d), "m" (mask32b), "m" (mask32r), "m" (mmx_one) | 1420 : "r" (s), "r" (d), "m" (mask32b), "m" (mask32r), "m" (mmx_one) |
1420 : "memory"); | 1421 : "memory"); |
1421 #endif | 1422 #endif |
1422 for (; idx<15; idx+=4) { | 1423 for (; idx<15; idx+=4) { |
1423 register int v = *(uint32_t *)&s[idx], g = v & 0xff00ff00; | 1424 register int v = *(const uint32_t *)&s[idx], g = v & 0xff00ff00; |
1424 v &= 0xff00ff; | 1425 v &= 0xff00ff; |
1425 *(uint32_t *)&d[idx] = (v>>16) + g + (v<<16); | 1426 *(uint32_t *)&d[idx] = (v>>16) + g + (v<<16); |
1426 } | 1427 } |
1427 } | 1428 } |
1428 | 1429 |