Mercurial > libavcodec.hg
comparison i386/dsputil_mmx.c @ 296:c1a8a1b4a24b libavcodec
sizeof(s->block) isnt 64*6*2 anymore bugfix
mpeg12 decoding optimization
author | michaelni |
---|---|
date | Thu, 28 Mar 2002 13:41:04 +0000 |
parents | 944632089814 |
children | 9c6f056f0e41 |
comparison
equal
deleted
inserted
replaced
295:6622b0fd036c | 296:c1a8a1b4a24b |
---|---|
1023 pix += line_size; | 1023 pix += line_size; |
1024 p += 8 ; | 1024 p += 8 ; |
1025 } while(--h); | 1025 } while(--h); |
1026 } | 1026 } |
1027 | 1027 |
1028 static void clear_blocks_mmx(DCTELEM *blocks) | |
1029 { | |
1030 asm volatile( | |
1031 "pxor %%mm7, %%mm7 \n\t" | |
1032 "movl $-128*6, %%eax \n\t" | |
1033 "1: \n\t" | |
1034 "movq %%mm7, (%0, %%eax) \n\t" | |
1035 "movq %%mm7, 8(%0, %%eax) \n\t" | |
1036 "movq %%mm7, 16(%0, %%eax) \n\t" | |
1037 "movq %%mm7, 24(%0, %%eax) \n\t" | |
1038 "addl $32, %%eax \n\t" | |
1039 " js 1b \n\t" | |
1040 : : "r" (((int)blocks)+128*6) | |
1041 : "%eax" | |
1042 ); | |
1043 } | |
1044 | |
1028 static void just_return() { return; } | 1045 static void just_return() { return; } |
1029 | 1046 |
1030 void dsputil_init_mmx(void) | 1047 void dsputil_init_mmx(void) |
1031 { | 1048 { |
1032 mm_flags = mm_support(); | 1049 mm_flags = mm_support(); |
1047 | 1064 |
1048 if (mm_flags & MM_MMX) { | 1065 if (mm_flags & MM_MMX) { |
1049 get_pixels = get_pixels_mmx; | 1066 get_pixels = get_pixels_mmx; |
1050 put_pixels_clamped = put_pixels_clamped_mmx; | 1067 put_pixels_clamped = put_pixels_clamped_mmx; |
1051 add_pixels_clamped = add_pixels_clamped_mmx; | 1068 add_pixels_clamped = add_pixels_clamped_mmx; |
1052 | 1069 clear_blocks= clear_blocks_mmx; |
1070 | |
1053 pix_abs16x16 = pix_abs16x16_mmx; | 1071 pix_abs16x16 = pix_abs16x16_mmx; |
1054 pix_abs16x16_x2 = pix_abs16x16_x2_mmx; | 1072 pix_abs16x16_x2 = pix_abs16x16_x2_mmx; |
1055 pix_abs16x16_y2 = pix_abs16x16_y2_mmx; | 1073 pix_abs16x16_y2 = pix_abs16x16_y2_mmx; |
1056 pix_abs16x16_xy2 = pix_abs16x16_xy2_mmx; | 1074 pix_abs16x16_xy2 = pix_abs16x16_xy2_mmx; |
1057 pix_abs8x8 = pix_abs8x8_mmx; | 1075 pix_abs8x8 = pix_abs8x8_mmx; |