Imported from libpng-1.2.19beta23.tar

This commit is contained in:
Glenn Randers-Pehrson 2007-07-10 15:49:55 -05:00
parent 62626737a5
commit 67c75ee7f0
55 changed files with 556 additions and 507 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.2.19beta22 - July 3, 2007 Libpng 1.2.19beta23 - July 10, 2007
This is not intended to be a public release. It will be replaced This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version. within a few weeks by a public version or by another test version.
@ -9,32 +9,32 @@ Files available for download:
Source files with LF line endings (for Unix/Linux) and with a Source files with LF line endings (for Unix/Linux) and with a
"configure" script "configure" script
libpng-1.2.19beta22.tar.gz libpng-1.2.19beta23.tar.gz
libpng-1.2.19beta22.tar.bz2 libpng-1.2.19beta23.tar.bz2
Source files with LF line endings (for Unix/Linux) without the Source files with LF line endings (for Unix/Linux) without the
"configure" script "configure" script
libpng-1.2.19beta22-no-config.tar.gz libpng-1.2.19beta23-no-config.tar.gz
libpng-1.2.19beta22-no-config.tar.bz2 libpng-1.2.19beta23-no-config.tar.bz2
Source files with CRLF line endings (for Windows), without the Source files with CRLF line endings (for Windows), without the
"configure" script "configure" script
lp1219b22.zip lp1219b23.zip
lp1219b22.tar.bz2 lp1219b23.tar.bz2
Project files Project files
libpng-1.2.19beta22-project-netware.zip libpng-1.2.19beta23-project-netware.zip
libpng-1.2.19beta22-project-wince.zip libpng-1.2.19beta23-project-wince.zip
Other information: Other information:
libpng-1.2.19beta22-README.txt libpng-1.2.19beta23-README.txt
libpng-1.2.19beta22-KNOWNBUGS.txt libpng-1.2.19beta23-KNOWNBUGS.txt
libpng-1.2.19beta22-LICENSE.txt libpng-1.2.19beta23-LICENSE.txt
libpng-1.2.19beta22-Y2K-compliance.txt libpng-1.2.19beta23-Y2K-compliance.txt
Changes since the last public release (1.2.18): Changes since the last public release (1.2.18):
@ -129,6 +129,11 @@ version 1.2.19beta22 [July 3, 2007]
Added info about pngrutil/pnggccrd/pngvcrd to png_get_header_version() Added info about pngrutil/pnggccrd/pngvcrd to png_get_header_version()
Fix type definition of dummy_value_a, b in pnggccrd.c Fix type definition of dummy_value_a, b in pnggccrd.c
version 1.2.19beta23 [July 10, 2007]
Revert change to type definition of dummy_value_a, b in pnggccrd.c
Make sure __PIC__ is defined in pnggccrd.c when PIC is defined.
Make PNG_NO_MMX_CODE the default on x86_64 GNUC platforms.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -1822,6 +1822,11 @@ version 1.2.19beta22 [July 3, 2007]
Added info about pngrutil/pnggccrd/pngvcrd to png_get_header_version() Added info about pngrutil/pnggccrd/pngvcrd to png_get_header_version()
Fix type definition of dummy_value_a, b in pnggccrd.c Fix type definition of dummy_value_a, b in pnggccrd.c
version 1.2.19beta23 [July 10, 2007]
Revert change to type definition of dummy_value_a, b in pnggccrd.c
Make sure __PIC__ is defined in pnggccrd.c when PIC is defined.
Require gcc-4.1 or better to use PNG_HAVE_MMX_FILTER_ROW on x86_64 platforms
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement https://lists.sourceforge.net/lists/listinfo/png-mng-implement

20
INSTALL
View File

@ -1,5 +1,5 @@
Installing libpng version 1.2.19beta22 - July 3, 2007 Installing libpng version 1.2.19beta23 - July 10, 2007
On Unix/Linux and similar systems, you can simply type On Unix/Linux and similar systems, you can simply type
@ -44,7 +44,7 @@ to have access to the zlib.h and zconf.h include files that
correspond to the version of zlib that's installed. correspond to the version of zlib that's installed.
You can rename the directories that you downloaded (they You can rename the directories that you downloaded (they
might be called "libpng-1.2.19beta22" or "lpng109" and "zlib-1.2.1" might be called "libpng-1.2.19beta23" or "lpng109" and "zlib-1.2.1"
or "zlib121") so that you have directories called "zlib" and "libpng". or "zlib121") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this: Your directory structure should look like this:
@ -101,14 +101,14 @@ include
CMakeLists.txt => "cmake" script CMakeLists.txt => "cmake" script
makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.elf => Linux/ELF makefile symbol versioning, makefile.elf => Linux/ELF makefile symbol versioning,
gcc, creates libpng12.so.0.1.2.19beta22) gcc, creates libpng12.so.0.1.2.19beta23)
makefile.linux => Linux/ELF makefile makefile.linux => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.19beta22) (gcc, creates libpng12.so.0.1.2.19beta23)
makefile.gcmmx => Linux/ELF makefile makefile.gcmmx => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.19beta22, (gcc, creates libpng12.so.0.1.2.19beta23,
uses assembler code tuned for Intel MMX platform) uses assembler code tuned for Intel MMX platform)
makefile.nommx => Linux/ELF makefile makefile.nommx => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.19beta22 (gcc, creates libpng12.so.0.1.2.19beta23
does not use Intel MMX assembler code) does not use Intel MMX assembler code)
makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with makefile.knr => Archaic UNIX Makefile that converts files with
@ -131,14 +131,14 @@ include
makefile.openbsd => OpenBSD makefile makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc, makefile.sggcc => Silicon Graphics (gcc,
creates libpng12.so.0.1.2.19beta22) creates libpng12.so.0.1.2.19beta23)
makefile.sunos => Sun makefile makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc, makefile.solaris => Solaris 2.X makefile (gcc,
creates libpng12.so.0.1.2.19beta22) creates libpng12.so.0.1.2.19beta23)
makefile.solaris-x86 => Solaris/intelMMX 2.X makefile (gcc, makefile.solaris-x86 => Solaris/intelMMX 2.X makefile (gcc,
creates libpng12.so.0.1.2.19beta22) creates libpng12.so.0.1.2.19beta23)
makefile.so9 => Solaris 9 makefile (gcc, makefile.so9 => Solaris 9 makefile (gcc,
creates libpng12.so.0.1.2.19beta22) creates libpng12.so.0.1.2.19beta23)
makefile.32sunu => Sun Ultra 32-bit makefile makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc

View File

@ -1,5 +1,5 @@
Known bugs in libpng version 1.2.19beta22 Known bugs in libpng version 1.2.19beta23
1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
reading interlaced PNG files, when assembler code is enabled but running reading interlaced PNG files, when assembler code is enabled but running

View File

@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
If you modify libpng you may insert additional notices immediately following If you modify libpng you may insert additional notices immediately following
this sentence. this sentence.
libpng versions 1.2.6, August 15, 2004, through 1.2.19beta22, July 3, 2007, are libpng versions 1.2.6, August 15, 2004, through 1.2.19beta23, July 10, 2007, are
Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5 distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors with the following individual added to the list of Contributing Authors
@ -106,4 +106,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson Glenn Randers-Pehrson
glennrp at users.sourceforge.net glennrp at users.sourceforge.net
July 3, 2007 July 10, 2007

14
README
View File

@ -1,4 +1,4 @@
README for libpng version 1.2.19beta22 - July 3, 2007 (shared library 12.0) README for libpng version 1.2.19beta23 - July 10, 2007 (shared library 12.0)
See the note about version numbers near the top of png.h See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng. See INSTALL for instructions on how to install libpng.
@ -190,11 +190,11 @@ Files in this distribution:
descrip.mms => VMS makefile for MMS or MMK descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.elf => Linux/ELF makefile symbol versioning, makefile.elf => Linux/ELF makefile symbol versioning,
gcc, creates libpng12.so.0.1.2.19beta22) gcc, creates libpng12.so.0.1.2.19beta23)
makefile.linux => Linux/ELF makefile makefile.linux => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.19beta22) (gcc, creates libpng12.so.0.1.2.19beta23)
makefile.gcmmx => Linux/ELF makefile makefile.gcmmx => Linux/ELF makefile
(gcc, creates libpng12.so.0.1.2.19beta22, (gcc, creates libpng12.so.0.1.2.19beta23,
uses assembler code tuned for Intel MMX platform) uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with makefile.knr => Archaic UNIX Makefile that converts files with
@ -216,12 +216,12 @@ Files in this distribution:
makefile.openbsd => OpenBSD makefile makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib) makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics makefile.sggcc => Silicon Graphics
(gcc, creates libpng12.so.0.1.2.19beta22) (gcc, creates libpng12.so.0.1.2.19beta23)
makefile.sunos => Sun makefile makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile makefile.solaris => Solaris 2.X makefile
(gcc, creates libpng12.so.0.1.2.19beta22) (gcc, creates libpng12.so.0.1.2.19beta23)
makefile.so9 => Solaris 9 makefile makefile.so9 => Solaris 9 makefile
(gcc, creates libpng12.so.0.1.2.19beta22) (gcc, creates libpng12.so.0.1.2.19beta23)
makefile.32sunu => Sun Ultra 32-bit makefile makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc

