mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
Imported from libpng-1.2.19rc2.tar
This commit is contained in:
44
pngvcrd.c
44
pngvcrd.c
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* For Intel x86 CPU and Microsoft Visual C++ compiler
|
||||
*
|
||||
* Last changed in libpng 1.2.19 July 31, 2007
|
||||
* Last changed in libpng 1.2.19 August 4, 2007
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2007 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998, Intel Corporation
|
||||
@@ -1918,22 +1918,28 @@ loop4_pass0:
|
||||
#endif /* PNG_READ_INTERLACING_SUPPORTED */
|
||||
|
||||
|
||||
// These variables are utilized in the functions below. They are declared
|
||||
// globally here to ensure alignment on 8-byte boundaries.
|
||||
|
||||
union uAll {
|
||||
__int64 use;
|
||||
double align;
|
||||
} LBCarryMask = {0x0101010101010101},
|
||||
HBClearMask = {0x7f7f7f7f7f7f7f7f},
|
||||
ActiveMask, ActiveMask2, ActiveMaskEnd, ShiftBpp, ShiftRem;
|
||||
|
||||
// These global constants are declared
|
||||
// here to ensure alignment on 8-byte boundaries.
|
||||
PNG_CONST union uAll {
|
||||
__int64 use;
|
||||
double double_align;
|
||||
long long long_long_align;
|
||||
} LBCarryMask = {0x0101010101010101},
|
||||
HBClearMask = {0x7f7f7f7f7f7f7f7f};
|
||||
|
||||
// Optimized code for PNG Average filter decoder
|
||||
void /* PRIVATE */
|
||||
png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row
|
||||
, png_bytep prev_row)
|
||||
{
|
||||
// These variables are declared
|
||||
// here to ensure alignment on 8-byte boundaries.
|
||||
union uAll {
|
||||
__int64 use;
|
||||
double double_align;
|
||||
long long long_long_align;
|
||||
} ActiveMask, ShiftBpp, ShiftRem;
|
||||
|
||||
int bpp;
|
||||
png_uint_32 FullLength;
|
||||
png_uint_32 MMXLength;
|
||||
@@ -2367,6 +2373,14 @@ void /* PRIVATE */
|
||||
png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
||||
png_bytep prev_row)
|
||||
{
|
||||
// These variables are declared
|
||||
// here to ensure alignment on 8-byte boundaries.
|
||||
union uAll {
|
||||
__int64 use;
|
||||
double double_align;
|
||||
long long long_long_align;
|
||||
} ActiveMask, ActiveMask2, ActiveMaskEnd, ShiftBpp, ShiftRem;
|
||||
|
||||
png_uint_32 FullLength;
|
||||
png_uint_32 MMXLength;
|
||||
//png_uint_32 len;
|
||||
@@ -3262,6 +3276,14 @@ dpthend:
|
||||
void /* PRIVATE */
|
||||
png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
|
||||
{
|
||||
// These variables are declared
|
||||
// here to ensure alignment on 8-byte boundaries.
|
||||
union uAll {
|
||||
__int64 use;
|
||||
double double_align;
|
||||
long long long_long_align;
|
||||
} ActiveMask, ShiftBpp, ShiftRem;
|
||||
|
||||
//int test;
|
||||
int bpp;
|
||||
png_uint_32 FullLength;
|
||||
|
||||
Reference in New Issue
Block a user