mips: Wrap up the MIPS/Loongson port and acknowledge the contributors
Completion of this port required a rerun of `./autogen.sh --maintainer`
followed by a rebuild of scripts/pnglibconf.h.prebuilt.
diff --git a/AUTHORS b/AUTHORS
index 60f41e5..22f2ac6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -42,6 +42,9 @@
- Mike Klein
- Sami Boukortt
- Wan-Teh Chang
+ * Loongson Technology Corporation Ltd.
+ - GuXiWei
+ - ZhangLixia
The build projects, the build scripts, the test scripts, and other
files in the "ci", "projects", "scripts" and "tests" directories, have
diff --git a/Makefile.in b/Makefile.in
index df65b71..337ea4e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -114,19 +114,22 @@
@PNG_MIPS_MSA_TRUE@am__append_3 = mips/mips_init.c\
@PNG_MIPS_MSA_TRUE@ mips/filter_msa_intrinsics.c
-@PNG_INTEL_SSE_TRUE@am__append_4 = intel/intel_init.c\
+@PNG_MIPS_MMI_TRUE@@PNG_MIPS_MSA_FALSE@am__append_4 = mips/mips_init.c
+@PNG_MIPS_MMI_TRUE@am__append_5 = mips/filter_mmi_inline_assembly.c
+@PNG_INTEL_SSE_TRUE@am__append_6 = intel/intel_init.c\
@PNG_INTEL_SSE_TRUE@ intel/filter_sse2_intrinsics.c
-@PNG_POWERPC_VSX_TRUE@am__append_5 = powerpc/powerpc_init.c\
+@PNG_POWERPC_VSX_TRUE@am__append_7 = powerpc/powerpc_init.c\
@PNG_POWERPC_VSX_TRUE@ powerpc/filter_vsx_intrinsics.c
# Versioned symbols and restricted exports
-@HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_TRUE@am__append_6 = -Wl,-M -Wl,libpng.vers
-@HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_FALSE@am__append_7 = -Wl,--version-script=libpng.vers
+@HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_TRUE@am__append_8 = -Wl,-M -Wl,libpng.vers
+@HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_FALSE@am__append_9 = -Wl,--version-script=libpng.vers
# Only restricted exports when possible
-@HAVE_LD_VERSION_SCRIPT_FALSE@am__append_8 = -export-symbols libpng.sym
-@DO_PNG_PREFIX_TRUE@am__append_9 = -DPNG_PREFIX='@PNG_PREFIX@'
+@HAVE_LD_VERSION_SCRIPT_FALSE@am__append_10 = -export-symbols libpng.sym
+@PNG_LOONGARCH_LSX_TRUE@am__append_11 = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx.la
+@DO_PNG_PREFIX_TRUE@am__append_12 = -DPNG_PREFIX='@PNG_PREFIX@'
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/scripts/libtool.m4 \
@@ -179,8 +182,7 @@
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-LTLIBRARIES = $(lib_LTLIBRARIES)
-libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LIBADD =
+LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
am__libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES_DIST = png.c \
pngerror.c pngget.c pngmem.c pngpread.c pngread.c pngrio.c \
pngrtran.c pngrutil.c pngset.c pngtrans.c pngwio.c pngwrite.c \
@@ -188,24 +190,28 @@
pngpriv.h pngstruct.h pngusr.dfa arm/arm_init.c \
arm/filter_neon.S arm/filter_neon_intrinsics.c \
arm/palette_neon_intrinsics.c mips/mips_init.c \
- mips/filter_msa_intrinsics.c intel/intel_init.c \
- intel/filter_sse2_intrinsics.c powerpc/powerpc_init.c \
- powerpc/filter_vsx_intrinsics.c
+ mips/filter_msa_intrinsics.c mips/filter_mmi_inline_assembly.c \
+ intel/intel_init.c intel/filter_sse2_intrinsics.c \
+ powerpc/powerpc_init.c powerpc/filter_vsx_intrinsics.c
am__dirstamp = $(am__leading_dot)dirstamp
@PNG_ARM_NEON_TRUE@am__objects_1 = arm/arm_init.lo arm/filter_neon.lo \
@PNG_ARM_NEON_TRUE@ arm/filter_neon_intrinsics.lo \
@PNG_ARM_NEON_TRUE@ arm/palette_neon_intrinsics.lo
@PNG_MIPS_MSA_TRUE@am__objects_2 = mips/mips_init.lo \
@PNG_MIPS_MSA_TRUE@ mips/filter_msa_intrinsics.lo
-@PNG_INTEL_SSE_TRUE@am__objects_3 = intel/intel_init.lo \
+@PNG_MIPS_MMI_TRUE@@PNG_MIPS_MSA_FALSE@am__objects_3 = \
+@PNG_MIPS_MMI_TRUE@@PNG_MIPS_MSA_FALSE@ mips/mips_init.lo
+@PNG_MIPS_MMI_TRUE@am__objects_4 = mips/filter_mmi_inline_assembly.lo
+@PNG_INTEL_SSE_TRUE@am__objects_5 = intel/intel_init.lo \
@PNG_INTEL_SSE_TRUE@ intel/filter_sse2_intrinsics.lo
-@PNG_POWERPC_VSX_TRUE@am__objects_4 = powerpc/powerpc_init.lo \
+@PNG_POWERPC_VSX_TRUE@am__objects_6 = powerpc/powerpc_init.lo \
@PNG_POWERPC_VSX_TRUE@ powerpc/filter_vsx_intrinsics.lo
am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS = png.lo pngerror.lo \
pngget.lo pngmem.lo pngpread.lo pngread.lo pngrio.lo \
pngrtran.lo pngrutil.lo pngset.lo pngtrans.lo pngwio.lo \
pngwrite.lo pngwtran.lo pngwutil.lo $(am__objects_1) \
- $(am__objects_2) $(am__objects_3) $(am__objects_4)
+ $(am__objects_2) $(am__objects_3) $(am__objects_4) \
+ $(am__objects_5) $(am__objects_6)
nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS =
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS = \
$(am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) \
@@ -219,6 +225,19 @@
$(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS) $(LDFLAGS) -o \
$@
+libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_LIBADD =
+am__libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_SOURCES_DIST = \
+ loongarch/loongarch_lsx_init.c \
+ loongarch/filter_lsx_intrinsics.c
+@PNG_LOONGARCH_LSX_TRUE@am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_OBJECTS = loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.lo \
+@PNG_LOONGARCH_LSX_TRUE@ loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.lo
+libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_OBJECTS = \
+ $(am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_OBJECTS)
+libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_LINK = $(LIBTOOL) $(AM_V_lt) \
+ --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+ $(CCLD) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+@PNG_LOONGARCH_LSX_TRUE@am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_rpath =
am__png_fix_itxt_SOURCES_DIST = contrib/tools/png-fix-itxt.c
@ENABLE_TOOLS_TRUE@am_png_fix_itxt_OBJECTS = \
@ENABLE_TOOLS_TRUE@ contrib/tools/png-fix-itxt.$(OBJEXT)
@@ -306,6 +325,9 @@
contrib/tools/$(DEPDIR)/pngfix.Po \
intel/$(DEPDIR)/filter_sse2_intrinsics.Plo \
intel/$(DEPDIR)/intel_init.Plo \
+ loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.Plo \
+ loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.Plo \
+ mips/$(DEPDIR)/filter_mmi_inline_assembly.Plo \
mips/$(DEPDIR)/filter_msa_intrinsics.Plo \
mips/$(DEPDIR)/mips_init.Plo \
powerpc/$(DEPDIR)/filter_vsx_intrinsics.Plo \
@@ -341,11 +363,13 @@
am__v_CCLD_1 =
SOURCES = $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) \
$(nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) \
+ $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_SOURCES) \
$(png_fix_itxt_SOURCES) $(pngcp_SOURCES) $(pngfix_SOURCES) \
$(pngimage_SOURCES) $(pngstest_SOURCES) $(pngtest_SOURCES) \
$(pngunknown_SOURCES) $(pngvalid_SOURCES) $(timepng_SOURCES)
DIST_SOURCES = \
$(am__libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES_DIST) \
+ $(am__libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_SOURCES_DIST) \
$(am__png_fix_itxt_SOURCES_DIST) $(am__pngcp_SOURCES_DIST) \
$(am__pngfix_SOURCES_DIST) $(am__pngimage_SOURCES_DIST) \
$(am__pngstest_SOURCES_DIST) $(am__pngtest_SOURCES_DIST) \
@@ -799,14 +823,24 @@
pngrutil.c pngset.c pngtrans.c pngwio.c pngwrite.c pngwtran.c \
pngwutil.c png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h \
pngstruct.h pngusr.dfa $(am__append_2) $(am__append_3) \
- $(am__append_4) $(am__append_5)
+ $(am__append_4) $(am__append_5) $(am__append_6) \
+ $(am__append_7)
+@PNG_LOONGARCH_LSX_TRUE@noinst_LTLIBRARIES = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx.la
+@PNG_LOONGARCH_LSX_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_SOURCES = loongarch/loongarch_lsx_init.c\
+@PNG_LOONGARCH_LSX_TRUE@ loongarch/filter_lsx_intrinsics.c
+
+@PNG_LOONGARCH_LSX_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_CFLAGS = -mlsx
+@PNG_LOONGARCH_LSX_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LIBADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx.la
+# libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx.la
nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = pnglibconf.h
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined \
-export-dynamic -version-number \
@PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_RELEASE@:0 \
- $(am__append_6) $(am__append_7) $(am__append_8)
-@HAVE_LD_VERSION_SCRIPT_FALSE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.sym
-@HAVE_LD_VERSION_SCRIPT_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.vers
+ $(am__append_8) $(am__append_9) $(am__append_10)
+@HAVE_LD_VERSION_SCRIPT_FALSE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = \
+@HAVE_LD_VERSION_SCRIPT_FALSE@ libpng.sym $(am__append_11)
+@HAVE_LD_VERSION_SCRIPT_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = \
+@HAVE_LD_VERSION_SCRIPT_TRUE@ libpng.vers $(am__append_11)
pkginclude_HEADERS = png.h pngconf.h
nodist_pkginclude_HEADERS = pnglibconf.h
pkgconfig_DATA = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc
@@ -840,7 +874,7 @@
SYMBOL_CFLAGS = -DPNGLIB_LIBNAME='PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0' \
-DPNGLIB_VERSION='@PNGLIB_VERSION@' \
-DSYMBOL_PREFIX='$(SYMBOL_PREFIX)' -DPNG_NO_USE_READ_MACROS \
- -DPNG_BUILDING_SYMBOL_TABLE $(am__append_9)
+ -DPNG_BUILDING_SYMBOL_TABLE $(am__append_12)
# EXT_LIST is a list of the possibly library directory extensions, this exists
# because we can't find a good way of discovering the file extensions that are
@@ -997,6 +1031,17 @@
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
arm/$(am__dirstamp):
@$(MKDIR_P) arm
@: > arm/$(am__dirstamp)
@@ -1018,6 +1063,8 @@
mips/mips_init.lo: mips/$(am__dirstamp) mips/$(DEPDIR)/$(am__dirstamp)
mips/filter_msa_intrinsics.lo: mips/$(am__dirstamp) \
mips/$(DEPDIR)/$(am__dirstamp)
+mips/filter_mmi_inline_assembly.lo: mips/$(am__dirstamp) \
+ mips/$(DEPDIR)/$(am__dirstamp)
intel/$(am__dirstamp):
@$(MKDIR_P) intel
@: > intel/$(am__dirstamp)
@@ -1041,6 +1088,19 @@
libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la: $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES) $(EXTRA_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LINK) -rpath $(libdir) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LIBADD) $(LIBS)
+loongarch/$(am__dirstamp):
+ @$(MKDIR_P) loongarch
+ @: > loongarch/$(am__dirstamp)
+loongarch/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) loongarch/$(DEPDIR)
+ @: > loongarch/$(DEPDIR)/$(am__dirstamp)
+loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.lo: \
+ loongarch/$(am__dirstamp) loongarch/$(DEPDIR)/$(am__dirstamp)
+loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.lo: \
+ loongarch/$(am__dirstamp) loongarch/$(DEPDIR)/$(am__dirstamp)
+
+libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx.la: $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_OBJECTS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_DEPENDENCIES) $(EXTRA_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_LINK) $(am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_rpath) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_OBJECTS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_LIBADD) $(LIBS)
contrib/tools/$(am__dirstamp):
@$(MKDIR_P) contrib/tools
@: > contrib/tools/$(am__dirstamp)
@@ -1150,6 +1210,8 @@
-rm -f contrib/tools/*.$(OBJEXT)
-rm -f intel/*.$(OBJEXT)
-rm -f intel/*.lo
+ -rm -f loongarch/*.$(OBJEXT)
+ -rm -f loongarch/*.lo
-rm -f mips/*.$(OBJEXT)
-rm -f mips/*.lo
-rm -f powerpc/*.$(OBJEXT)
@@ -1188,6 +1250,9 @@
@AMDEP_TRUE@@am__include@ @am__quote@contrib/tools/$(DEPDIR)/pngfix.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@intel/$(DEPDIR)/filter_sse2_intrinsics.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@intel/$(DEPDIR)/intel_init.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@mips/$(DEPDIR)/filter_mmi_inline_assembly.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@mips/$(DEPDIR)/filter_msa_intrinsics.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@mips/$(DEPDIR)/mips_init.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@powerpc/$(DEPDIR)/filter_vsx_intrinsics.Plo@am__quote@ # am--include-marker
@@ -1247,6 +1312,20 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.lo: loongarch/loongarch_lsx_init.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_CFLAGS) $(CFLAGS) -MT loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.lo -MD -MP -MF loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.Tpo -c -o loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.lo `test -f 'loongarch/loongarch_lsx_init.c' || echo '$(srcdir)/'`loongarch/loongarch_lsx_init.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.Tpo loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loongarch/loongarch_lsx_init.c' object='loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_CFLAGS) $(CFLAGS) -c -o loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.lo `test -f 'loongarch/loongarch_lsx_init.c' || echo '$(srcdir)/'`loongarch/loongarch_lsx_init.c
+
+loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.lo: loongarch/filter_lsx_intrinsics.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_CFLAGS) $(CFLAGS) -MT loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.lo -MD -MP -MF loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.Tpo -c -o loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.lo `test -f 'loongarch/filter_lsx_intrinsics.c' || echo '$(srcdir)/'`loongarch/filter_lsx_intrinsics.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.Tpo loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loongarch/filter_lsx_intrinsics.c' object='loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la_CFLAGS) $(CFLAGS) -c -o loongarch/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.lo `test -f 'loongarch/filter_lsx_intrinsics.c' || echo '$(srcdir)/'`loongarch/filter_lsx_intrinsics.c
+
mostlyclean-libtool:
-rm -f *.lo
@@ -1254,6 +1333,7 @@
-rm -rf .libs _libs
-rm -rf arm/.libs arm/_libs
-rm -rf intel/.libs intel/_libs
+ -rm -rf loongarch/.libs loongarch/_libs
-rm -rf mips/.libs mips/_libs
-rm -rf powerpc/.libs powerpc/_libs
@@ -2076,6 +2156,8 @@
-rm -f contrib/tools/$(am__dirstamp)
-rm -f intel/$(DEPDIR)/$(am__dirstamp)
-rm -f intel/$(am__dirstamp)
+ -rm -f loongarch/$(DEPDIR)/$(am__dirstamp)
+ -rm -f loongarch/$(am__dirstamp)
-rm -f mips/$(DEPDIR)/$(am__dirstamp)
-rm -f mips/$(am__dirstamp)
-rm -f powerpc/$(DEPDIR)/$(am__dirstamp)
@@ -2092,7 +2174,8 @@
clean: clean-am
clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
- clean-libLTLIBRARIES clean-libtool mostlyclean-am
+ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
@@ -2126,6 +2209,9 @@
-rm -f contrib/tools/$(DEPDIR)/pngfix.Po
-rm -f intel/$(DEPDIR)/filter_sse2_intrinsics.Plo
-rm -f intel/$(DEPDIR)/intel_init.Plo
+ -rm -f loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.Plo
+ -rm -f loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.Plo
+ -rm -f mips/$(DEPDIR)/filter_mmi_inline_assembly.Plo
-rm -f mips/$(DEPDIR)/filter_msa_intrinsics.Plo
-rm -f mips/$(DEPDIR)/mips_init.Plo
-rm -f powerpc/$(DEPDIR)/filter_vsx_intrinsics.Plo
@@ -2211,6 +2297,9 @@
-rm -f contrib/tools/$(DEPDIR)/pngfix.Po
-rm -f intel/$(DEPDIR)/filter_sse2_intrinsics.Plo
-rm -f intel/$(DEPDIR)/intel_init.Plo
+ -rm -f loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-filter_lsx_intrinsics.Plo
+ -rm -f loongarch/$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@lsx_la-loongarch_lsx_init.Plo
+ -rm -f mips/$(DEPDIR)/filter_mmi_inline_assembly.Plo
-rm -f mips/$(DEPDIR)/filter_msa_intrinsics.Plo
-rm -f mips/$(DEPDIR)/mips_init.Plo
-rm -f powerpc/$(DEPDIR)/filter_vsx_intrinsics.Plo
@@ -2245,18 +2334,18 @@
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \
check-TESTS check-am clean clean-binPROGRAMS \
clean-checkPROGRAMS clean-cscope clean-generic \
- clean-libLTLIBRARIES clean-libtool cscope cscopelist-am ctags \
- ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \
- dist-lzip dist-shar dist-tarZ dist-xz dist-zip dist-zstd \
- distcheck distclean distclean-compile distclean-generic \
- distclean-hdr distclean-libtool distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-binPROGRAMS \
- install-binSCRIPTS install-data install-data-am \
- install-data-hook install-dvi install-dvi-am install-exec \
- install-exec-am install-exec-hook install-html install-html-am \
- install-info install-info-am install-libLTLIBRARIES \
- install-man install-man3 install-man5 \
+ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
+ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+ dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
+ dist-zip dist-zstd distcheck distclean distclean-compile \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-binSCRIPTS install-data \
+ install-data-am install-data-hook install-dvi install-dvi-am \
+ install-exec install-exec-am install-exec-hook install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-man3 install-man5 \
install-nodist_pkgincludeHEADERS install-pdf install-pdf-am \
install-pkgconfigDATA install-pkgincludeHEADERS install-ps \
install-ps-am install-strip installcheck installcheck-am \
diff --git a/config.h.in b/config.h.in
index 3309c9f..e9b5958 100644
--- a/config.h.in
+++ b/config.h.in
@@ -78,6 +78,18 @@
/* Enable Intel SSE optimizations */
#undef PNG_INTEL_SSE_OPT
+/* Enable LOONGARCH LSX optimizations */
+#undef PNG_LOONGARCH_LSX_OPT
+
+/* Turn on MIPS MMI optimizations at run-time */
+#undef PNG_MIPS_MMI_API_SUPPORTED
+
+/* Check for MIPS MMI support at run-time */
+#undef PNG_MIPS_MMI_CHECK_SUPPORTED
+
+/* Enable MIPS MMI optimizations */
+#undef PNG_MIPS_MMI_OPT
+
/* Turn on MIPS MSA optimizations at run-time */
#undef PNG_MIPS_MSA_API_SUPPORTED
diff --git a/configure b/configure
index ca5b8cb..3168cc8 100755
--- a/configure
+++ b/configure
@@ -663,10 +663,14 @@
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+PNG_LOONGARCH_LSX_FALSE
+PNG_LOONGARCH_LSX_TRUE
PNG_POWERPC_VSX_FALSE
PNG_POWERPC_VSX_TRUE
PNG_INTEL_SSE_FALSE
PNG_INTEL_SSE_TRUE
+PNG_MIPS_MMI_FALSE
+PNG_MIPS_MMI_TRUE
PNG_MIPS_MSA_FALSE
PNG_MIPS_MSA_TRUE
PNG_ARM_NEON_FALSE
@@ -853,8 +857,10 @@
enable_hardware_optimizations
enable_arm_neon
enable_mips_msa
+enable_mips_mmi
enable_intel_sse
enable_powerpc_vsx
+enable_loongarch_lsx
'
ac_precious_vars='build_alias
host_alias
@@ -1559,6 +1565,13 @@
call to png_set_option; yes/on: turn on
unconditionally. If not specified: determined by the
compiler.
+ --enable-mips-mmi Enable MIPS MMI optimizations: =no/off, check, api,
+ yes/on: no/off: disable the optimizations; check:
+ use internal checking code (deprecated and poorly
+ supported); api: disable by default, enable by a
+ call to png_set_option; yes/on: turn on
+ unconditionally. If not specified: determined by the
+ compiler.
--enable-intel-sse Enable Intel SSE optimizations: =no/off, yes/on:
no/off: disable the optimizations; yes/on: enable
the optimizations. If not specified: determined by
@@ -1569,6 +1582,11 @@
default, enable by a call to png_set_option yes/on:
turn on unconditionally. If not specified:
determined by the compiler.
+ --enable-loongarch-lsx
+ Enable LOONGARCH LSX optimizations: =no/off, yes/on:
+ no/off: disable the optimizations; yes/on: turn on
+ unconditionally. If not specified: determined by the
+ compiler.
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -14098,6 +14116,10 @@
printf "%s\n" "#define PNG_MIPS_MSA_OPT 0" >>confdefs.h
+ enable_mips_mmi=no
+
+printf "%s\n" "#define PNG_MIPS_MMI_OPT 0" >>confdefs.h
+
enable_powerpc_vsx=no
printf "%s\n" "#define PNG_POWERPC_VSX_OPT 0" >>confdefs.h
@@ -14106,6 +14128,10 @@
printf "%s\n" "#define PNG_INTEL_SSE_OPT 0" >>confdefs.h
+ enable_loongarch_lsx=no
+
+printf "%s\n" "#define PNG_LOONGARCH_LSX_OPT 0" >>confdefs.h
+
;;
*)
# allow enabling hardware optimization on any system:
@@ -14117,8 +14143,12 @@
;;
mipsel*|mips64el*)
+ enable_mips_mmi=yes
enable_mips_msa=yes
+printf "%s\n" "#define PNG_MIPS_MMI_OPT 1" >>confdefs.h
+
+
printf "%s\n" "#define PNG_MIPS_MSA_OPT 2" >>confdefs.h
;;
@@ -14134,6 +14164,12 @@
printf "%s\n" "#define PNG_POWERPC_VSX_OPT 2" >>confdefs.h
;;
+ loongarch*)
+ enable_loongarch_lsx=yes
+
+printf "%s\n" "#define PNG_LOONGARCH_LSX_OPT 1" >>confdefs.h
+
+ ;;
esac
;;
esac
@@ -14253,6 +14289,62 @@
fi
+# MIPS
+# ===
+#
+# MIPS MMI (SIMD) support.
+
+# Check whether --enable-mips-mmi was given.
+if test ${enable_mips_mmi+y}
+then :
+ enableval=$enable_mips_mmi; case "$enableval" in
+ no|off)
+ # disable the default enabling on __mips_mmi systems:
+
+printf "%s\n" "#define PNG_MIPS_MMI_OPT 0" >>confdefs.h
+
+ # Prevent inclusion of the assembler files below:
+ enable_mips_mmi=no;;
+ check)
+
+printf "%s\n" "#define PNG_MIPS_MMI_CHECK_SUPPORTED /**/" >>confdefs.h
+;;
+ api)
+
+printf "%s\n" "#define PNG_MIPS_MMI_API_SUPPORTED /**/" >>confdefs.h
+;;
+ yes|on)
+
+printf "%s\n" "#define PNG_MIPS_MMI_OPT 1" >>confdefs.h
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-mips-mmi: please specify 'check' or 'api', if
+ you want the optimizations unconditionally pass '-mloongson-mmi -march=loongson3a'
+ to the compiler." >&5
+printf "%s\n" "$as_me: WARNING: --enable-mips-mmi: please specify 'check' or 'api', if
+ you want the optimizations unconditionally pass '-mloongson-mmi -march=loongson3a'
+ to the compiler." >&2;};;
+ *)
+ as_fn_error $? "--enable-mips-mmi=${enable_mips_mmi}: invalid value" "$LINENO" 5
+ esac
+fi
+
+
+# Add MIPS specific files to all builds where the host_cpu is mips ('mips*') or
+# where MIPS optimizations were explicitly requested (this allows a fallback if a
+# future host CPU does not match 'mips*')
+
+ if test "$enable_mips_mmi" != 'no' &&
+ case "$host_cpu" in
+ mipsel*|mips64el*) :;;
+ esac; then
+ PNG_MIPS_MMI_TRUE=
+ PNG_MIPS_MMI_FALSE='#'
+else
+ PNG_MIPS_MMI_TRUE='#'
+ PNG_MIPS_MMI_FALSE=
+fi
+
+
# INTEL
# =====
#
@@ -14355,6 +14447,89 @@
fi
+# LOONGARCH
+# ===
+#
+# LOONGARCH LSX (SIMD) support
+
+if test "$LSX_CFLAGS" = ''; then
+ LSX_CFLAGS="-mlsx"
+fi
+
+compiler_support_loongarch_lsx=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use loongarch LSX intrinsics" >&5
+printf %s "checking whether to use loongarch LSX intrinsics... " >&6; }
+save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS $LSX_CFLAGS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include<lsxintrin.h>
+int main(){
+ __m128i a, b, c;
+ a = __lsx_vadd_w(b, c);
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ compiler_support_loongarch_lsx=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+CFLAGS=$save_CFLAGS
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $compiler_support_loongarch_lsx" >&5
+printf "%s\n" "$compiler_support_loongarch_lsx" >&6; }
+
+# Check whether --enable-loongarch-lsx was given.
+if test ${enable_loongarch_lsx+y}
+then :
+ enableval=$enable_loongarch_lsx; case "$enableval" in
+ no|off)
+ # disable the default enabling on __loongarch_simd systems:
+
+printf "%s\n" "#define PNG_LOONGARCH_LSX_OPT 0" >>confdefs.h
+
+ # Prevent inclusion of the assembler files below:
+ enable_loongarch_lsx=no;;
+ yes|on)
+
+printf "%s\n" "#define PNG_LOONGARCH_LSX_OPT 1" >>confdefs.h
+
+ ;;
+ *)
+ as_fn_error $? "--enable-loongarch-lsx=${enable_loongarch_lsx}: invalid value" "$LINENO" 5
+ esac
+fi
+
+
+if test "$enable_loongarch_lsx" != 'no'; then
+ if test $compiler_support_loongarch_lsx = yes; then
+
+printf "%s\n" "#define PNG_LOONGARCH_LSX_OPT 1" >>confdefs.h
+
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Compiler does not support loongarch LSX." >&5
+printf "%s\n" "$as_me: WARNING: Compiler does not support loongarch LSX." >&2;}
+ fi
+fi
+
+# Add LOONGARCH specific files to all builds where the host_cpu is loongarch ('loongarch*') or
+# where LOONGARCH optimizations were explicitly requested (this allows a fallback if a
+# future host CPU does not match 'loongarch*')
+
+ if test "$enable_loongarch_lsx" != 'no' && test $compiler_support_loongarch_lsx = yes &&
+ case "$host_cpu" in
+ loongarch*) :;;
+ *) test "$enable_loongarch_lsx" != '';;
+ esac; then
+ PNG_LOONGARCH_LSX_TRUE=
+ PNG_LOONGARCH_LSX_FALSE='#'
+else
+ PNG_LOONGARCH_LSX_TRUE='#'
+ PNG_LOONGARCH_LSX_FALSE=
+fi
+
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Extra options for compiler: $PNG_COPTS" >&5
printf "%s\n" "$as_me: Extra options for compiler: $PNG_COPTS" >&6;}
@@ -14549,6 +14724,10 @@
as_fn_error $? "conditional \"PNG_MIPS_MSA\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${PNG_MIPS_MMI_TRUE}" && test -z "${PNG_MIPS_MMI_FALSE}"; then
+ as_fn_error $? "conditional \"PNG_MIPS_MMI\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${PNG_INTEL_SSE_TRUE}" && test -z "${PNG_INTEL_SSE_FALSE}"; then
as_fn_error $? "conditional \"PNG_INTEL_SSE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -14557,6 +14736,10 @@
as_fn_error $? "conditional \"PNG_POWERPC_VSX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${PNG_LOONGARCH_LSX_TRUE}" && test -z "${PNG_LOONGARCH_LSX_FALSE}"; then
+ as_fn_error $? "conditional \"PNG_LOONGARCH_LSX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
diff --git a/contrib/mips-mmi/linux.c b/contrib/mips-mmi/linux.c
index 5bb79a6..31525fd 100644
--- a/contrib/mips-mmi/linux.c
+++ b/contrib/mips-mmi/linux.c
@@ -1,12 +1,14 @@
+
/* contrib/mips-mmi/linux.c
*
- * Written by guxiwei 2023
+ * Copyright (c) 2024 Cosmin Truta
+ * Written by guxiwei, 2023
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
* and license in png.h
- *
*/
+
#include <stdint.h>
#include <stdio.h>
#include <string.h>
diff --git a/mips/filter_mmi_inline_assembly.c b/mips/filter_mmi_inline_assembly.c
index 06cb1cc..b330a46 100644
--- a/mips/filter_mmi_inline_assembly.c
+++ b/mips/filter_mmi_inline_assembly.c
@@ -1,6 +1,7 @@
/* filter_mmi_intrinsics.c - MMI optimized filter functions
*
- * Written by zhanglixia and guxiwei
+ * Copyright (c) 2024 Cosmin Truta
+ * Written by zhanglixia and guxiwei, 2023
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
diff --git a/mips/filter_msa_intrinsics.c b/mips/filter_msa_intrinsics.c
index 0dab816..1b734f4 100644
--- a/mips/filter_msa_intrinsics.c
+++ b/mips/filter_msa_intrinsics.c
@@ -1,9 +1,9 @@
/* filter_msa_intrinsics.c - MSA optimised filter functions
*
- * Copyright (c) 2018 Cosmin Truta
+ * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 2016 Glenn Randers-Pehrson
- * Written by Mandar Sahastrabuddhe, August 2016.
+ * Written by Mandar Sahastrabuddhe, August 2016
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
@@ -379,8 +379,8 @@
LD_UB4(pp, 16, src4, src5, src6, src7);
pp += 64;
- ADD4(src0, src4, src1, src5, src2, src6, src3, src7,
- src0, src1, src2, src3);
+ ADD4(src0, src4, src1, src5, src2, src6, src3, src7,
+ src0, src1, src2, src3);
ST_UB4(src0, src1, src2, src3, rp, 16);
rp += 64;
@@ -400,7 +400,7 @@
LD_UB4(pp, 16, src4, src5, src6, src7);
ADD4(src0, src4, src1, src5, src2, src6, src3, src7,
- src0, src1, src2, src3);
+ src0, src1, src2, src3);
ST_UB4(src0, src1, src2, src3, rp, 16);
rp += 64;
@@ -425,7 +425,7 @@
LD_UB2(rp, 16, src0, src1);
LD_UB2(pp, 16, src4, src5);
- ADD2(src0, src4, src1, src5, src0, src1);
+ ADD2(src0, src4, src1, src5, src0, src1);
ST_UB2(src0, src1, rp, 16);
rp += 32;
diff --git a/mips/mips_init.c b/mips/mips_init.c
index 20a9fa8..bb8db07 100644
--- a/mips/mips_init.c
+++ b/mips/mips_init.c
@@ -1,10 +1,10 @@
/* mips_init.c - MSA optimised filter functions
*
- * Copyright (c) 2018 Cosmin Truta
+ * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 2016 Glenn Randers-Pehrson
- * Written by Mandar Sahastrabuddhe, 2016.
- * Update by guxiwei, 2023.
+ * Written by Mandar Sahastrabuddhe, 2016
+ * Updated by guxiwei, 2023
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index a3f8d65..06ecdd6 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -41,6 +41,10 @@
#define PNG_INCH_CONVERSIONS_SUPPORTED
#define PNG_INFO_IMAGE_SUPPORTED
#define PNG_IO_STATE_SUPPORTED
+/*#undef PNG_MIPS_MMI_API_SUPPORTED*/
+/*#undef PNG_MIPS_MMI_CHECK_SUPPORTED*/
+/*#undef PNG_MIPS_MSA_API_SUPPORTED*/
+/*#undef PNG_MIPS_MSA_CHECK_SUPPORTED*/
#define PNG_MNG_FEATURES_SUPPORTED
#define PNG_POINTER_INDEXING_SUPPORTED
/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/