View File

@ -1,13 +1,13 @@
Y2K compliance in libpng: Y2K compliance in libpng:
========================= =========================
July 3, 2007 July 10, 2007
Since the PNG Development group is an ad-hoc body, we can't make Since the PNG Development group is an ad-hoc body, we can't make
an official declaration. an official declaration.
This is your unofficial assurance that libpng from version 0.71 and This is your unofficial assurance that libpng from version 0.71 and
upward through 1.2.19beta22 are Y2K compliant. It is my belief that earlier upward through 1.2.19beta23 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant. versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer Libpng only has three year fields. One is a 2-byte unsigned integer

22
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for libpng 1.2.19beta22. # Generated by GNU Autoconf 2.61 for libpng 1.2.19beta23.
# #
# Report bugs to <png-mng-implement@lists.sourceforge.net>. # Report bugs to <png-mng-implement@lists.sourceforge.net>.
# #
@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package. # Identity of this package.
PACKAGE_NAME='libpng' PACKAGE_NAME='libpng'
PACKAGE_TARNAME='libpng' PACKAGE_TARNAME='libpng'
PACKAGE_VERSION='1.2.19beta22' PACKAGE_VERSION='1.2.19beta23'
PACKAGE_STRING='libpng 1.2.19beta22' PACKAGE_STRING='libpng 1.2.19beta23'
PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net' PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
ac_unique_file="pngget.c" ac_unique_file="pngget.c"
@ -1405,7 +1405,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures libpng 1.2.19beta22 to adapt to many kinds of systems. \`configure' configures libpng 1.2.19beta23 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1475,7 +1475,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of libpng 1.2.19beta22:";; short | recursive ) echo "Configuration of libpng 1.2.19beta23:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1585,7 +1585,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
libpng configure 1.2.19beta22 libpng configure 1.2.19beta23
generated by GNU Autoconf 2.61 generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -1599,7 +1599,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by libpng $as_me 1.2.19beta22, which was It was created by libpng $as_me 1.2.19beta23, which was
generated by GNU Autoconf 2.61. Invocation command line was generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@ $ $0 $@
@ -2269,7 +2269,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='libpng' PACKAGE='libpng'
VERSION='1.2.19beta22' VERSION='1.2.19beta23'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -2440,7 +2440,7 @@ fi
PNGLIB_VERSION=1.2.19beta22 PNGLIB_VERSION=1.2.19beta23
PNGLIB_MAJOR=1 PNGLIB_MAJOR=1
PNGLIB_MINOR=2 PNGLIB_MINOR=2
PNGLIB_RELEASE=19 PNGLIB_RELEASE=19
@ -21282,7 +21282,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by libpng $as_me 1.2.19beta22, which was This file was extended by libpng $as_me 1.2.19beta23, which was
generated by GNU Autoconf 2.61. Invocation command line was generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -21335,7 +21335,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\ ac_cs_version="\\
libpng config.status 1.2.19beta22 libpng config.status 1.2.19beta23
configured by $0, generated by GNU Autoconf 2.61, configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View File

@ -18,12 +18,12 @@ AC_PREREQ(2.59)
dnl Version number stuff here: dnl Version number stuff here:
AC_INIT([libpng], [1.2.19beta22], [png-mng-implement@lists.sourceforge.net]) AC_INIT([libpng], [1.2.19beta23], [png-mng-implement@lists.sourceforge.net])
AM_INIT_AUTOMAKE AM_INIT_AUTOMAKE
dnl stop configure from automagically running automake dnl stop configure from automagically running automake
AM_MAINTAINER_MODE AM_MAINTAINER_MODE
PNGLIB_VERSION=1.2.19beta22 PNGLIB_VERSION=1.2.19beta23
PNGLIB_MAJOR=1 PNGLIB_MAJOR=1
PNGLIB_MINOR=2 PNGLIB_MINOR=2
PNGLIB_RELEASE=19 PNGLIB_RELEASE=19

View File

@ -1,6 +1,6 @@
libpng.txt - A description on how to use and modify libpng libpng.txt - A description on how to use and modify libpng
libpng version 1.2.19beta22 - July 3, 2007 libpng version 1.2.19beta23 - July 10, 2007
Updated and distributed by Glenn Randers-Pehrson Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net> <glennrp at users.sourceforge.net>
Copyright (c) 1998-2007 Glenn Randers-Pehrson Copyright (c) 1998-2007 Glenn Randers-Pehrson
@ -2921,13 +2921,13 @@ application:
IX. Y2K Compliance in libpng IX. Y2K Compliance in libpng
July 3, 2007 July 10, 2007
Since the PNG Development group is an ad-hoc body, we can't make Since the PNG Development group is an ad-hoc body, we can't make
an official declaration. an official declaration.
This is your unofficial assurance that libpng from version 0.71 and This is your unofficial assurance that libpng from version 0.71 and
upward through 1.2.19beta22 are Y2K compliant. It is my belief that earlier upward through 1.2.19beta23 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant. versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that Libpng only has three year fields. One is a 2-byte unsigned integer that

View File

@ -1,6 +1,6 @@
.TH LIBPNG 3 "July 3, 2007" .TH LIBPNG 3 "July 10, 2007"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta22 libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta23
.SH SYNOPSIS .SH SYNOPSIS
\fB \fB
#include <png.h>\fP #include <png.h>\fP
@ -410,7 +410,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT .SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng libpng.txt - A description on how to use and modify libpng
libpng version 1.2.19beta22 - July 3, 2007 libpng version 1.2.19beta23 - July 10, 2007
Updated and distributed by Glenn Randers-Pehrson Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net> <glennrp at users.sourceforge.net>
Copyright (c) 1998-2007 Glenn Randers-Pehrson Copyright (c) 1998-2007 Glenn Randers-Pehrson
@ -3331,13 +3331,13 @@ application:
.SH IX. Y2K Compliance in libpng .SH IX. Y2K Compliance in libpng
July 3, 2007 July 10, 2007
Since the PNG Development group is an ad-hoc body, we can't make Since the PNG Development group is an ad-hoc body, we can't make
an official declaration. an official declaration.
This is your unofficial assurance that libpng from version 0.71 and This is your unofficial assurance that libpng from version 0.71 and
upward through 1.2.19beta22 are Y2K compliant. It is my belief that earlier upward through 1.2.19beta23 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant. versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that Libpng only has three year fields. One is a 2-byte unsigned integer that
@ -3526,7 +3526,7 @@ the first widely used release:
1.2.17 13 10217 12.so.0.17[.0] 1.2.17 13 10217 12.so.0.17[.0]
1.0.26 10 10026 10.so.0.26[.0] 1.0.26 10 10026 10.so.0.26[.0]
1.2.18 13 10218 12.so.0.18[.0] 1.2.18 13 10218 12.so.0.18[.0]
1.2.19beta1-22 13 10219 12.so.0.19[.0] 1.2.19beta1-23 13 10219 12.so.0.19[.0]
Henceforth the source version will match the shared-library minor Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be and patch numbers; the shared-library major version number will be
@ -3582,7 +3582,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation. Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.2.19beta22 - July 3, 2007: Libpng version 1.2.19beta23 - July 10, 2007:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
@ -3603,7 +3603,7 @@ included in the libpng distribution, the latter shall prevail.)
If you modify libpng you may insert additional notices immediately following If you modify libpng you may insert additional notices immediately following
this sentence. this sentence.
libpng versions 1.2.6, August 15, 2004, through 1.2.19beta22, July 3, 2007, are libpng versions 1.2.6, August 15, 2004, through 1.2.19beta23, July 10, 2007, are
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5 distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors with the following individual added to the list of Contributing Authors
@ -3702,7 +3702,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson Glenn Randers-Pehrson
glennrp at users.sourceforge.net glennrp at users.sourceforge.net
July 3, 2007 July 10, 2007
.\" end of man page .\" end of man page

View File

@ -1,6 +1,6 @@
.TH LIBPNGPF 3 "July 3, 2007" .TH LIBPNGPF 3 "July 10, 2007"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta22 libpng \- Portable Network Graphics (PNG) Reference Library 1.2.19beta23
(private functions) (private functions)
.SH SYNOPSIS .SH SYNOPSIS
\fB#include <png.h>\fP \fB#include <png.h>\fP

2
png.5
View File

@ -1,4 +1,4 @@
.TH PNG 5 "July 3, 2007" .TH PNG 5 "July 10, 2007"
.SH NAME .SH NAME
png \- Portable Network Graphics (PNG) format png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION .SH DESCRIPTION

6
png.c
View File

@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions /* png.c - location for general purpose libpng functions
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@ -13,7 +13,7 @@
#include "png.h" #include "png.h"
/* Generate a compiler error if there is an old png.h in the search path. */ /* Generate a compiler error if there is an old png.h in the search path. */
typedef version_1_2_19beta22 Your_png_h_is_not_version_1_2_19beta22; typedef version_1_2_19beta23 Your_png_h_is_not_version_1_2_19beta23;
/* Version information for C files. This had better match the version /* Version information for C files. This had better match the version
* string defined in png.h. */ * string defined in png.h. */
@ -706,7 +706,7 @@ png_charp PNGAPI
png_get_copyright(png_structp png_ptr) png_get_copyright(png_structp png_ptr)
{ {
png_ptr = png_ptr; /* silence compiler warning about unused png_ptr */ png_ptr = png_ptr; /* silence compiler warning about unused png_ptr */
return ((png_charp) "\n libpng version 1.2.19beta22 - July 3, 2007\n\ return ((png_charp) "\n libpng version 1.2.19beta23 - July 10, 2007\n\
Copyright (c) 1998-2007 Glenn Randers-Pehrson\n\ Copyright (c) 1998-2007 Glenn Randers-Pehrson\n\
Copyright (c) 1996-1997 Andreas Dilger\n\ Copyright (c) 1996-1997 Andreas Dilger\n\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n"); Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");

20
png.h
View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library /* png.h - header file for PNG reference library
* *
* libpng version 1.2.19beta22 - July 3, 2007 * libpng version 1.2.19beta23 - July 10, 2007
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@ -9,7 +9,7 @@
* Authors and maintainers: * Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.2.19beta22 - July 3, 2007: Glenn * libpng versions 0.97, January 1998, through 1.2.19beta23 - July 10, 2007: Glenn
* See also "Contributing Authors", below. * See also "Contributing Authors", below.
* *
* Note about libpng version numbers: * Note about libpng version numbers:
@ -150,7 +150,7 @@
* 1.2.17 13 10217 12.so.0.17[.0] * 1.2.17 13 10217 12.so.0.17[.0]
* 1.0.26 10 10026 10.so.0.26[.0] * 1.0.26 10 10026 10.so.0.26[.0]
* 1.2.18 13 10218 12.so.0.18[.0] * 1.2.18 13 10218 12.so.0.18[.0]
* 1.2.19beta1-22 13 10219 12.so.0.19[.0] * 1.2.19beta1-23 13 10219 12.so.0.19[.0]
* *
* Henceforth the source version will match the shared-library major * Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be * and minor numbers; the shared-library major version number will be
@ -180,7 +180,7 @@
* If you modify libpng you may insert additional notices immediately following * If you modify libpng you may insert additional notices immediately following
* this sentence. * this sentence.
* *
* libpng versions 1.2.6, August 15, 2004, through 1.2.19beta22, July 3, 2007, are * libpng versions 1.2.6, August 15, 2004, through 1.2.19beta23, July 10, 2007, are
* Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are * Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5 * distributed according to the same disclaimer and license as libpng-1.2.5
* with the following individual added to the list of Contributing Authors: * with the following individual added to the list of Contributing Authors:
@ -292,13 +292,13 @@
* Y2K compliance in libpng: * Y2K compliance in libpng:
* ========================= * =========================
* *
* July 3, 2007 * July 10, 2007
* *
* Since the PNG Development group is an ad-hoc body, we can't make * Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration. * an official declaration.
* *
* This is your unofficial assurance that libpng from version 0.71 and * This is your unofficial assurance that libpng from version 0.71 and
* upward through 1.2.19beta22 are Y2K compliant. It is my belief that earlier * upward through 1.2.19beta23 are Y2K compliant. It is my belief that earlier
* versions were also Y2K compliant. * versions were also Y2K compliant.
* *
* Libpng only has three year fields. One is a 2-byte unsigned integer * Libpng only has three year fields. One is a 2-byte unsigned integer
@ -354,9 +354,9 @@
*/ */
/* Version information for png.h - this should match the version in png.c */ /* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.2.19beta22" #define PNG_LIBPNG_VER_STRING "1.2.19beta23"
#define PNG_HEADER_VERSION_STRING \ #define PNG_HEADER_VERSION_STRING \
" libpng version 1.2.19beta22 - July 3, 2007\n" " libpng version 1.2.19beta23 - July 10, 2007\n"
#define PNG_LIBPNG_VER_SONUM 0 #define PNG_LIBPNG_VER_SONUM 0
#define PNG_LIBPNG_VER_DLLNUM 13 #define PNG_LIBPNG_VER_DLLNUM 13
@ -368,7 +368,7 @@
/* This should match the numeric part of the final component of /* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */ * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
#define PNG_LIBPNG_VER_BUILD 22 #define PNG_LIBPNG_VER_BUILD 23
/* Release Status */ /* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1 #define PNG_LIBPNG_BUILD_ALPHA 1
@ -1407,7 +1407,7 @@ struct png_struct_def
/* This triggers a compiler error in png.c, if png.c and png.h /* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number. * do not agree upon the version number.
*/ */
typedef png_structp version_1_2_19beta22; typedef png_structp version_1_2_19beta23;
typedef png_struct FAR * FAR * png_structpp; typedef png_struct FAR * FAR * png_structpp;

View File

@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng /* pngconf.h - machine configurable file for libpng
* *
* libpng version 1.2.19beta22 - July 3, 2007 * libpng version 1.2.19beta23 - July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@ -753,6 +753,14 @@
# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) # if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE)
# define PNG_MMX_CODE_SUPPORTED # define PNG_MMX_CODE_SUPPORTED
# if defined(__GNUC__) && defined(__x86_64__) && !defined(PNG_NO_MMX_READ_FILTER_ROW) && \
((__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR == 0))) && \
!defined(PNG_HAVE_MMX_READ_FILTER_ROW)
/* work around 64-bit gcc compiler bugs in gcc-3.3, 3.4, 4.0.
* If you are using gcc-4.0 with -O2 or -O3 it may be safe to define
* PNG_HAVE_MMX_READ_FILTER_ROW manually */
# define PNG_NO_MMX_READ_FILTER_ROW
# endif
# endif # endif
# if !defined(PNG_USE_PNGVCRD) && !defined(PNG_NO_MMX_CODE) && \ # if !defined(PNG_USE_PNGVCRD) && !defined(PNG_NO_MMX_CODE) && \
@ -1499,20 +1507,32 @@ typedef z_stream FAR * png_zstreamp;
* MMX will be detected at run time and used if present. * MMX will be detected at run time and used if present.
*/ */
#ifdef PNG_USE_PNGVCRD #ifdef PNG_USE_PNGVCRD
# ifndef PNG_NO_MMX_COMBINE_ROW
# define PNG_HAVE_MMX_COMBINE_ROW # define PNG_HAVE_MMX_COMBINE_ROW
# endif
# ifndef PNG_NO_MMX_READ_INTERLACE
# define PNG_HAVE_MMX_READ_INTERLACE # define PNG_HAVE_MMX_READ_INTERLACE
# endif
# ifndef PNG_NO_MMX_READ_FILTER_ROW
# define PNG_HAVE_MMX_READ_FILTER_ROW # define PNG_HAVE_MMX_READ_FILTER_ROW
# endif # endif
#endif
/* Set this in the makefile for gcc/as on Pentium, not here. */ /* Set this in the makefile for gcc/as on Pentium, not here. */
/* Platform must be Pentium. Makefile must assemble and load pnggccrd.c . /* Platform must be Pentium. Makefile must assemble and load pnggccrd.c .
* MMX will be detected at run time and used if present. * MMX will be detected at run time and used if present.
*/ */
#ifdef PNG_USE_PNGGCCRD #ifdef PNG_USE_PNGGCCRD
# ifndef PNG_NO_MMX_COMBINE_ROW
# define PNG_HAVE_MMX_COMBINE_ROW # define PNG_HAVE_MMX_COMBINE_ROW
# endif
# ifndef PNG_NO_MMX_READ_INTERLACE
# define PNG_HAVE_MMX_READ_INTERLACE # define PNG_HAVE_MMX_READ_INTERLACE
# endif
# ifndef PNG_NO_MMX_READ_FILTER
# define PNG_HAVE_MMX_READ_FILTER_ROW # define PNG_HAVE_MMX_READ_FILTER_ROW
# endif # endif
#endif
/* - see pnggccrd.c for info about what is currently enabled */ /* - see pnggccrd.c for info about what is currently enabled */
#endif /* PNG_INTERNAL */ #endif /* PNG_INTERNAL */

View File

@ -1,7 +1,7 @@
/* pngerror.c - stub functions for i/o and memory allocation /* pngerror.c - stub functions for i/o and memory allocation
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)

View File

@ -3,7 +3,7 @@
* *
* For Intel x86 CPU (Pentium-MMX or later) and GNU C compiler. * For Intel x86 CPU (Pentium-MMX or later) and GNU C compiler.
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998 Intel Corporation * Copyright (c) 1998 Intel Corporation
* Copyright (c) 1999-2002,2007 Greg Roelofs * Copyright (c) 1999-2002,2007 Greg Roelofs
@ -25,7 +25,10 @@
* http://sam.zoy.org/blog/2007-04-13-shlib-with-non-pic-code-have-inline-assembly-and-pic-mix-well * http://sam.zoy.org/blog/2007-04-13-shlib-with-non-pic-code-have-inline-assembly-and-pic-mix-well
* http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html * http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html
* http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html * http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
* AMD x86-64 Architecture Programmer's Manual, volumes 1 and 5 * AMD64 Architecture Programmer's Manual, volumes 1 and 5
* [http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_7044,00.html]
* Intel 64 and IA-32 Software Developer's Manuals
* [http://developer.intel.com/products/processor/manuals/]
* *
* png_read_filter_row_mmx_*() were converted in place with intel2gas 1.3.1: * png_read_filter_row_mmx_*() were converted in place with intel2gas 1.3.1:
* *
@ -377,19 +380,22 @@
* - png_read_filter_row_mmx_avg() * - png_read_filter_row_mmx_avg()
* - png_read_filter_row_mmx_paeth() * - png_read_filter_row_mmx_paeth()
* - png_read_filter_row_mmx_sub() * - png_read_filter_row_mmx_sub()
* - png_read_filter_row_mmx_up()
* - NOTE: this fix makes use of the fact that modifying a 32-bit reg (e.g., * - NOTE: this fix makes use of the fact that modifying a 32-bit reg (e.g.,
* %%ebx) clears the top half of its corresponding 64-bit reg (%%rbx), so * %%ebx) clears the top half of its corresponding 64-bit reg (%%rbx), so
* it's safe to mix 32-bit operations with 64-bit base/index addressing * it's safe to mix 32-bit operations with 64-bit base/index addressing
* (see new PSI/PDI/PAX/PDX/PBP/etc. "pointer-register" macros); applies * (see new PSI/PAX/PBX/PDX/PBP/etc. "pointer-register" macros); applies
* also to clobber lists * also to clobber lists
* *
* * 20070630:
* 200706xx: * - cleaned up formatting, macros, minor png_read_filter_row_mmx_sub() 8-bpp
* - continued fixing intermittent 64-bit crash bug: * register-usage inefficiency
* - png_read_filter_row_mmx_up() * - fixed 32-bit png_do_read_interlace() bug (was using pointer size for
* 64-bit dummy values)
* *
* 20070703: * 20070703:
* - changed pngbytep dummy_value_a and b to ull dummy_value_a and b. * - added check for (manual) PIC macro to fix OpenBSD crash bug
* *
* *
* STILL TO DO: * STILL TO DO:
@ -421,6 +427,13 @@
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_USE_PNGGCCRD) #if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_USE_PNGGCCRD)
/* for some inexplicable reason, gcc x.x.x on OpenBSD (and elsewhere?) does
* *not* define __PIC__ when the -fPIC option is used, so we have to rely on
* makefiles and whatnot to define the PIC macro explicitly */
#if defined(PIC) && !defined(__PIC__) // (this can/should move to pngconf.h)
# define __PIC__
#endif
/* if you want/need full thread-safety on x86-64 even when linking statically, /* if you want/need full thread-safety on x86-64 even when linking statically,
* comment out the "&& defined(__PIC__)" part here: */ * comment out the "&& defined(__PIC__)" part here: */
#if defined(__x86_64__) && defined(__PIC__) #if defined(__x86_64__) && defined(__PIC__)
@ -645,13 +658,15 @@ static PNG_CONST ull _amask4_2_2 __attribute__((used, aligned(8))) = 0x00000000
#endif // ?PNG_x86_64_USE_GOTPCREL #endif // ?PNG_x86_64_USE_GOTPCREL
#if defined(PNG_HAVE_MMX_READ_FILTER_ROW) #if defined(PNG_HAVE_MMX_READ_FILTER_ROW) || defined(PNG_HAVE_MMX_COMBINE_ROW)
// this block is specific to png_read_filter_row_mmx_paeth() // this block is specific to png_read_filter_row_mmx_paeth()
#if defined(PNG_x86_64_USE_GOTPCREL) #if defined(PNG_x86_64_USE_GOTPCREL)
# if defined(PNG_HAVE_MMX_READ_FILTER_ROW)
# define pa_TEMP "%%r11d" # define pa_TEMP "%%r11d"
# define pb_TEMP "%%r12d" # define pb_TEMP "%%r12d"
# define pc_TEMP "%%r13d" # define pc_TEMP "%%r13d"
# endif
# if defined(PNG_CLOBBER_x86_64_REGS_SUPPORTED) // works as of gcc 3.4.3 ... # if defined(PNG_CLOBBER_x86_64_REGS_SUPPORTED) // works as of gcc 3.4.3 ...
# define SAVE_r11_r12_r13 # define SAVE_r11_r12_r13
# define RESTORE_r11_r12_r13 # define RESTORE_r11_r12_r13
@ -708,6 +723,13 @@ static PNG_CONST ull _amask4_2_2 __attribute__((used, aligned(8))) = 0x00000000
# define RESTORE_r15 "popq %%r15 \n\t" # define RESTORE_r15 "popq %%r15 \n\t"
# define _CLOBBER_r15 # define _CLOBBER_r15
# endif # endif
# define PBP "%%rbp" // regs used for 64-bit
# define PAX "%%rax" // pointers or in
# define PBX "%%rbx" // combination with
# define PCX "%%rcx" // 64-bit pointer-regs
# define PDX "%%rdx" // (base/index pairs,
# define PSI "%%rsi" // add/sub/mov pairs)
# define CLEAR_BOTTOM_3_BITS "and $0xfffffffffffffff8, "
#else #else
# define SAVE_ebp "pushl %%ebp \n\t" // clobber list doesn't work # define SAVE_ebp "pushl %%ebp \n\t" // clobber list doesn't work
# define RESTORE_ebp "popl %%ebp \n\t" // for %ebp on 32-bit; not # define RESTORE_ebp "popl %%ebp \n\t" // for %ebp on 32-bit; not
@ -718,6 +740,13 @@ static PNG_CONST ull _amask4_2_2 __attribute__((used, aligned(8))) = 0x00000000
# define SAVE_r15 # define SAVE_r15
# define RESTORE_r15 # define RESTORE_r15
# define _CLOBBER_r15 # define _CLOBBER_r15
# define PBP "%%ebp" // regs used for or in
# define PAX "%%eax" // combination with
# define PBX "%%ebx" // "normal," 32-bit
# define PCX "%%ecx" // pointers
# define PDX "%%edx"
# define PSI "%%esi"
# define CLEAR_BOTTOM_3_BITS "and $0xfffffff8, "
#endif #endif
// CLOB_COMMA_ebx_ebp: need comma ONLY if both CLOBBER_ebp and CLOBBER_GOT_ebx // CLOB_COMMA_ebx_ebp: need comma ONLY if both CLOBBER_ebp and CLOBBER_GOT_ebx
@ -928,6 +957,12 @@ png_mmx_support(void)
void /* PRIVATE */ void /* PRIVATE */
png_combine_row(png_structp png_ptr, png_bytep row, int mask) png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{ {
int dummy_value_a; // fix 'forbidden register spilled' error
int dummy_value_c;
int dummy_value_d;
png_bytep dummy_value_S;
png_bytep dummy_value_D;
png_debug(1, "in png_combine_row (pnggccrd.c)\n"); png_debug(1, "in png_combine_row (pnggccrd.c)\n");
if (_mmx_supported == 2) { if (_mmx_supported == 2) {
@ -948,7 +983,172 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{ {
switch (png_ptr->row_info.pixel_depth) switch (png_ptr->row_info.pixel_depth)
{ {
// most common case: combining 32-bit RGBA case 24: /* png_ptr->row_info.pixel_depth */
{
png_bytep srcptr;
png_bytep dstptr;
#if !defined(PNG_1_0_X)
if (png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)
#else
if (_mmx_supported)
#endif
{
png_uint_32 len;
int diff;
srcptr = png_ptr->row_buf + 1;
dstptr = row;
len = png_ptr->width & ~7; // reduce to multiple of 8
diff = (int) (png_ptr->width & 7); // amount lost
__asm__ __volatile__ (
"not %%edx \n\t" // mask => unmask
"movd %%edx, %%mm7 \n\t" // load bit pattern
"not %%edx \n\t" // unmask => mask for later
"psubb %%mm6, %%mm6 \n\t" // zero mm6
"punpcklbw %%mm7, %%mm7 \n\t"
"punpcklwd %%mm7, %%mm7 \n\t"
"punpckldq %%mm7, %%mm7 \n\t" // fill reg with 8 masks
LOAD_GOT_rbp
"movq " MASK24_0 ", %%mm0 \n\t" // _mask24_0 -> mm0
"movq " MASK24_1 ", %%mm1 \n\t" // _mask24_1 -> mm1
"movq " MASK24_2 ", %%mm2 \n\t" // _mask24_2 -> mm2
RESTORE_rbp
"pand %%mm7, %%mm0 \n\t"
"pand %%mm7, %%mm1 \n\t"
"pand %%mm7, %%mm2 \n\t"
"pcmpeqb %%mm6, %%mm0 \n\t"
"pcmpeqb %%mm6, %%mm1 \n\t"
"pcmpeqb %%mm6, %%mm2 \n\t"
// preload "movl len, %%ecx \n\t" // load length of line
// preload "movl srcptr, %3 \n\t" // load source
// preload "movl dstptr, %4 \n\t" // load dest
"cmpl $0, %%ecx \n\t"
"jz mainloop24end \n\t"
"mainloop24: \n\t"
"movq (%3), %%mm4 \n\t"
"pand %%mm0, %%mm4 \n\t"
"movq %%mm0, %%mm6 \n\t"
"movq (%4), %%mm7 \n\t"
"pandn %%mm7, %%mm6 \n\t"
"por %%mm6, %%mm4 \n\t"
"movq %%mm4, (%4) \n\t"
"movq 8(%3), %%mm5 \n\t"
"pand %%mm1, %%mm5 \n\t"
"movq %%mm1, %%mm7 \n\t"
"movq 8(%4), %%mm6 \n\t"
"pandn %%mm6, %%mm7 \n\t"
"por %%mm7, %%mm5 \n\t"
"movq %%mm5, 8(%4) \n\t"
"movq 16(%3), %%mm6 \n\t"
"pand %%mm2, %%mm6 \n\t"
"movq %%mm2, %%mm4 \n\t"
"movq 16(%4), %%mm7 \n\t"
"pandn %%mm7, %%mm4 \n\t"
"por %%mm4, %%mm6 \n\t"
"movq %%mm6, 16(%4) \n\t"
"add $24, %3 \n\t" // inc by 24 bytes processed
"add $24, %4 \n\t"
"subl $8, %%ecx \n\t" // dec by 8 pixels processed
"ja mainloop24 \n\t"
"mainloop24end: \n\t"
// preload "movl diff, %%ecx \n\t" // (diff is in eax)
"movl %%eax, %%ecx \n\t"
"cmpl $0, %%ecx \n\t"
"jz end24 \n\t"
// preload "movl mask, %%edx \n\t"
"sall $24, %%edx \n\t" // make low byte, high byte
"secondloop24: \n\t"
"sall %%edx \n\t" // move high bit to CF
"jnc skip24 \n\t" // if CF = 0
"movw (%3), %%ax \n\t"
"movw %%ax, (%4) \n\t"
"xorl %%eax, %%eax \n\t"
"movb 2(%3), %%al \n\t"
"movb %%al, 2(%4) \n\t"
"skip24: \n\t"
"add $3, %3 \n\t"
"add $3, %4 \n\t"
"decl %%ecx \n\t"
"jnz secondloop24 \n\t"
"end24: \n\t"
"EMMS \n\t" // DONE
: "=a" (dummy_value_a), // output regs (dummy)
"=d" (dummy_value_d),
"=c" (dummy_value_c),
"=S" (dummy_value_S),
"=D" (dummy_value_D)
: "0" (diff), // eax // input regs
"1" (mask), // edx
"2" (len), // ecx
// was (unmask) "b" RESERVED // ebx // Global Offset Table idx
"3" (srcptr), // esi/rsi
"4" (dstptr) // edi/rdi
#if defined(PNG_CLOBBER_MMX_REGS_SUPPORTED)
: "%mm0", "%mm1", "%mm2" // clobber list
, "%mm4", "%mm5", "%mm6", "%mm7"
#endif
);
}
else /* not _mmx_supported - use modified C routine */
{
register png_uint_32 i;
png_uint_32 initial_val = BPP3 * png_pass_start[png_ptr->pass];
/* png.c: png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; */
register int stride = BPP3 * png_pass_inc[png_ptr->pass];
/* png.c: png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; */
register int rep_bytes = BPP3 * png_pass_width[png_ptr->pass];
/* png.c: png_pass_width[] = {8, 4, 4, 2, 2, 1, 1}; */
png_uint_32 len = png_ptr->width &~7; /* reduce to mult. of 8 */
int diff = (int) (png_ptr->width & 7); /* amount lost */
register png_uint_32 final_val = BPP3 * len; /* GRR bugfix */
srcptr = png_ptr->row_buf + 1 + initial_val;
dstptr = row + initial_val;
for (i = initial_val; i < final_val; i += stride)
{
png_memcpy(dstptr, srcptr, rep_bytes);
srcptr += stride;
dstptr += stride;
}
if (diff) /* number of leftover pixels: 3 for pngtest */
{
final_val += diff*BPP3;
for (; i < final_val; i += stride)
{
if (rep_bytes > (int)(final_val-i))
rep_bytes = (int)(final_val-i);
png_memcpy(dstptr, srcptr, rep_bytes);
srcptr += stride;
dstptr += stride;
}
}
} /* end of else (_mmx_supported) */
break;
} /* end 24 bpp */
// formerly claimed to be most common case (combining 32-bit RGBA),
// but almost certainly less common than 24-bit RGB case
case 32: /* png_ptr->row_info.pixel_depth */ case 32: /* png_ptr->row_info.pixel_depth */
{ {
png_bytep srcptr; png_bytep srcptr;
@ -962,11 +1162,6 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{ {
png_uint_32 len; png_uint_32 len;
int diff; int diff;
int dummy_value_a; // fix 'forbidden register spilled' error
int dummy_value_c;
int dummy_value_d;
png_bytep dummy_value_S;
png_bytep dummy_value_D;
srcptr = png_ptr->row_buf + 1; srcptr = png_ptr->row_buf + 1;
dstptr = row; dstptr = row;
@ -1125,175 +1320,6 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
break; break;
} /* end 32 bpp */ } /* end 32 bpp */
case 24: /* png_ptr->row_info.pixel_depth */
{
png_bytep srcptr;
png_bytep dstptr;
#if !defined(PNG_1_0_X)
if (png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)
#else
if (_mmx_supported)
#endif
{
png_uint_32 len;
int diff;
int dummy_value_a; // fix 'forbidden register spilled' error
int dummy_value_d;
int dummy_value_c;
png_bytep dummy_value_S;
png_bytep dummy_value_D;
srcptr = png_ptr->row_buf + 1;
dstptr = row;
len = png_ptr->width & ~7; // reduce to multiple of 8
diff = (int) (png_ptr->width & 7); // amount lost
__asm__ __volatile__ (
"not %%edx \n\t" // mask => unmask
"movd %%edx, %%mm7 \n\t" // load bit pattern
"not %%edx \n\t" // unmask => mask for later
"psubb %%mm6, %%mm6 \n\t" // zero mm6
"punpcklbw %%mm7, %%mm7 \n\t"
"punpcklwd %%mm7, %%mm7 \n\t"
"punpckldq %%mm7, %%mm7 \n\t" // fill reg with 8 masks
LOAD_GOT_rbp
"movq " MASK24_0 ", %%mm0 \n\t" // _mask24_0 -> mm0
"movq " MASK24_1 ", %%mm1 \n\t" // _mask24_1 -> mm1
"movq " MASK24_2 ", %%mm2 \n\t" // _mask24_2 -> mm2
RESTORE_rbp
"pand %%mm7, %%mm0 \n\t"
"pand %%mm7, %%mm1 \n\t"
"pand %%mm7, %%mm2 \n\t"
"pcmpeqb %%mm6, %%mm0 \n\t"
"pcmpeqb %%mm6, %%mm1 \n\t"
"pcmpeqb %%mm6, %%mm2 \n\t"
// preload "movl len, %%ecx \n\t" // load length of line
// preload "movl srcptr, %3 \n\t" // load source
// preload "movl dstptr, %4 \n\t" // load dest
"cmpl $0, %%ecx \n\t"
"jz mainloop24end \n\t"
"mainloop24: \n\t"
"movq (%3), %%mm4 \n\t"
"pand %%mm0, %%mm4 \n\t"
"movq %%mm0, %%mm6 \n\t"
"movq (%4), %%mm7 \n\t" // GRR PTR CRASH HERE
"pandn %%mm7, %%mm6 \n\t"
"por %%mm6, %%mm4 \n\t"
"movq %%mm4, (%4) \n\t"
"movq 8(%3), %%mm5 \n\t"
"pand %%mm1, %%mm5 \n\t"
"movq %%mm1, %%mm7 \n\t"
"movq 8(%4), %%mm6 \n\t"
"pandn %%mm6, %%mm7 \n\t"
"por %%mm7, %%mm5 \n\t"
"movq %%mm5, 8(%4) \n\t"
"movq 16(%3), %%mm6 \n\t"
"pand %%mm2, %%mm6 \n\t"
"movq %%mm2, %%mm4 \n\t"
"movq 16(%4), %%mm7 \n\t"
"pandn %%mm7, %%mm4 \n\t"
"por %%mm4, %%mm6 \n\t"
"movq %%mm6, 16(%4) \n\t"
"add $24, %3 \n\t" // inc by 24 bytes processed
"add $24, %4 \n\t"
"subl $8, %%ecx \n\t" // dec by 8 pixels processed
"ja mainloop24 \n\t"
"mainloop24end: \n\t"
// preload "movl diff, %%ecx \n\t" // (diff is in eax)
"movl %%eax, %%ecx \n\t"
"cmpl $0, %%ecx \n\t"
"jz end24 \n\t"
// preload "movl mask, %%edx \n\t"
"sall $24, %%edx \n\t" // make low byte, high byte
"secondloop24: \n\t"
"sall %%edx \n\t" // move high bit to CF
"jnc skip24 \n\t" // if CF = 0
"movw (%3), %%ax \n\t"
"movw %%ax, (%4) \n\t"
"xorl %%eax, %%eax \n\t"
"movb 2(%3), %%al \n\t"
"movb %%al, 2(%4) \n\t"
"skip24: \n\t"
"add $3, %3 \n\t"
"add $3, %4 \n\t"
"decl %%ecx \n\t"
"jnz secondloop24 \n\t"
"end24: \n\t"
"EMMS \n\t" // DONE
: "=a" (dummy_value_a), // output regs (dummy)
"=d" (dummy_value_d),
"=c" (dummy_value_c),
"=S" (dummy_value_S),
"=D" (dummy_value_D)
: "0" (diff), // eax // input regs
"1" (mask), // edx
"2" (len), // ecx
// was (unmask) "b" RESERVED // ebx // Global Offset Table idx
"3" (srcptr), // esi/rsi
"4" (dstptr) // edi/rdi
#if defined(PNG_CLOBBER_MMX_REGS_SUPPORTED)
: "%mm0", "%mm1", "%mm2" // clobber list
, "%mm4", "%mm5", "%mm6", "%mm7"
#endif
);
}
else /* not _mmx_supported - use modified C routine */
{
register png_uint_32 i;
png_uint_32 initial_val = BPP3 * png_pass_start[png_ptr->pass];
/* png.c: png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; */
register int stride = BPP3 * png_pass_inc[png_ptr->pass];
/* png.c: png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; */
register int rep_bytes = BPP3 * png_pass_width[png_ptr->pass];
/* png.c: png_pass_width[] = {8, 4, 4, 2, 2, 1, 1}; */
png_uint_32 len = png_ptr->width &~7; /* reduce to mult. of 8 */
int diff = (int) (png_ptr->width & 7); /* amount lost */
register png_uint_32 final_val = BPP3 * len; /* GRR bugfix */
srcptr = png_ptr->row_buf + 1 + initial_val;
dstptr = row + initial_val;
for (i = initial_val; i < final_val; i += stride)
{
png_memcpy(dstptr, srcptr, rep_bytes);
srcptr += stride;
dstptr += stride;
}
if (diff) /* number of leftover pixels: 3 for pngtest */
{
final_val += diff*BPP3;
for (; i < final_val; i += stride)
{
if (rep_bytes > (int)(final_val-i))
rep_bytes = (int)(final_val-i);
png_memcpy(dstptr, srcptr, rep_bytes);
srcptr += stride;
dstptr += stride;
}
}
} /* end of else (_mmx_supported) */
break;
} /* end 24 bpp */
case 8: /* png_ptr->row_info.pixel_depth */ case 8: /* png_ptr->row_info.pixel_depth */
{ {
png_bytep srcptr; png_bytep srcptr;
@ -1307,11 +1333,6 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{ {
png_uint_32 len; png_uint_32 len;
int diff; int diff;
int dummy_value_a; // fix 'forbidden register spilled' error
int dummy_value_d;
int dummy_value_c;
png_bytep dummy_value_S;
png_bytep dummy_value_D;
srcptr = png_ptr->row_buf + 1; srcptr = png_ptr->row_buf + 1;
dstptr = row; dstptr = row;
@ -1573,6 +1594,7 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
s_end = 0; s_end = 0;
s_inc = -4; s_inc = -4;
} }
shift = s_start; shift = s_start;
for (i = 0; i < png_ptr->width; i++) for (i = 0; i < png_ptr->width; i++)
@ -1613,11 +1635,6 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{ {
png_uint_32 len; png_uint_32 len;
int diff; int diff;
int dummy_value_a; // fix 'forbidden register spilled' error
int dummy_value_d;
int dummy_value_c;
png_bytep dummy_value_S;
png_bytep dummy_value_D;
srcptr = png_ptr->row_buf + 1; srcptr = png_ptr->row_buf + 1;
dstptr = row; dstptr = row;
@ -1767,11 +1784,6 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
{ {
png_uint_32 len; png_uint_32 len;
int diff; int diff;
int dummy_value_a; // fix 'forbidden register spilled' error
int dummy_value_d;
int dummy_value_c;
png_bytep dummy_value_S;
png_bytep dummy_value_D;
srcptr = png_ptr->row_buf + 1; srcptr = png_ptr->row_buf + 1;
dstptr = row; dstptr = row;
@ -2246,8 +2258,8 @@ png_do_read_interlace(png_structp png_ptr)
int dummy_value_c; // fix 'forbidden register spilled' int dummy_value_c; // fix 'forbidden register spilled'
png_bytep dummy_value_S; png_bytep dummy_value_S;
png_bytep dummy_value_D; png_bytep dummy_value_D;
ull dummy_value_a; png_bytep dummy_value_a;
ull dummy_value_d; png_bytep dummy_value_d;
//-------------------------------------------------------------- //--------------------------------------------------------------
if (pixel_bytes == BPP3) if (pixel_bytes == BPP3)
@ -3203,6 +3215,7 @@ png_do_read_interlace(png_structp png_ptr)
#if defined(PNG_HAVE_MMX_READ_FILTER_ROW) #if defined(PNG_HAVE_MMX_READ_FILTER_ROW)
#ifdef PNG_MMX_READ_FILTER_AVG_SUPPORTED
//===========================================================================// //===========================================================================//
// // // //
@ -3228,23 +3241,6 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
bpp = (row_info->pixel_depth + 7) >> 3; // calc number of bytes per pixel bpp = (row_info->pixel_depth + 7) >> 3; // calc number of bytes per pixel
FullLength = row_info->rowbytes; // number of bytes to filter FullLength = row_info->rowbytes; // number of bytes to filter
#ifdef __x86_64__ // regs used for pointers or together with pointer-regs
# define PBP "%%rbp"
# define PAX "%%rax"
# define PBX "%%rbx"
# define PCX "%%rcx"
# define PDX "%%rdx"
# define PSI "%%rsi"
# define CLEAR_BOTTOM_3_BITS "and $0xfffffffffffffff8, "
#else
# define PBP "%%ebp"
# define PAX "%%eax"
# define PBX "%%ebx"
# define PCX "%%ecx"
# define PDX "%%edx"
# define PSI "%%esi"
# define CLEAR_BOTTOM_3_BITS "and $0xfffffff8, "
#endif
__asm__ __volatile__ ( __asm__ __volatile__ (
SAVE_GOT_ebx SAVE_GOT_ebx
SAVE_r15 SAVE_r15
@ -3960,11 +3956,13 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
); );
} /* end png_read_filter_row_mmx_avg() */ } /* end png_read_filter_row_mmx_avg() */
#endif /* PNG_MMX_READ_FILTER_AVG_SUPPORTED */
#if defined(PNG_x86_64_USE_GOTPCREL) || defined(PNG_THREAD_UNSAFE_OK) #if defined(PNG_x86_64_USE_GOTPCREL) || defined(PNG_THREAD_UNSAFE_OK)
#ifdef PNG_MMX_READ_FILTER_AVG_SUPPORTED
//===========================================================================// //===========================================================================//
// // // //
// P N G _ R E A D _ F I L T E R _ R O W _ M M X _ P A E T H // // P N G _ R E A D _ F I L T E R _ R O W _ M M X _ P A E T H //
@ -5071,12 +5069,14 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
); );
} /* end png_read_filter_row_mmx_paeth() */ } /* end png_read_filter_row_mmx_paeth() */
#endif /* PNG_MMX_READ_FILTER_PAETH_SUPPORTED */
#endif // PNG_x86_64_USE_GOTPCREL || PNG_THREAD_UNSAFE_OK #endif // PNG_x86_64_USE_GOTPCREL || PNG_THREAD_UNSAFE_OK
#ifdef PNG_MMX_READ_FILTER_SUB_SUPPORTED
//===========================================================================// //===========================================================================//
// // // //
// P N G _ R E A D _ F I L T E R _ R O W _ M M X _ S U B // // P N G _ R E A D _ F I L T E R _ R O W _ M M X _ S U B //
@ -5430,7 +5430,6 @@ png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
case 8: case 8:
{ {
__asm__ __volatile__ ( __asm__ __volatile__ (
SAVE_ebp
// preload "mov row, %1 \n\t" // edi/rdi // preload "mov row, %1 \n\t" // edi/rdi
// preload "movl diff, %%edx \n\t" // preload "movl diff, %%edx \n\t"
// notused "mov %1, " PSI " \n\t" // lp = row // notused "mov %1, " PSI " \n\t" // lp = row
@ -5440,8 +5439,8 @@ png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
// prime the pump: load the first Raw(x-bpp) data set // prime the pump: load the first Raw(x-bpp) data set
"movq -8(%1," PDX ",), %%mm7 \n\t" "movq -8(%1," PDX ",), %%mm7 \n\t"
"movl %%eax, %%ebp \n\t" // copy of MMXLength -> ebp "movl %%eax, %%esi \n\t" // copy of MMXLength -> esi
"andl $0x0000003f, %%ebp \n\t" // calc bytes over mult of 64 "andl $0x0000003f, %%esi \n\t" // calc bytes over mult of 64
"sub_8lp: \n\t" "sub_8lp: \n\t"
"movq (%1," PDX ",), %%mm0 \n\t" // load Sub(x) for 1st 8 bytes "movq (%1," PDX ",), %%mm0 \n\t" // load Sub(x) for 1st 8 bytes
@ -5474,7 +5473,7 @@ png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
"movq %%mm6, 48(%1," PDX ",) \n\t" // write Raw(x) for 7th 8 bytes "movq %%mm6, 48(%1," PDX ",) \n\t" // write Raw(x) for 7th 8 bytes
"addl $64, %%edx \n\t" "addl $64, %%edx \n\t"
"paddb %%mm6, %%mm7 \n\t" "paddb %%mm6, %%mm7 \n\t"
"cmpl %%ebp, %%edx \n\t" // cmp to bytes over mult of 64 "cmpl %%esi, %%edx \n\t" // cmp to bytes over mult of 64
"movq %%mm7, -8(%1," PDX ",) \n\t" // write Raw(x) for 8th 8 bytes "movq %%mm7, -8(%1," PDX ",) \n\t" // write Raw(x) for 8th 8 bytes
"jb sub_8lp \n\t" "jb sub_8lp \n\t"
@ -5491,7 +5490,6 @@ png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
"jb sub_8lpA \n\t" // to mm7 to be new Raw(x-bpp) "jb sub_8lpA \n\t" // to mm7 to be new Raw(x-bpp)
// for next loop // for next loop
"sub_8lt8: \n\t" "sub_8lt8: \n\t"
RESTORE_ebp
: "=c" (dummy_value_c), // 0 // output regs (dummy) : "=c" (dummy_value_c), // 0 // output regs (dummy)
"=D" (dummy_value_D), // 1 "=D" (dummy_value_D), // 1
@ -5503,10 +5501,7 @@ png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
"2" (diff), // edx "2" (diff), // edx
"3" (MMXLength) // eax "3" (MMXLength) // eax
// GRR FIXME: esi not clobbered, but need to deal with COLON/COMMA issue:
// GRR FIXME: [or just use esi instead of ebp and lose SAVE/RESTORE/CLOBBERs]
: "%esi" // clobber list : "%esi" // clobber list
_CLOBBER_ebp
#if defined(CLOBBER_MMX_REGS_SUPPORTED) #if defined(CLOBBER_MMX_REGS_SUPPORTED)
, "%mm0", "%mm1", "%mm2", "%mm3" , "%mm0", "%mm1", "%mm2", "%mm3"
, "%mm4", "%mm5", "%mm6", "%mm7" , "%mm4", "%mm5", "%mm6", "%mm7"
@ -5563,10 +5558,12 @@ png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
); );
} // end of png_read_filter_row_mmx_sub() } // end of png_read_filter_row_mmx_sub()
#endif /* PNG_MMX_READ_FILTER_SUB_SUPPORTED */
#ifdef PNG_MMX_READ_FILTER_UP_SUPPORTED
//===========================================================================// //===========================================================================//
// // // //
// P N G _ R E A D _ F I L T E R _ R O W _ M M X _ U P // // P N G _ R E A D _ F I L T E R _ R O W _ M M X _ U P //
@ -5712,6 +5709,7 @@ png_read_filter_row_mmx_up(png_row_infop row_info, png_bytep row,
); );
} // end of png_read_filter_row_mmx_up() } // end of png_read_filter_row_mmx_up()
#endif /* PNG_MMX_READ_FILTER_UP_SUPPORTED */
@ -5751,6 +5749,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
case 1: case 1:
png_snprintf(filtname, 10, "sub-%s", png_snprintf(filtname, 10, "sub-%s",
#ifdef PNG_MMX_READ_FILTER_SUB_SUPPORTED
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_SUB) && ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_SUB) &&
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) && (row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
@ -5758,11 +5757,13 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
#else #else
_mmx_supported _mmx_supported
#endif #endif
? "MMX" : "x86"); #endif
? "MMX" : "C");
break; break;
case 2: case 2:
png_snprintf(filtname, 10, "up-%s", png_snprintf(filtname, 10, "up-%s",
#ifdef PNG_MMX_READ_FILTER_UP_SUPPORTED
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_UP) && ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_UP) &&
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) && (row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
@ -5770,11 +5771,13 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
#else #else
_mmx_supported _mmx_supported
#endif #endif
? "MMX" : "x86"); #endif
? "MMX" : "C");
break; break;
case 3: case 3:
png_snprintf(filtname, 10, "avg-%s", png_snprintf(filtname, 10, "avg-%s",
#ifdef PNG_MMX_READ_FILTER_AVG_SUPPORTED
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_AVG) && ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_AVG) &&
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) && (row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
@ -5782,11 +5785,13 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
#else #else
_mmx_supported _mmx_supported
#endif #endif
? "MMX" : "x86"); #endif
? "MMX" : "C");
break; break;
case 4: case 4:
png_snprintf(filtname, 10, "paeth-%s", png_snprintf(filtname, 10, "paeth-%s",
#ifdef PNG_MMX_READ_FILTER_PAETH_SUPPORTED
#if defined(PNG_x86_64_USE_GOTPCREL) || defined(PNG_THREAD_UNSAFE_OK) #if defined(PNG_x86_64_USE_GOTPCREL) || defined(PNG_THREAD_UNSAFE_OK)
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH) && ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH) &&
@ -5797,7 +5802,8 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
#endif #endif
? "MMX" : ? "MMX" :
#endif /* PNG_x86_64_USE_GOTPCREL || PNG_THREAD_UNSAFE_OK */ #endif /* PNG_x86_64_USE_GOTPCREL || PNG_THREAD_UNSAFE_OK */
"x86"); #endif
"C");
break; break;
default: default:
@ -5819,6 +5825,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
break; break;
case PNG_FILTER_VALUE_SUB: case PNG_FILTER_VALUE_SUB:
#ifdef PNG_MMX_READ_FILTER_SUB_SUPPORTED
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_SUB) && if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_SUB) &&
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) && (row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
@ -5829,6 +5836,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
{ {
png_read_filter_row_mmx_sub(row_info, row); png_read_filter_row_mmx_sub(row_info, row);
} }
#endif
else else
{ {
png_uint_32 i; png_uint_32 i;
@ -5846,6 +5854,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
break; break;
case PNG_FILTER_VALUE_UP: case PNG_FILTER_VALUE_UP:
#ifdef PNG_MMX_READ_FILTER_UP_SUPPORTED
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_UP) && if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_UP) &&
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) && (row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
@ -5857,6 +5866,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
png_read_filter_row_mmx_up(row_info, row, prev_row); png_read_filter_row_mmx_up(row_info, row, prev_row);
} }
else else
#endif
{ {
png_uint_32 i; png_uint_32 i;
png_uint_32 istop = row_info->rowbytes; png_uint_32 istop = row_info->rowbytes;
@ -5872,6 +5882,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
break; break;
case PNG_FILTER_VALUE_AVG: case PNG_FILTER_VALUE_AVG:
#ifdef PNG_MMX_READ_FILTER_AVG_SUPPORTED
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_AVG) && if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_AVG) &&
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) && (row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
@ -5883,6 +5894,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
png_read_filter_row_mmx_avg(row_info, row, prev_row); png_read_filter_row_mmx_avg(row_info, row, prev_row);
} }
else else
#endif
{ {
png_uint_32 i; png_uint_32 i;
png_bytep rp = row; png_bytep rp = row;
@ -5908,6 +5920,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
break; break;
case PNG_FILTER_VALUE_PAETH: case PNG_FILTER_VALUE_PAETH:
#ifdef PNG_MMX_READ_FILTER_PAETH_SUPPORTED
#if defined(PNG_x86_64_USE_GOTPCREL) || defined(PNG_THREAD_UNSAFE_OK) #if defined(PNG_x86_64_USE_GOTPCREL) || defined(PNG_THREAD_UNSAFE_OK)
#if !defined(PNG_1_0_X) #if !defined(PNG_1_0_X)
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH) && if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH) &&
@ -5921,6 +5934,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
} }
else else
#endif /* PNG_x86_64_USE_GOTPCREL || PNG_THREAD_UNSAFE_OK */ #endif /* PNG_x86_64_USE_GOTPCREL || PNG_THREAD_UNSAFE_OK */
#endif
{ {
png_uint_32 i; png_uint_32 i;
png_bytep rp = row; png_bytep rp = row;
@ -5986,4 +6000,3 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
#endif /* PNG_ASSEMBLER_CODE_SUPPORTED && PNG_USE_PNGGCCRD */ #endif /* PNG_ASSEMBLER_CODE_SUPPORTED && PNG_USE_PNGGCCRD */
#endif /* __GNUC__ */ #endif /* __GNUC__ */

View File

@ -1,7 +1,7 @@
/* pngpread.c - read a png file in push mode /* pngpread.c - read a png file in push mode
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)

View File

@ -1,7 +1,7 @@
/* pngread.c - read a PNG file /* pngread.c - read a PNG file
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)

View File

@ -1,7 +1,7 @@
/* pngrtran.c - transforms the data in a row for PNG readers /* pngrtran.c - transforms the data in a row for PNG readers
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)

View File

@ -1,7 +1,7 @@
/* pngrutil.c - utilities to read a PNG file /* pngrutil.c - utilities to read a PNG file
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@ -2273,8 +2273,8 @@ png_check_chunk_name(png_structp png_ptr, png_bytep chunk_name)
* *
*/ */
#if !defined(PNG_USE_PNGGCCRD) && !defined(PNG_USE_PNGVCRD)
#if defined(PNG_OPTIMIZED_CODE_SUPPORTED) #if defined(PNG_OPTIMIZED_CODE_SUPPORTED)
#if !defined(PNG_HAVE_MMX_COMBINE_ROW)
/*===========================================================================*/ /*===========================================================================*/
/* */ /* */
@ -2757,6 +2757,7 @@ static PNG_CONST int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
} /* end if (non-trivial mask) */ } /* end if (non-trivial mask) */
} /* end png_combine_row() */ } /* end png_combine_row() */
#endif /* PNG_HAVE_MMX_COMBINE_ROW */
@ -2767,6 +2768,7 @@ static PNG_CONST int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
/*===========================================================================*/ /*===========================================================================*/
#if defined(PNG_READ_INTERLACING_SUPPORTED) #if defined(PNG_READ_INTERLACING_SUPPORTED)
#if !defined(PNG_HAVE_MMX_READ_INTERLACE)
/* png_do_read_interlace() is called after any 16-bit to 8-bit conversion /* png_do_read_interlace() is called after any 16-bit to 8-bit conversion
* has taken place. [GRR: what other steps come before and/or after?] * has taken place. [GRR: what other steps come before and/or after?]
@ -3110,10 +3112,12 @@ static PNG_CONST int FARDATA png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1};
} /* end png_do_read_interlace() */ } /* end png_do_read_interlace() */
#endif /* PNG_HAVE_MMX_READ_INTERLACE */
#endif /* PNG_READ_INTERLACING_SUPPORTED */ #endif /* PNG_READ_INTERLACING_SUPPORTED */
#if !defined(PNG_HAVE_MMX_READ_FILTER_ROW)
/*===========================================================================*/ /*===========================================================================*/
/* */ /* */
/* P N G _ R E A D _ F I L T E R _ R O W */ /* P N G _ R E A D _ F I L T E R _ R O W */
@ -3293,8 +3297,10 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
} }
} }
#endif /* PNG_HAVE_MMX_READ_FILTER_ROW */
#endif /* PNG_OPTIMIZED_CODE_SUPPORTED */ #endif /* PNG_OPTIMIZED_CODE_SUPPORTED */
#if !defined(PNG_USE_PNGGCCRD) && !defined(PNG_USE_PNGVCRD)
#if !defined(PNG_OPTIMIZED_CODE_SUPPORTED) #if !defined(PNG_OPTIMIZED_CODE_SUPPORTED)
/* Use the unoptimized original C code. This might be removed from a future /* Use the unoptimized original C code. This might be removed from a future
* version of libpng if testing proves it to be worthless. */ * version of libpng if testing proves it to be worthless. */

View File

@ -1553,4 +1553,4 @@ main(int argc, char *argv[])
} }
/* Generate a compiler error if there is an old png.h in the search path. */ /* Generate a compiler error if there is an old png.h in the search path. */
typedef version_1_2_19beta22 your_png_h_is_not_version_1_2_19beta22; typedef version_1_2_19beta23 your_png_h_is_not_version_1_2_19beta23;

View File

@ -3,7 +3,7 @@
* *
* For Intel x86 CPU and Microsoft Visual C++ compiler * For Intel x86 CPU and Microsoft Visual C++ compiler
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* Copyright (c) 1998, Intel Corporation * Copyright (c) 1998, Intel Corporation

View File

@ -1,7 +1,7 @@
/* pngwutil.c - utilities to write a PNG file /* pngwutil.c - utilities to write a PNG file
* *
* Last changed in libpng 1.2.19 July 3, 2007 * Last changed in libpng 1.2.19 July 10, 2007
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2007 Glenn Randers-Pehrson * Copyright (c) 1998-2007 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)

View File

@ -169,7 +169,7 @@ configure_file(${PNG_SOURCE_DIR}/scripts/libpng-config.in
# SET UP LINKS # SET UP LINKS
set_target_properties(${PNG_LIB_NAME} PROPERTIES set_target_properties(${PNG_LIB_NAME} PROPERTIES
# VERSION 0.${PNGLIB_RELEASE}.1.2.19beta22 # VERSION 0.${PNGLIB_RELEASE}.1.2.19beta23
VERSION 0.${PNGLIB_RELEASE}.0 VERSION 0.${PNGLIB_RELEASE}.0
SOVERSION 0 SOVERSION 0
CLEAN_DIRECT_OUTPUT 1) CLEAN_DIRECT_OUTPUT 1)

View File

@ -8,7 +8,7 @@
# Modeled after libxml-config. # Modeled after libxml-config.
version=1.2.19beta22 version=1.2.19beta23
prefix="" prefix=""
libdir="" libdir=""
libs="" libs=""

View File

@ -5,6 +5,6 @@ includedir=@includedir@/libpng12
Name: libpng Name: libpng
Description: Loads and saves PNG files Description: Loads and saves PNG files
Version: 1.2.19beta22 Version: 1.2.19beta23
Libs: -L${libdir} -lpng12 Libs: -L${libdir} -lpng12
Cflags: -I${includedir} @LIBPNG_NO_MMX@ Cflags: -I${includedir} @LIBPNG_NO_MMX@

View File

@ -5,6 +5,6 @@ includedir=@includedir@/libpng12
Name: libpng Name: libpng
Description: Loads and saves PNG files Description: Loads and saves PNG files
Version: 1.2.19beta22 Version: 1.2.19beta23
Libs: -L${libdir} -lpng12 Libs: -L${libdir} -lpng12
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@ -8,7 +8,7 @@
# Library name: # Library name:
LIBNAME=libpng12 LIBNAME=libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -8,7 +8,7 @@
# Library name: # Library name:
LIBNAME=libpng12 LIBNAME=libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -20,7 +20,7 @@ LN_SF = ln -f -s
LIBNAME=libpng12 LIBNAME=libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
prefix=/usr/local prefix=/usr/local

View File

@ -8,7 +8,7 @@
# Library name: # Library name:
LIBNAME=libpng12 LIBNAME=libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -77,7 +77,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
CYGDLL = 12 CYGDLL = 12
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=cygpng$(CYGDLL).dll SHAREDLIB=cygpng$(CYGDLL).dll

View File

@ -19,7 +19,7 @@ ZLIBINC=../zlib
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -5,7 +5,7 @@
# Library name: # Library name:
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12 LIBNAME = libpng12

View File

@ -12,7 +12,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -16,7 +16,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -8,7 +8,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -18,7 +18,7 @@ ZLIBINC=/opt/zlib/include
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -6,7 +6,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -78,7 +78,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
MINGDLL = 12 MINGDLL = 12
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=libpng$(MINGDLL).dll SHAREDLIB=libpng$(MINGDLL).dll

View File

@ -14,7 +14,7 @@ INCSDIR=${LOCALBASE}/include/libpng12
LIB= png12 LIB= png12
SHLIB_MAJOR= 0 SHLIB_MAJOR= 0
SHLIB_MINOR= 1.2.19beta22 SHLIB_MINOR= 1.2.19beta23
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c pngwtran.c pngmem.c pngerror.c pngpread.c

View File

@ -14,7 +14,7 @@ INCSDIR=${LOCALBASE}/include/libpng
LIB= png LIB= png
SHLIB_MAJOR= 3 SHLIB_MAJOR= 3
SHLIB_MINOR= 1.2.19beta22 SHLIB_MINOR= 1.2.19beta23
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c pngwtran.c pngmem.c pngerror.c pngpread.c

View File

@ -7,7 +7,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -8,7 +8,7 @@ LIBDIR= ${PREFIX}/lib
MANDIR= ${PREFIX}/man/cat MANDIR= ${PREFIX}/man/cat
SHLIB_MAJOR= 0 SHLIB_MAJOR= 0
SHLIB_MINOR= 1.2.19beta22 SHLIB_MINOR= 1.2.19beta23
LIB= png LIB= png
SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \ SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \

View File

@ -9,7 +9,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -6,7 +6,7 @@
# Library name: # Library name:
LIBNAME=libpng12 LIBNAME=libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -6,7 +6,7 @@
# Library name: # Library name:
LIBNAME=libpng12 LIBNAME=libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -8,7 +8,7 @@
# Library name: # Library name:
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng12 LIBNAME = libpng12

View File

@ -8,7 +8,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -8,7 +8,7 @@
# Library name: # Library name:
LIBNAME = libpng12 LIBNAME = libpng12
PNGMAJ = 0 PNGMAJ = 0
PNGMIN = 1.2.19beta22 PNGMIN = 1.2.19beta23
PNGVER = $(PNGMAJ).$(PNGMIN) PNGVER = $(PNGMAJ).$(PNGMIN)
# Shared library names: # Shared library names:

View File

@ -2,7 +2,7 @@
; PNG.LIB module definition file for OS/2 ; PNG.LIB module definition file for OS/2
;---------------------------------------- ;----------------------------------------
; Version 1.2.19beta22 ; Version 1.2.19beta23
LIBRARY PNG LIBRARY PNG
DESCRIPTION "PNG image compression library for OS/2" DESCRIPTION "PNG image compression library for OS/2"

View File

@ -5,7 +5,7 @@
LIBRARY LIBRARY
EXPORTS EXPORTS
;Version 1.2.19beta22 ;Version 1.2.19beta23
png_build_grayscale_palette @1 png_build_grayscale_palette @1
png_check_sig @2 png_check_sig @2
png_chunk_error @3 png_chunk_error @3