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