Home | History | Annotate | Download | only in libpng-1.2.19

Lines Matching defs:bpp

205  *  - fixed bug in png_read_filter_row_mmx_avg(), bpp == 2 case; three errors:
298 * 0x0000000000ffffffLL (bpp 3, avg) _amask5_3_0
299 * 0xffffffffffffffffLL (bpp 4, 6, avg) _amask0_8_0
300 * 0x000000000000ffffLL (bpp 2, avg) _amask6_2_0
301 * 0x0000000000ffffffLL (bpp 3, paeth) _amask5_3_0
302 * 0x00000000ffffffffLL (bpp 6, paeth) _amask4_4_0
303 * 0x00000000ffffffffLL (bpp 4, paeth) _amask4_4_0
304 * 0x00000000ffffffffLL (bpp 8, paeth) _amask4_4_0
305 * 0x0000ffffff000000LL (bpp 3, sub) _amask2_3_3
306 * 0x00000000ffff0000LL (bpp 2, sub) _amask4_2_2
308 * 0xffff000000000000LL (bpp 3, paeth) _amask0_2_6
322 * (split sub and avg 4/6-bpp cases into separate blocks)
342 * - fixed sub bpp = 1 bug
346 * - fixed 64-bit paeth bpp 3 crash bug (misplaced LOAD_GOT_rbp)
347 * - fixed 64-bit paeth bpp 1/2 and cleanup-block crash bugs (misplaced
349 * - slightly optimized avg/paeth cleanup blocks and paeth bpp 1/2 block
392 * - cleaned up formatting, macros, minor png_read_filter_row_mmx_sub() 8-bpp
416 * replace bpp with pointer and group bpp/patemp/pbtemp/pctemp in array)
524 ull _amask0_8_0, _amask6_2_0; // was ActiveMask for bpp 4/6 and 2 cases
527 ull _amask4_4_0, _amask0_2_6; // was ActiveMask{,End} for bpp 6/4/8 and 3
530 ull _amask2_3_3, _amask4_2_2; // was ActiveMask for bpp 3 and 2 cases
557 0x0000000000FFFFFFLL, // _amask5_3_0 offset 128 (bpp 3, avg/paeth) const4
563 0xFFFFFFFFFFFFFFFFLL, // _amask0_8_0 offset 160 (bpp 4/6, avg)
564 0x000000000000FFFFLL, // _amask6_2_0 offset 168 (bpp 2, avg)
567 0x00000000FFFFFFFFLL, // _amask4_4_0 offset 176 (bpp 6/4/8, paeth)
568 0xFFFF000000000000LL, // _amask0_2_6 offset 184 (bpp 3, paeth) A.M.End
571 0x0000FFFFFF000000LL, // _amask2_3_3 offset 192 (bpp 3, sub)
572 0x00000000FFFF0000LL, // _amask4_2_2 offset 200 (bpp 2, sub)
1160 } /* end 24 bpp */
1333 } /* end 32 bpp */
1468 } /* end 8 bpp */
1525 } /* end 1 bpp */
1580 } /* end 2 bpp */
1635 } /* end 4 bpp */
1784 } /* end 16 bpp */
1974 } /* end 48 bpp */
2014 } /* end 64 bpp */
3247 int bpp;
3255 bpp = (row_info->pixel_depth + 7) >> 3; // calc number of bytes per pixel
3268 //pre "subl bpp, " PDX " \n\t" // (bpp is preloaded into ecx)
3269 "sub " PCX "," PDX " \n\t" // edx/rdx: ptr to Raw(x-bpp)
3274 // Compute the Raw value for the first bpp bytes
3281 //pre "cmpl bpp, %%ebx \n\t" // (bpp is preloaded into ecx)
3290 "add " PBX "," PBP " \n\t" // add bpp
3301 // Raw(x) = Avg(x) + ((Raw(x-bpp) + Prior(x))/2)
3305 "movb (" PDX "," PBX ",), %%al \n\t" // load al with Raw(x-bpp)
3348 : "0" (bpp), // %4 -> %2 ecx
3360 switch (bpp)
3379 // prime the pump: load the first Raw(x-bpp) data set
3385 "psrlq $40, %%mm2 \n\t" // correct position Raw(x-bpp)
3395 // add 1st active group (Raw(x-bpp)/2) to average with LBCarry
3404 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to Raw(x-bpp)/2
3410 // add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
3423 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to Raw(x-bpp)/2
3430 // add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
3436 // get the correct x-bpp offset.
3445 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to Raw(x-bpp)/2
3454 // move updated Raw(x) to use as Raw(x-bpp) for next loop
3475 break; // end 3 bpp
3477 case 4: // formerly shared with 6 bpp case via _ShiftBpp and _ShiftRem,
3480 // _ShiftBpp = bpp << 3; // 32 (psllq)
3500 // prime the pump: load the first Raw(x-bpp) data set
3515 // add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
3524 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3531 // add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
3543 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3552 // prep Raw(x-bpp) for next loop
3572 break; // end 4 bpp
3589 "dec " PBP " \n\t" // ebp/rbp: Raw(x-bpp)
3595 // Raw(x) = Avg(x) + ((Raw(x-bpp) + Prior(x))/2)
3598 "movb (" PBP "," PCX ",), %%bl \n\t" // load bl with Raw(x-bpp)
3629 return; // end 1 bpp
3649 // prime the pump: load the first Raw(x-bpp) data set
3666 // add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
3676 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3683 // add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
3697 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3704 // add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
3717 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3724 // add 4th active group (Raw(x-bpp)/2) to average with _LBCarry
3739 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3748 // prep Raw(x-bpp) for next loop
3768 break; // end 2 bpp
3770 case 6: // formerly shared with 4 bpp case (see comments there)
3772 // _ShiftBpp = bpp << 3; // 48 (psllq)
3792 // prime the pump: load the first Raw(x-bpp) data set
3807 // add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
3816 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3823 // add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
3835 "paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
3844 // prep Raw(x-bpp) for next loop
3864 break; // end 6 bpp
3879 // prime the pump: load the first Raw(x-bpp) data set
3900 "movq %%mm0, %%mm2 \n\t" // reuse as Raw(x-bpp)
3919 break; // end 8 bpp
3921 default: // bpp != 1,2,3,4,6,8: doesn't exist
3931 } // end switch (bpp)
3947 //pre "subl bpp, " PBP " \n\t" // (bpp is preloaded into ecx)
3948 "sub " PCX "," PBP " \n\t" // ebp: Raw(x-bpp)
3954 // Raw(x) = Avg(x) + ((Raw(x-bpp) + Prior(x))/2)
3957 "movb (" PBP "," PAX ",), %%bl \n\t" // load bl with Raw(x-bpp)
3978 : "0" (bpp), // ecx // input regs
4012 int bpp;
4020 bpp = (row_info->pixel_depth + 7) >> 3; // calc number of bytes per pixel
4030 "xorl %%edx, %%edx \n\t" // edx: x-bpp offset
4035 // Compute the Raw value for the first bpp bytes
4037 // Paeth(x) = Raw(x) + Prior(x) where x < bpp
4042 //pre "cmpl bpp, %%ebx \n\t" (bpp is preloaded into ecx)
4050 "add " PBX "," PBP " \n\t" // add bpp
4066 "movb (%1," PDX ",), %%cl \n\t" // load Prior(x-bpp) into cl
4067 "subl %%ecx, %%eax \n\t" // subtract Prior(x-bpp)
4071 "movb (%2," PDX ",), %%al \n\t" // load Raw(x-bpp) into al
4072 "subl %%ecx, %%eax \n\t" // subtract Prior(x-bpp)
4104 // pb > pc; Raw(x) = Paeth(x) + Prior(x-bpp)
4105 "movb (%1," PDX ",), %%cl \n\t" // load Prior(x-bpp) into cl
4117 // pa > pc; Raw(x) = Paeth(x) + Prior(x-bpp)
4118 "movb (%1," PDX ",), %%cl \n\t" // load Prior(x-bpp) into cl
4122 // pa <= pc; Raw(x) = Paeth(x) + Raw(x-bpp)
4123 "movb (%2," PDX ",), %%cl \n\t" // load Raw(x-bpp) into cl
4152 : "0" (bpp), // ecx // input regs
4165 switch (bpp)
4169 // _ShiftBpp = 24; // == bpp * 8
4179 // prime the pump: load the first Raw(x-bpp) data set
4186 "movq -8(%0," PCX ",), %%mm3 \n\t" // prep c=Prior(x-bpp) bytes
4238 "movq (%0," PCX ",), %%mm3 \n\t" // load c=Prior(x-bpp)
4245 // Raw(x-bpp)
4299 "movq %%mm2, %%mm3 \n\t" // load c=Prior(x-bpp) step 1
4307 "psllq $24, %%mm3 \n\t" // load c=Prior(x-bpp) step 2
4312 // now mm1 will be used as Raw(x-bpp)
4367 // mm1 will be used as Raw(x-bpp) next loop
4368 // mm3 ready to be used as Prior(x-bpp) next loop
4388 break; // end 3 bpp
4397 // prime the pump: load the first Raw(x-bpp) data set
4399 bpp) bytes
4402 "movq -8(%0," PCX ",), %%mm3 \n\t" // read c=Prior(x-bpp) bytes
4453 "movq (%0," PCX ",), %%mm3 \n\t" // load c=Prior(x-bpp)
4462 // Raw(x-bpp)
4518 // mm1 will be used as Raw(x-bpp) next loop
4537 break; // end 4 bpp
4554 // preload "subl bpp, %%ebp \n\t" // (bpp is preloaded into ecx)
4555 "subl %%ecx, %%ebp \n\t" // ebp = eax - bpp
4565 "movb (%1," PBP ",), %%cl \n\t" // load Prior(x-bpp) into cl
4566 "subl %%ecx, %%ebx \n\t" // subtract Prior(x-bpp)
4570 "movb (%2," PBP ",), %%bl \n\t" // load Raw(x-bpp) into bl
4571 "subl %%ecx, %%ebx \n\t" // subtract Prior(x-bpp)
4603 // pb > pc; Raw(x) = Paeth(x) + Prior(x-bpp)
4604 "movb (%1," PBP ",), %%cl \n\t" // load Prior(x-bpp) into cl
4616 // pa > pc; Raw(x) = Paeth(x) + Prior(x-bpp)
4617 "movb (%1," PBP ",), %%cl \n\t" // load Prior(x-bpp) into cl
4621 // pa <= pc; Raw(x) = Paeth(x) + Raw(x-bpp)
4622 "movb (%2," PBP ",), %%cl \n\t" // load Raw(x-bpp) into cl
4644 : "0" (bpp), // ecx // input regs
4658 return; // end 1 or 2 bpp (no need to go further with this one)
4663 // _ShiftBpp = 48; // bpp << 3 == bpp * 8
4670 // prime the pump: load the first Raw(x-bpp) data set
4675 // must shift to position Raw(x-bpp) data
4678 "movq -8(%0," PCX ",), %%mm3 \n\t" // read c=Prior(x-bpp) bytes
4682 // must shift to position Prior(x-bpp) data
4731 "movq -8(%0," PCX ",), %%mm3 \n\t" // load c=Prior(x-bpp)
4741 "psllq $48, %%mm6 \n\t" // bpp * 8 = bits per pixel
4743 "psrlq $16, %%mm1 \n\t" // 64 - (bpp * 8) = remainder
4803 // mm1 will be used as Raw(x-bpp) next loop
4822 break; // end 6 bpp
4824 case 8: // bpp == 8
4831 // prime the pump: load the first Raw(x-bpp) data set
4833 // a=Raw(x-bpp) bytes
4836 "movq -8(%0," PCX ",), %%mm3 \n\t" // read c=Prior(x-bpp) bytes
4887 "movq -8(%0," PCX ",), %%mm3 \n\t" // read c=Prior(x-bpp) bytes
4895 "movq -8(%1," PCX ",), %%mm1 \n\t" // read a=Raw(x-bpp) bytes
4952 // mm1 will be used as Raw(x-bpp) next loop
4971 break; // end 8 bpp
4973 default: // bpp != 1,2,3,4,6,8: doesn't exist
4983 } // end switch (bpp)
4999 //pre "subl bpp, %%ebp \n\t" // (bpp is preloaded into ecx)
5000 "subl %%ecx, %%ebp \n\t" // ebp = eax - bpp
5010 "movb (%1," PBP ",), %%cl \n\t" // load Prior(x-bpp) into cl
5011 "subl %%ecx, %%ebx \n\t" // subtract Prior(x-bpp)
5015 "movb (%2," PBP ",), %%bl \n\t" // load Raw(x-bpp) into bl
5016 "subl %%ecx, %%ebx \n\t" // subtract Prior(x-bpp)
5048 // pb > pc; Raw(x) = Paeth(x) + Prior(x-bpp)
5049 "movb (%1," PBP ",), %%cl \n\t" // load Prior(x-bpp) into cl
5061 // pa > pc; Raw(x) = Paeth(x) + Prior(x-bpp)
5062 "movb (%1," PBP ",), %%cl \n\t" // load Prior(x-bpp) into cl
5066 // pa <= pc; Raw(x) = Paeth(x) + Raw(x-bpp)
5067 "movb (%2," PBP ",), %%cl \n\t" // load Raw(x-bpp) into cl
5090 : "0" (bpp), // ecx // input regs
5126 int bpp;
5133 bpp = (row_info->pixel_depth + 7) >> 3; // calc number of bytes per pixel
5134 FullLength = row_info->rowbytes - bpp; // number of bytes to filter
5135 // (why do we subtract off bpp? not so in avg or paeth...)
5142 //pre "movl bpp, %%ecx \n\t"
5143 "add " PCX ", %1 \n\t" // rp = row + bpp
5180 : "0" (bpp), // ecx // input regs
5190 switch (bpp)
5205 // preload "movl bpp, %%ecx \n\t"
5206 "add " PCX ", %1 \n\t" // rp = row + bpp
5211 // prime the pump: load the first Raw(x-bpp) data set
5215 "psrlq $40, %%mm1 \n\t" // bpp bytes (no need for mask;
5244 : "0" (bpp), // ecx // input regs
5254 break; // end 3 bpp
5256 case 4: // formerly shared with 6 bpp case via _ShiftBpp and _ShiftRem,
5259 // _ShiftBpp = bpp << 3; // 32 (psllq)
5266 // preload "movl bpp, %%ecx \n\t"
5267 "add " PCX ", %1 \n\t" // rp = row + bpp
5269 // prime the pump: load the first Raw(x-bpp) data set
5273 "psrlq $32, %%mm1 \n\t" // bpp bytes (no need for mask;
5294 : "0" (bpp), // ecx // input regs
5304 break; // end 4 bpp
5316 // preload "movl bpp, %%ecx \n\t"
5317 "add " PCX ", %1 \n\t" // rp = row + bpp
5333 : "0" (bpp), // ecx // input regs
5341 return; // end 1 bpp (bypassing cleanup block!)
5360 // preload "movl bpp, %%ecx \n\t"
5361 "add " PCX ", %1 \n\t" // rp = row + bpp
5364 // prime the pump: load the first Raw(x-bpp) data set
5368 "psrlq $48, %%mm1 \n\t" // bpp bytes (no need for mask;
5402 : "0" (bpp), // ecx // input regs
5413 break; // end 2 bpp
5415 case 6: // formerly shared with 4 bpp case (see comments there)
5417 // _ShiftBpp = bpp << 3; // 48 (psllq)
5424 // preload "movl bpp, %%ecx \n\t"
5425 "add " PCX ", %1 \n\t" // rp = row + bpp
5427 // prime the pump: load the first Raw(x-bpp) data set
5431 "psrlq $16, %%mm1 \n\t" // bpp bytes (no need for mask;
5452 : "0" (bpp), // ecx // input regs
5462 break; // end 6 bpp
5470 // preload "movl bpp, %%ecx \n\t"
5471 "add " PCX ", %1 \n\t" // rp = row + bpp
5474 // prime the pump: load the first Raw(x-bpp) data set
5485 // Now mm0 will be used as Raw(x-bpp) for the 2nd group of 8 bytes.
5487 // group being used as the Raw(x-bpp) for the 1st group of the
5524 "jb sub_8lpA \n\t" // to mm7 to be new Raw(x-bpp)
5533 : "0" (bpp), // ecx // input regs
5545 break; // end 8 bpp
5547 default: // bpp != 1,2,3,4,6,8: doesn't exist
5557 } // end switch (bpp)
5567 //pre "movl bpp, %%ecx \n\t"
5568 "add " PCX ", %1 \n\t" // rp = row + bpp
5586 : "0" (bpp), // ecx // input regs
5883 png_uint_32 bpp = (row_info->pixel_depth + 7) >> 3;
5884 png_bytep rp = row + bpp;
5887 for (i = bpp; i < istop; i++)
5942 png_uint_32 bpp = (row_info->pixel_depth + 7) >> 3;
5943 png_uint_32 istop = row_info->rowbytes - bpp;
5945 for (i = 0; i < bpp; i++)
5983 png_uint_32 bpp = (row_info->pixel_depth + 7) >> 3;
5984 png_uint_32 istop = row_info->rowbytes - bpp;
5986 for (i = 0; i < bpp; i++)