From 0a07f1c2859415406cb940cc9440bfdf0d995c27 Mon Sep 17 00:00:00 2001
From: Luigi Scarso <luigi.scarso@gmail.com>
Date: Fri, 5 Feb 2016 13:40:43 +0000
Subject: [PATCH] sync with experimental

---
 manual/luatex-nodes.tex                       |    5 +-
 manual/luatex.pdf                             |  Bin 1022021 -> 1021735 bytes
 source/build-aux/texinfo.tex                  |  134 +-
 source/libs/README                            |    6 +-
 source/libs/libpng/ChangeLog                  |    5 +
 source/libs/libpng/Makefile.am                |    5 +-
 source/libs/libpng/Makefile.in                |    4 +-
 source/libs/pixman/ChangeLog                  |    6 +
 source/libs/pixman/Makefile.in                |    4 +-
 source/libs/pixman/README                     |    7 +-
 source/libs/pixman/configure                  |   32 +-
 source/libs/pixman/configure.ac               |    6 +-
 .../pixman-0.32.8/pixman/pixman-combine32.c   | 2581 -----------------
 .../ChangeLog                                 |    5 +
 .../TL-Changes                                |    3 +-
 .../patch-01-hide-symbols                     |    6 +-
 .../{pixman-0.32.8 => pixman-src}/AUTHORS     |    0
 .../{pixman-0.32.8 => pixman-src}/COPYING     |    0
 .../{pixman-0.32.8 => pixman-src}/ChangeLog   |    0
 .../{pixman-0.32.8 => pixman-src}/INSTALL     |    0
 .../{pixman-0.32.8 => pixman-src}/Makefile.am |    0
 .../Makefile.win32                            |    0
 .../Makefile.win32.common                     |    0
 .../pixman/{pixman-0.32.8 => pixman-src}/NEWS |    0
 .../{pixman-0.32.8 => pixman-src}/README      |    0
 .../{pixman-0.32.8 => pixman-src}/config.h.in |    6 +-
 .../configure.ac                              |   42 +-
 .../pixman-1-uninstalled.pc.in                |    0
 .../pixman-1.pc.in                            |    0
 .../pixman/Makefile.am                        |    2 +
 .../pixman/Makefile.sources                   |    0
 .../pixman/Makefile.win32                     |    0
 .../pixman/loongson-mmintrin.h                |    0
 .../pixman/pixman-access-accessors.c          |    0
 .../pixman/pixman-access.c                    |    0
 .../pixman/pixman-accessor.h                  |    0
 .../pixman/pixman-src/pixman/pixman-arm-asm.h |   37 +
 .../pixman/pixman-arm-common.h                |   11 +-
 .../pixman/pixman-arm-neon-asm-bilinear.S     |   12 +-
 .../pixman/pixman-arm-neon-asm.S              |   12 +-
 .../pixman/pixman-arm-neon-asm.h              |   20 +-
 .../pixman/pixman-arm-neon.c                  |   24 +-
 .../pixman/pixman-arm-simd-asm-scaled.S       |   11 +-
 .../pixman/pixman-arm-simd-asm.S              |  566 ++++
 .../pixman/pixman-arm-simd-asm.h              |  116 +-
 .../pixman/pixman-arm-simd.c                  |   50 +-
 .../pixman/pixman-arm.c                       |    0
 .../pixman/pixman-bits-image.c                |    0
 .../pixman/pixman-combine-float.c             |  338 ++-
 .../pixman-src/pixman/pixman-combine32.c      | 1189 ++++++++
 .../pixman/pixman-combine32.h                 |    0
 .../pixman/pixman-compiler.h                  |    0
 .../pixman/pixman-conical-gradient.c          |    0
 .../pixman/pixman-edge-accessors.c            |    0
 .../pixman/pixman-edge-imp.h                  |    0
 .../pixman/pixman-edge.c                      |    0
 .../pixman/pixman-fast-path.c                 |    2 +
 .../pixman/pixman-filter.c                    |    0
 .../pixman/pixman-general.c                   |   31 +-
 .../pixman/pixman-glyph.c                     |    0
 .../pixman/pixman-gradient-walker.c           |    2 +-
 .../pixman/pixman-image.c                     |    0
 .../pixman/pixman-implementation.c            |   16 +
 .../pixman/pixman-inlines.h                   |    3 +-
 .../pixman/pixman-linear-gradient.c           |    0
 .../pixman/pixman-matrix.c                    |    0
 .../pixman/pixman-mips-dspr2-asm.S            |    2 +-
 .../pixman/pixman-mips-dspr2-asm.h            |    4 +-
 .../pixman/pixman-mips-dspr2.c                |   10 +-
 .../pixman/pixman-mips-dspr2.h                |    8 +-
 .../pixman/pixman-mips-memcpy-asm.S           |    0
 .../pixman/pixman-mips.c                      |    0
 .../pixman/pixman-mmx.c                       |  126 +-
 .../pixman/pixman-noop.c                      |    0
 .../pixman/pixman-ppc.c                       |    0
 .../pixman/pixman-private.h                   |    6 +-
 .../pixman/pixman-radial-gradient.c           |    0
 .../pixman/pixman-region.c                    |    0
 .../pixman/pixman-region16.c                  |    0
 .../pixman/pixman-region32.c                  |    0
 .../pixman/pixman-solid-fill.c                |    0
 .../pixman/pixman-sse2.c                      |   24 +-
 .../pixman/pixman-ssse3.c                     |    0
 .../pixman/pixman-timer.c                     |    0
 .../pixman/pixman-trap.c                      |    0
 .../pixman/pixman-utils.c                     |    0
 .../pixman/pixman-version.h.in                |    0
 .../pixman/pixman-vmx.c                       | 1229 +++++++-
 .../pixman/pixman-x86.c                       |    0
 .../pixman/pixman.c                           |   35 +-
 .../pixman/pixman.h                           |    0
 .../pixman/solaris-hwcap.mapfile              |    0
 source/libs/pixman/version.ac                 |    2 +-
 source/texk/README                            |    6 +-
 source/texk/kpathsea/ChangeLog                |    5 +
 source/texk/kpathsea/mingw32.c                |    6 +
 source/texk/kpathsea/mingw32.h                |    3 +-
 source/texk/kpathsea/win32lib.c               |    5 +
 source/texk/kpathsea/win32lib.h               |    1 +
 source/texk/web2c/cwebdir/README              |   12 +-
 source/texk/web2c/cwebdir/cwebmac.tex         |   15 +-
 source/texk/web2c/lib/ChangeLog               |    4 +
 source/texk/web2c/lib/texmfmp.c               |   14 +-
 source/texk/web2c/luatexdir/lang/texlang.w    |    6 +-
 source/texk/web2c/luatexdir/lua/lpdflib.c     |   12 +-
 source/texk/web2c/luatexdir/luatex.c          |    2 +-
 source/texk/web2c/luatexdir/pdf/pdfgen.w      |   51 +-
 source/texk/web2c/luatexdir/pdf/pdfpage.w     |   16 +-
 source/texk/web2c/luatexdir/pdf/pdfrule.w     |    4 +-
 source/texk/web2c/luatexdir/pdf/pdftypes.h    |   18 +-
 source/texk/web2c/luatexdir/tex/commands.h    |    3 -
 source/texk/web2c/luatexdir/tex/commands.w    |    2 +-
 source/texk/web2c/luatexdir/tex/linebreak.w   |    7 +-
 source/texk/web2c/luatexdir/tex/maincontrol.w |   11 +-
 source/texk/web2c/luatexdir/tex/mlist.w       |    2 +-
 .../texk/web2c/luatexdir/tex/postlinebreak.w  |    6 +-
 source/texk/web2c/luatexdir/tex/printing.w    |   10 +-
 source/texk/web2c/luatexdir/tex/texnodes.h    |    9 +-
 source/texk/web2c/luatexdir/tex/texnodes.w    |    4 +-
 source/texk/web2c/luatexdir/tex/textoken.w    |   34 +-
 120 files changed, 3891 insertions(+), 3122 deletions(-)
 delete mode 100755 source/libs/pixman/pixman-0.32.8/pixman/pixman-combine32.c
 rename source/libs/pixman/{pixman-0.32.8-PATCHES => pixman-src-PATCHES}/ChangeLog (87%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8-PATCHES => pixman-src-PATCHES}/TL-Changes (77%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8-PATCHES => pixman-src-PATCHES}/patch-01-hide-symbols (55%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/AUTHORS (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/COPYING (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/ChangeLog (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/INSTALL (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/Makefile.am (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/Makefile.win32 (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/Makefile.win32.common (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/NEWS (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/README (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/config.h.in (96%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/configure.ac (97%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman-1-uninstalled.pc.in (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman-1.pc.in (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/Makefile.am (98%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/Makefile.sources (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/Makefile.win32 (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/loongson-mmintrin.h (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-access-accessors.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-access.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-accessor.h (100%)
 mode change 100755 => 100644
 create mode 100644 source/libs/pixman/pixman-src/pixman/pixman-arm-asm.h
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-common.h (97%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-neon-asm-bilinear.S (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-neon-asm.S (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-neon-asm.h (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-neon.c (96%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-simd-asm-scaled.S (95%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-simd-asm.S (53%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-simd-asm.h (90%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm-simd.c (79%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-arm.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-bits-image.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-combine-float.c (80%)
 mode change 100755 => 100644
 create mode 100644 source/libs/pixman/pixman-src/pixman/pixman-combine32.c
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-combine32.h (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-compiler.h (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-conical-gradient.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-edge-accessors.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-edge-imp.h (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-edge.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-fast-path.c (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-filter.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-general.c (91%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-glyph.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-gradient-walker.c (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-image.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-implementation.c (96%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-inlines.h (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-linear-gradient.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-matrix.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-mips-dspr2-asm.S (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-mips-dspr2-asm.h (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-mips-dspr2.c (98%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-mips-dspr2.h (98%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-mips-memcpy-asm.S (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-mips.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-mmx.c (96%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-noop.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-ppc.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-private.h (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-radial-gradient.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-region.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-region16.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-region32.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-solid-fill.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-sse2.c (99%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-ssse3.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-timer.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-trap.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-utils.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-version.h.in (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-vmx.c (61%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman-x86.c (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman.c (97%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/pixman.h (100%)
 mode change 100755 => 100644
 rename source/libs/pixman/{pixman-0.32.8 => pixman-src}/pixman/solaris-hwcap.mapfile (100%)
 mode change 100755 => 100644

diff --git a/manual/luatex-nodes.tex b/manual/luatex-nodes.tex
index ad0a74b30..8ffa9507b 100644
--- a/manual/luatex-nodes.tex
+++ b/manual/luatex-nodes.tex
@@ -384,8 +384,9 @@ Id: \showid{kern}
 \starttabulate[|lT|l|p|]
 \NC \ssbf field \NC \bf type        \NC \bf explanation \NC \NR
 \NC subtype     \NC number          \NC \type {0} = from font,
-                                        \type {1} = from \type {\kern} or \type {\/},
-                                        \type {2} = from \type {\accent} \NC \NR
+                                        \type {1} = from \type {\kern},
+                                        \type {2} = from \type {\accent},
+                                        \type {3} = from \type {\/} \NC \NR
 \NC attr        \NC \syntax{<node>} \NC \NC \NR
 \NC kern        \NC number          \NC \NC \NR
 \stoptabulate
diff --git a/manual/luatex.pdf b/manual/luatex.pdf
index 7a28cb730606ef5fc396299d5a666b1dd6b6e250..ce176f03154b6ba6af4ccaa60a3c5d7259856eaa 100644
GIT binary patch
delta 86995
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

delta 87222
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
E0JseN9smFU

diff --git a/source/build-aux/texinfo.tex b/source/build-aux/texinfo.tex
index 936c32dc5..58021b2c1 100644
--- a/source/build-aux/texinfo.tex
+++ b/source/build-aux/texinfo.tex
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2016-01-11.19}
+\def\texinfoversion{2016-02-02.07}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -4737,11 +4737,10 @@ end
   \def\_{\normalunderscore}%
   \def\-{}% @- shouldn't affect sorting
   %
-  \def\lbracechar{{\indexlbrace}}%
-  \def\rbracechar{{\indexrbrace}}%
-  \let\{=\lbracechar
-  \let\}=\rbracechar
-  %
+  \uccode`\1=`\{ \uppercase{\def\{{1}}%
+  \uccode`\1=`\} \uppercase{\def\}{1}}%
+  \let\lbracechar\{%
+  \let\rbracechar\}%
   %
   % Non-English letters.
   \def\AA{AA}%
@@ -4901,9 +4900,15 @@ end
   \indexdummies % Must do this here, since \bf, etc expand at this stage
   \useindexbackslash % \indexbackslash isn't defined now so it will be output 
                      % as is; and it will print as backslash.
+  % The braces around \indexbrace are recognized by texindex.
+  %
   % Get the string to sort by, by processing the index entry with all
   % font commands turned off.
   {\indexnofonts
+   \def\lbracechar{{\indexlbrace}}%
+   \def\rbracechar{{\indexrbrace}}%
+   \let\{=\lbracechar
+   \let\}=\rbracechar
    \indexnonalnumdisappear
    \xdef\indexsortkey{}%
    \let\sortas=\indexwritesortas
@@ -8526,10 +8531,6 @@ end
     }%
     \setcolor{\linkcolor}%
   \fi
-  %
-  % Float references are printed completely differently: "Figure 1.2"
-  % instead of "[somenode], p.3".  We distinguish them by the
-  % LABEL-title being set to a magic string.
   {%
     % Have to otherify everything special to allow the \csname to
     % include an _ in the xref name, etc.
@@ -8538,6 +8539,10 @@ end
     \expandafter\global\expandafter\let\expandafter\Xthisreftitle
       \csname XR#1-title\endcsname
   }%
+  %
+  % Float references are printed completely differently: "Figure 1.2"
+  % instead of "[somenode], p.3".  \iffloat distinguishes them by
+  % \Xthisreftitle being set to a magic string.
   \iffloat\Xthisreftitle
     % If the user specified the print name (third arg) to the ref,
     % print it instead of our usual "Figure 1.2".
@@ -8596,12 +8601,9 @@ end
       %
       % output the `page 3'.
       \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
-           \ifx,\tokenafterxref
-      \else\ifx.\tokenafterxref
-      \else\ifx;\tokenafterxref
-      \else\ifx)\tokenafterxref
-      \else,% add a , if xref not followed by punctuation
-      \fi\fi\fi\fi
+      \if\noexpand\tokenafterxref\space
+        ,% add a , if xref not followed by punctuation
+      \fi
     \fi\fi
   \fi
   \endlink
@@ -9948,7 +9950,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{00AD}{\-}
   \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
   \DeclareUnicodeCharacter{00AF}{\={ }}
-
+  %
   \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
   \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}
   \DeclareUnicodeCharacter{00B2}{$^2$}
@@ -9965,7 +9967,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{00BD}{$1\over2$}
   \DeclareUnicodeCharacter{00BE}{$3\over4$}
   \DeclareUnicodeCharacter{00BF}{\questiondown}
-
+  %
   \DeclareUnicodeCharacter{00C0}{\`A}
   \DeclareUnicodeCharacter{00C1}{\'A}
   \DeclareUnicodeCharacter{00C2}{\^A}
@@ -9982,7 +9984,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{00CD}{\'I}
   \DeclareUnicodeCharacter{00CE}{\^I}
   \DeclareUnicodeCharacter{00CF}{\"I}
-
+  %
   \DeclareUnicodeCharacter{00D0}{\DH}
   \DeclareUnicodeCharacter{00D1}{\~N}
   \DeclareUnicodeCharacter{00D2}{\`O}
@@ -9999,7 +10001,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{00DD}{\'Y}
   \DeclareUnicodeCharacter{00DE}{\TH}
   \DeclareUnicodeCharacter{00DF}{\ss}
-
+  %
   \DeclareUnicodeCharacter{00E0}{\`a}
   \DeclareUnicodeCharacter{00E1}{\'a}
   \DeclareUnicodeCharacter{00E2}{\^a}
@@ -10016,7 +10018,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
   \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
   \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
-
+  %
   \DeclareUnicodeCharacter{00F0}{\dh}
   \DeclareUnicodeCharacter{00F1}{\~n}
   \DeclareUnicodeCharacter{00F2}{\`o}
@@ -10033,7 +10035,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{00FD}{\'y}
   \DeclareUnicodeCharacter{00FE}{\th}
   \DeclareUnicodeCharacter{00FF}{\"y}
-
+  %
   \DeclareUnicodeCharacter{0100}{\=A}
   \DeclareUnicodeCharacter{0101}{\=a}
   \DeclareUnicodeCharacter{0102}{\u{A}}
@@ -10050,7 +10052,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{010D}{\v{c}}
   \DeclareUnicodeCharacter{010E}{\v{D}}
   \DeclareUnicodeCharacter{010F}{d'}
-
+  %
   \DeclareUnicodeCharacter{0110}{\DH}
   \DeclareUnicodeCharacter{0111}{\dh}
   \DeclareUnicodeCharacter{0112}{\=E}
@@ -10067,7 +10069,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{011D}{\^g}
   \DeclareUnicodeCharacter{011E}{\u{G}}
   \DeclareUnicodeCharacter{011F}{\u{g}}
-
+  %
   \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
   \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
   \DeclareUnicodeCharacter{0122}{\cedilla{G}}
@@ -10084,7 +10086,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
   \DeclareUnicodeCharacter{012E}{\ogonek{I}}
   \DeclareUnicodeCharacter{012F}{\ogonek{i}}
-
+  %
   \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
   \DeclareUnicodeCharacter{0131}{\dotless{i}}
   \DeclareUnicodeCharacter{0132}{IJ}
@@ -10101,7 +10103,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{013D}{L'}% should kern
   \DeclareUnicodeCharacter{013E}{l'}% should kern
   \DeclareUnicodeCharacter{013F}{L\U{00B7}}
-
+  %
   \DeclareUnicodeCharacter{0140}{l\U{00B7}}
   \DeclareUnicodeCharacter{0141}{\L}
   \DeclareUnicodeCharacter{0142}{\l}
@@ -10118,7 +10120,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{014D}{\=o}
   \DeclareUnicodeCharacter{014E}{\u{O}}
   \DeclareUnicodeCharacter{014F}{\u{o}}
-
+  %
   \DeclareUnicodeCharacter{0150}{\H{O}}
   \DeclareUnicodeCharacter{0151}{\H{o}}
   \DeclareUnicodeCharacter{0152}{\OE}
@@ -10135,7 +10137,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{015D}{\^s}
   \DeclareUnicodeCharacter{015E}{\cedilla{S}}
   \DeclareUnicodeCharacter{015F}{\cedilla{s}}
-
+  %
   \DeclareUnicodeCharacter{0160}{\v{S}}
   \DeclareUnicodeCharacter{0161}{\v{s}}
   \DeclareUnicodeCharacter{0162}{\cedilla{T}}
@@ -10152,7 +10154,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{016D}{\u{u}}
   \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
   \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
-
+  %
   \DeclareUnicodeCharacter{0170}{\H{U}}
   \DeclareUnicodeCharacter{0171}{\H{u}}
   \DeclareUnicodeCharacter{0172}{\ogonek{U}}
@@ -10169,7 +10171,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{017D}{\v{Z}}
   \DeclareUnicodeCharacter{017E}{\v{z}}
   \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}
-
+  %
   \DeclareUnicodeCharacter{01C4}{D\v{Z}}
   \DeclareUnicodeCharacter{01C5}{D\v{z}}
   \DeclareUnicodeCharacter{01C6}{d\v{z}}
@@ -10182,20 +10184,20 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{01CD}{\v{A}}
   \DeclareUnicodeCharacter{01CE}{\v{a}}
   \DeclareUnicodeCharacter{01CF}{\v{I}}
-
+  %
   \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
   \DeclareUnicodeCharacter{01D1}{\v{O}}
   \DeclareUnicodeCharacter{01D2}{\v{o}}
   \DeclareUnicodeCharacter{01D3}{\v{U}}
   \DeclareUnicodeCharacter{01D4}{\v{u}}
-
+  %
   \DeclareUnicodeCharacter{01E2}{\={\AE}}
   \DeclareUnicodeCharacter{01E3}{\={\ae}}
   \DeclareUnicodeCharacter{01E6}{\v{G}}
   \DeclareUnicodeCharacter{01E7}{\v{g}}
   \DeclareUnicodeCharacter{01E8}{\v{K}}
   \DeclareUnicodeCharacter{01E9}{\v{k}}
-
+  %
   \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
   \DeclareUnicodeCharacter{01F1}{DZ}
   \DeclareUnicodeCharacter{01F2}{Dz}
@@ -10208,23 +10210,23 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{01FD}{\'{\ae}}
   \DeclareUnicodeCharacter{01FE}{\'{\O}}
   \DeclareUnicodeCharacter{01FF}{\'{\o}}
-
+  %
   \DeclareUnicodeCharacter{021E}{\v{H}}
   \DeclareUnicodeCharacter{021F}{\v{h}}
-
+  %
   \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
   \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
   \DeclareUnicodeCharacter{0228}{\cedilla{E}}
   \DeclareUnicodeCharacter{0229}{\cedilla{e}}
   \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
   \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
-
+  %
   \DeclareUnicodeCharacter{0232}{\=Y}
   \DeclareUnicodeCharacter{0233}{\=y}
   \DeclareUnicodeCharacter{0237}{\dotless{j}}
-
+  %
   \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
-
+  %
   % Greek letters upper case
   \DeclareUnicodeCharacter{0391}{{\it A}}
   \DeclareUnicodeCharacter{0392}{{\it B}}
@@ -10251,7 +10253,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{03A7}{{\it X}}
   \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}
   \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}
-
+  %
   % Vowels with accents
   \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}
   \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}
@@ -10259,10 +10261,10 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}
   \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}
   \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}
-
+  %
   % Standalone accent
   \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}
-
+  %
   % Greek letters lower case
   \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}
   \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}
@@ -10289,19 +10291,19 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}
   \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}
   \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}
-
+  %
   % More Greek vowels with accents
   \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}
   \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}
   \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}
   \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}
   \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}
-
+  %
   % Variant Greek letters
   \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}
   \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}
   \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}
-
+  %
   \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
   \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
   \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
@@ -10314,10 +10316,10 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
   \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
   \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
-
+  %
   \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
   \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
-
+  %
   \DeclareUnicodeCharacter{1E20}{\=G}
   \DeclareUnicodeCharacter{1E21}{\=g}
   \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
@@ -10326,7 +10328,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
   \DeclareUnicodeCharacter{1E26}{\"H}
   \DeclareUnicodeCharacter{1E27}{\"h}
-
+  %
   \DeclareUnicodeCharacter{1E30}{\'K}
   \DeclareUnicodeCharacter{1E31}{\'k}
   \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
@@ -10339,7 +10341,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
   \DeclareUnicodeCharacter{1E3E}{\'M}
   \DeclareUnicodeCharacter{1E3F}{\'m}
-
+  %
   \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
   \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
   \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
@@ -10350,7 +10352,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
   \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
   \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
-
+  %
   \DeclareUnicodeCharacter{1E54}{\'P}
   \DeclareUnicodeCharacter{1E55}{\'p}
   \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
@@ -10361,7 +10363,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
   \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
   \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
-
+  %
   \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
   \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
   \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
@@ -10372,12 +10374,12 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
   \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
   \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
-
+  %
   \DeclareUnicodeCharacter{1E7C}{\~V}
   \DeclareUnicodeCharacter{1E7D}{\~v}
   \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
   \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
-
+  %
   \DeclareUnicodeCharacter{1E80}{\`W}
   \DeclareUnicodeCharacter{1E81}{\`w}
   \DeclareUnicodeCharacter{1E82}{\'W}
@@ -10394,7 +10396,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E8D}{\"x}
   \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
   \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
-
+  %
   \DeclareUnicodeCharacter{1E90}{\^Z}
   \DeclareUnicodeCharacter{1E91}{\^z}
   \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
@@ -10405,30 +10407,30 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{1E97}{\"t}
   \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
   \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
-
+  %
   \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
   \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
-
+  %
   \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
   \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
   \DeclareUnicodeCharacter{1EBC}{\~E}
   \DeclareUnicodeCharacter{1EBD}{\~e}
-
+  %
   \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
   \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
   \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
   \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
-
+  %
   \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
   \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
-
+  %
   \DeclareUnicodeCharacter{1EF2}{\`Y}
   \DeclareUnicodeCharacter{1EF3}{\`y}
   \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
-
+  %
   \DeclareUnicodeCharacter{1EF8}{\~Y}
   \DeclareUnicodeCharacter{1EF9}{\~y}
-
+  %
   % Punctuation
   \DeclareUnicodeCharacter{2013}{--}
   \DeclareUnicodeCharacter{2014}{---}
@@ -10445,12 +10447,12 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{2026}{\dots}
   \DeclareUnicodeCharacter{2039}{\guilsinglleft}
   \DeclareUnicodeCharacter{203A}{\guilsinglright}
-
+  %
   \DeclareUnicodeCharacter{20AC}{\euro}
-
+  %
   \DeclareUnicodeCharacter{2192}{\expansion}
   \DeclareUnicodeCharacter{21D2}{\result}
-
+  %
   % Mathematical symbols
   \DeclareUnicodeCharacter{2200}{\ensuremath\forall}
   \DeclareUnicodeCharacter{2203}{\ensuremath\exists}
@@ -10466,7 +10468,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{2265}{\ensuremath\geq}
   \DeclareUnicodeCharacter{2282}{\ensuremath\subset}
   \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}
-
+  %
   \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}
   \DeclareUnicodeCharacter{2032}{\ensuremath\prime}
   \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}
@@ -10566,7 +10568,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}
   \DeclareUnicodeCharacter{2322}{\ensuremath\frown}
   \DeclareUnicodeCharacter{2323}{\ensuremath\smile}
-
+  %
   \DeclareUnicodeCharacter{25A1}{\ensuremath\Box}
   \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}
   \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}
@@ -10598,7 +10600,7 @@ callback.register("process_output_buffer", convert_line_out)
   \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}
   \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}
   \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}
-
+  %
   \global\mathchardef\checkmark="1370 % actually the square root sign
   \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}
 }% end of \utfeightchardefs
diff --git a/source/libs/README b/source/libs/README
index f44914f56..bf39eca37 100644
--- a/source/libs/README
+++ b/source/libs/README
@@ -1,4 +1,4 @@
-$Id: README 39398 2016-01-15 23:53:35Z kakuto $
+$Id: README 39575 2016-02-04 08:42:42Z kakuto $
 Public domain.  Originally created by Karl Berry, 2005.
 
 Libraries we compile for TeX Live.
@@ -21,7 +21,7 @@ gd 2.1.1 - checked 14jan15
 gmp 6.1.0 - checked 28dec15
   http://ftp.gnu.org/gnu/gmp/
 
-graphite2 1.3.3 - checked 27sep15
+graphite2 1.3.5 - checked 20jan16
   http://sourceforge.net/projects/silgraphite/files/graphite2/
 
 harfbuzz 1.1.3 - checked 12jan16
@@ -46,7 +46,7 @@ luajit 2.1.0-beta1 - checked 7sep15
 mpfr 3.1.3 - checked 20jun15
   http://ftp.gnu.org/gnu/mpfr/
 
-pixman 0.32.8 - checked 27sep15
+pixman 0.34.0 - checked 04feb16
   http://cairographics.org/releases/
 
 poppler 0.40.0 - checked 14jan16
diff --git a/source/libs/libpng/ChangeLog b/source/libs/libpng/ChangeLog
index 466208698..a2d86e82d 100644
--- a/source/libs/libpng/ChangeLog
+++ b/source/libs/libpng/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-20  Karl Berry  <karl@tug.org>
+
+	* Makefile.am (AM_CPPFLAGS): add LIBPNG_USER_CPPFLAGS for Mojca.
+	http://tug.org/pipermail/tlbuild/2016q1/003327.html
+
 2016-01-15 Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
 
 	Import libpng-1.6.21.
diff --git a/source/libs/libpng/Makefile.am b/source/libs/libpng/Makefile.am
index 6bb6c1726..805a6977d 100644
--- a/source/libs/libpng/Makefile.am
+++ b/source/libs/libpng/Makefile.am
@@ -1,6 +1,6 @@
 ## Proxy Makefile.am to build libpng for TeX Live.
 ##
-##   Copyright (C) 2009-2015 Peter Breitenlohner <tex-live@tug.org>
+##   Copyright (C) 2009-2016 Peter Breitenlohner <tex-live@tug.org>
 ##
 ##   This file is free software; the copyright holder
 ##   gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,8 @@ NEVER_NAMES += $(NEVER_NAMES_SUB)
 
 SUBDIRS = . include
 
-AM_CPPFLAGS = -I$(top_srcdir)/$(LIBPNG_TREE) $(ZLIB_INCLUDES) $(LIBPNG_DEFINES)
+AM_CPPFLAGS = -I$(top_srcdir)/$(LIBPNG_TREE) $(ZLIB_INCLUDES) \
+              $(LIBPNG_DEFINES) $(LIBPNG_USER_CPPFLAGS)
 AM_CFLAGS = $(VISIBILITY_CFLAGS) $(WARNING_CFLAGS)
 
 noinst_LIBRARIES=libpng.a
diff --git a/source/libs/libpng/Makefile.in b/source/libs/libpng/Makefile.in
index cc01ba72a..7d66dedf2 100644
--- a/source/libs/libpng/Makefile.in
+++ b/source/libs/libpng/Makefile.in
@@ -569,7 +569,9 @@ NEVER_NAMES = -name .svn $(NEVER_NAMES_SUB)
 NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'
 NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
 SUBDIRS = . include
-AM_CPPFLAGS = -I$(top_srcdir)/$(LIBPNG_TREE) $(ZLIB_INCLUDES) $(LIBPNG_DEFINES)
+AM_CPPFLAGS = -I$(top_srcdir)/$(LIBPNG_TREE) $(ZLIB_INCLUDES) \
+              $(LIBPNG_DEFINES) $(LIBPNG_USER_CPPFLAGS)
+
 AM_CFLAGS = $(VISIBILITY_CFLAGS) $(WARNING_CFLAGS)
 noinst_LIBRARIES = libpng.a
 nodist_libpng_a_SOURCES = \
diff --git a/source/libs/pixman/ChangeLog b/source/libs/pixman/ChangeLog
index c4c881f57..40bddee16 100644
--- a/source/libs/pixman/ChangeLog
+++ b/source/libs/pixman/ChangeLog
@@ -1,3 +1,9 @@
+2016-02-04  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
+
+	Import pixman-0.34.0.
+	* version.ac: Adapted.
+	* configure.ac: New source tree convension.
+
 2015-09-26  Peter Breitenlohner  <peb@mppmu.mpg.de>
 
 	Import pixman-0.32.8.
diff --git a/source/libs/pixman/Makefile.in b/source/libs/pixman/Makefile.in
index b1ba8a5df..b0a5a6564 100644
--- a/source/libs/pixman/Makefile.in
+++ b/source/libs/pixman/Makefile.in
@@ -440,7 +440,7 @@ am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
 	$(top_srcdir)/../../build-aux/install-sh \
 	$(top_srcdir)/../../build-aux/missing \
 	$(top_srcdir)/../../build-aux/test-driver \
-	$(top_srcdir)/pixman-0.32.8/pixman/pixman-version.h.in \
+	$(top_srcdir)/pixman-src/pixman/pixman-version.h.in \
 	../../build-aux/compile ../../build-aux/config.guess \
 	../../build-aux/config.sub ../../build-aux/depcomp \
 	../../build-aux/install-sh ../../build-aux/ltmain.sh \
@@ -702,7 +702,7 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 
 distclean-hdr:
 	-rm -f config.h stamp-h1
-pixman-version.h: $(top_builddir)/config.status $(top_srcdir)/pixman-0.32.8/pixman/pixman-version.h.in
+pixman-version.h: $(top_builddir)/config.status $(top_srcdir)/pixman-src/pixman/pixman-version.h.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
 
 clean-noinstLIBRARIES:
diff --git a/source/libs/pixman/README b/source/libs/pixman/README
index 99988a75e..7fb53afe2 100644
--- a/source/libs/pixman/README
+++ b/source/libs/pixman/README
@@ -1,14 +1,15 @@
-	Building pixman-0.28.0 as part of the TL tree
+	Building pixman-0.34.0 as part of the TL tree
 	=============================================
 
 This directory libs/pixman/ uses a proxy Makefile.am to build the pixman
 library 'libpixman' from the unmodified source tree in
-libs/pixman/pixman-x.y.z/, bypassing the original build system.
+libs/pixman/pixman-src/, bypassing the original build system.
 
-As far as applicable, the tests in libs/pixman/pixman-x.y.z/configure have
+As far as applicable, the tests in libs/pixman/pixman-src/configure have
 been translated into equivalent test in libs/pixman/configure.ac.
 
 =============================
 
 2012-11-10	Taco Hoekwater <taco@metatex.org>
 2012-11-15	Peter Breitenlohner <peb@mppmu.mpg.de>
+2016-02-04	Akira Kakuto <kakuto@fuk.kindai.ac.jp>
diff --git a/source/libs/pixman/configure b/source/libs/pixman/configure
index 57e14f3dc..92f9ad086 100755
--- a/source/libs/pixman/configure
+++ b/source/libs/pixman/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pixman (TeX Live) 0.32.8.
+# Generated by GNU Autoconf 2.69 for pixman (TeX Live) 0.34.0.
 #
 # Report bugs to <tex-k@tug.org>.
 #
@@ -580,12 +580,12 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='pixman (TeX Live)'
 PACKAGE_TARNAME='pixman--tex-live-'
-PACKAGE_VERSION='0.32.8'
-PACKAGE_STRING='pixman (TeX Live) 0.32.8'
+PACKAGE_VERSION='0.34.0'
+PACKAGE_STRING='pixman (TeX Live) 0.34.0'
 PACKAGE_BUGREPORT='tex-k@tug.org'
 PACKAGE_URL=''
 
-ac_unique_file="pixman-0.32.8/pixman/pixman.h"
+ac_unique_file="pixman-src/pixman/pixman.h"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
@@ -1281,7 +1281,7 @@ if test "$ac_init_help" = "long"; then
   # 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.
   cat <<_ACEOF
-\`configure' configures pixman (TeX Live) 0.32.8 to adapt to many kinds of systems.
+\`configure' configures pixman (TeX Live) 0.34.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1348,7 +1348,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of pixman (TeX Live) 0.32.8:";;
+     short | recursive ) echo "Configuration of pixman (TeX Live) 0.34.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1445,7 +1445,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-pixman (TeX Live) configure 0.32.8
+pixman (TeX Live) configure 0.34.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1952,7 +1952,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by pixman (TeX Live) $as_me 0.32.8, which was
+It was created by pixman (TeX Live) $as_me 0.34.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3875,7 +3875,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='pixman--tex-live-'
- VERSION='0.32.8'
+ VERSION='0.34.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4077,8 +4077,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags
 
 
 PIXMAN_VERSION_MAJOR=0
-PIXMAN_VERSION_MINOR=32
-PIXMAN_VERSION_MICRO=8
+PIXMAN_VERSION_MINOR=34
+PIXMAN_VERSION_MICRO=0
 
 test_CFLAGS=${CFLAGS+set} # We may override autoconf default CFLAGS.
 
@@ -6032,14 +6032,14 @@ rm -f core conftest.err conftest.$ac_objext \
 $as_echo "$_yesno" >&6; }
 
 
-PIXMAN_TREE=pixman-0.32.8
+PIXMAN_TREE=pixman-src
 
 
 if test -f $srcdir/$PIXMAN_TREE/pixman/pixman-version.h; then
   as_fn_error $? "Sorry, you must remove the file $PIXMAN_TREE/pixman/pixman-version.h" "$LINENO" 5
 fi
 
-ac_config_files="$ac_config_files Makefile include/Makefile pixman-version.h:pixman-0.32.8/pixman/pixman-version.h.in"
+ac_config_files="$ac_config_files Makefile include/Makefile pixman-version.h:pixman-src/pixman/pixman-version.h.in"
 
 
 cat >confcache <<\_ACEOF
@@ -6585,7 +6585,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by pixman (TeX Live) $as_me 0.32.8, which was
+This file was extended by pixman (TeX Live) $as_me 0.34.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6651,7 +6651,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-pixman (TeX Live) config.status 0.32.8
+pixman (TeX Live) config.status 0.34.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -6784,7 +6784,7 @@ do
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-    "pixman-version.h") CONFIG_FILES="$CONFIG_FILES pixman-version.h:pixman-0.32.8/pixman/pixman-version.h.in" ;;
+    "pixman-version.h") CONFIG_FILES="$CONFIG_FILES pixman-version.h:pixman-src/pixman/pixman-version.h.in" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
diff --git a/source/libs/pixman/configure.ac b/source/libs/pixman/configure.ac
index 7291f5045..5100a54a8 100644
--- a/source/libs/pixman/configure.ac
+++ b/source/libs/pixman/configure.ac
@@ -9,7 +9,7 @@ dnl
 m4_include([version.ac])[] dnl define pixman_version
 AC_INIT([pixman (TeX Live)], pixman_version, [tex-k@tug.org])
 AC_PREREQ([2.65])
-AC_CONFIG_SRCDIR([pixman-]pixman_version[/pixman/pixman.h])
+AC_CONFIG_SRCDIR([pixman-src/pixman/pixman.h])
 AC_CONFIG_AUX_DIR([../../build-aux])
 AC_CONFIG_MACRO_DIR([../../m4])
 
@@ -151,7 +151,7 @@ fi
 PIXMAN_CHECK_CFLAG([-Wall])
 PIXMAN_CHECK_CFLAG([-fno-strict-aliasing])
 
-AC_SUBST([PIXMAN_TREE], [pixman-]pixman_version)
+AC_SUBST([PIXMAN_TREE], [pixman-src])
 
 if test -f $srcdir/$PIXMAN_TREE/pixman/pixman-version.h; then
   AC_MSG_ERROR([Sorry, you must remove the file $PIXMAN_TREE/pixman/pixman-version.h])
@@ -159,6 +159,6 @@ fi
 
 AC_CONFIG_FILES([Makefile
 		 include/Makefile
-	         pixman-version.h:pixman-]pixman_version[/pixman/pixman-version.h.in])
+	         pixman-version.h:pixman-src/pixman/pixman-version.h.in])
 
 AC_OUTPUT
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-combine32.c b/source/libs/pixman/pixman-0.32.8/pixman/pixman-combine32.c
deleted file mode 100755
index 450114a52..000000000
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-combine32.c
+++ /dev/null
@@ -1,2581 +0,0 @@
-/*
- * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
- *             2005 Lars Knoll & Zack Rusin, Trolltech
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
- * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <math.h>
-#include <string.h>
-
-#include "pixman-private.h"
-#include "pixman-combine32.h"
-
-/* component alpha helper functions */
-
-static void
-combine_mask_ca (uint32_t *src, uint32_t *mask)
-{
-    uint32_t a = *mask;
-
-    uint32_t x;
-    uint16_t xa;
-
-    if (!a)
-    {
-	*(src) = 0;
-	return;
-    }
-
-    x = *(src);
-    if (a == ~0)
-    {
-	x = x >> A_SHIFT;
-	x |= x << G_SHIFT;
-	x |= x << R_SHIFT;
-	*(mask) = x;
-	return;
-    }
-
-    xa = x >> A_SHIFT;
-    UN8x4_MUL_UN8x4 (x, a);
-    *(src) = x;
-    
-    UN8x4_MUL_UN8 (a, xa);
-    *(mask) = a;
-}
-
-static void
-combine_mask_value_ca (uint32_t *src, const uint32_t *mask)
-{
-    uint32_t a = *mask;
-    uint32_t x;
-
-    if (!a)
-    {
-	*(src) = 0;
-	return;
-    }
-
-    if (a == ~0)
-	return;
-
-    x = *(src);
-    UN8x4_MUL_UN8x4 (x, a);
-    *(src) = x;
-}
-
-static void
-combine_mask_alpha_ca (const uint32_t *src, uint32_t *mask)
-{
-    uint32_t a = *(mask);
-    uint32_t x;
-
-    if (!a)
-	return;
-
-    x = *(src) >> A_SHIFT;
-    if (x == MASK)
-	return;
-
-    if (a == ~0)
-    {
-	x |= x << G_SHIFT;
-	x |= x << R_SHIFT;
-	*(mask) = x;
-	return;
-    }
-
-    UN8x4_MUL_UN8 (a, x);
-    *(mask) = a;
-}
-
-/*
- * There are two ways of handling alpha -- either as a single unified value or
- * a separate value for each component, hence each macro must have two
- * versions.  The unified alpha version has a 'u' at the end of the name,
- * the component version has a 'ca'.  Similarly, functions which deal with
- * this difference will have two versions using the same convention.
- */
-
-static force_inline uint32_t
-combine_mask (const uint32_t *src, const uint32_t *mask, int i)
-{
-    uint32_t s, m;
-
-    if (mask)
-    {
-	m = *(mask + i) >> A_SHIFT;
-
-	if (!m)
-	    return 0;
-    }
-
-    s = *(src + i);
-
-    if (mask)
-	UN8x4_MUL_UN8 (s, m);
-
-    return s;
-}
-
-static void
-combine_clear (pixman_implementation_t *imp,
-               pixman_op_t              op,
-               uint32_t *               dest,
-               const uint32_t *         src,
-               const uint32_t *         mask,
-               int                      width)
-{
-    memset (dest, 0, width * sizeof (uint32_t));
-}
-
-static void
-combine_dst (pixman_implementation_t *imp,
-	     pixman_op_t	      op,
-	     uint32_t *		      dest,
-	     const uint32_t *	      src,
-	     const uint32_t *         mask,
-	     int		      width)
-{
-    return;
-}
-
-static void
-combine_src_u (pixman_implementation_t *imp,
-               pixman_op_t              op,
-               uint32_t *               dest,
-               const uint32_t *         src,
-               const uint32_t *         mask,
-               int                      width)
-{
-    int i;
-
-    if (!mask)
-    {
-	memcpy (dest, src, width * sizeof (uint32_t));
-    }
-    else
-    {
-	for (i = 0; i < width; ++i)
-	{
-	    uint32_t s = combine_mask (src, mask, i);
-
-	    *(dest + i) = s;
-	}
-    }
-}
-
-static void
-combine_over_u (pixman_implementation_t *imp,
-                pixman_op_t              op,
-                uint32_t *               dest,
-                const uint32_t *         src,
-                const uint32_t *         mask,
-                int                      width)
-{
-    int i;
-
-    if (!mask)
-    {
-	for (i = 0; i < width; ++i)
-	{
-	    uint32_t s = *(src + i);
-	    uint32_t a = ALPHA_8 (s);
-	    if (a == 0xFF)
-	    {
-		*(dest + i) = s;
-	    }
-	    else if (s)
-	    {
-		uint32_t d = *(dest + i);
-		uint32_t ia = a ^ 0xFF;
-		UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
-		*(dest + i) = d;
-	    }
-	}
-    }
-    else
-    {
-	for (i = 0; i < width; ++i)
-	{
-	    uint32_t m = ALPHA_8 (*(mask + i));
-	    if (m == 0xFF)
-	    {
-		uint32_t s = *(src + i);
-		uint32_t a = ALPHA_8 (s);
-		if (a == 0xFF)
-		{
-		    *(dest + i) = s;
-		}
-		else if (s)
-		{
-		    uint32_t d = *(dest + i);
-		    uint32_t ia = a ^ 0xFF;
-		    UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
-		    *(dest + i) = d;
-		}
-	    }
-	    else if (m)
-	    {
-		uint32_t s = *(src + i);
-		if (s)
-		{
-		    uint32_t d = *(dest + i);
-		    UN8x4_MUL_UN8 (s, m);
-		    UN8x4_MUL_UN8_ADD_UN8x4 (d, ALPHA_8 (~s), s);
-		    *(dest + i) = d;
-		}
-	    }
-	}
-    }
-}
-
-static void
-combine_over_reverse_u (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *               dest,
-                        const uint32_t *         src,
-                        const uint32_t *         mask,
-                        int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t ia = ALPHA_8 (~*(dest + i));
-	UN8x4_MUL_UN8_ADD_UN8x4 (s, ia, d);
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_in_u (pixman_implementation_t *imp,
-              pixman_op_t              op,
-              uint32_t *               dest,
-              const uint32_t *         src,
-              const uint32_t *         mask,
-              int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t a = ALPHA_8 (*(dest + i));
-	UN8x4_MUL_UN8 (s, a);
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_in_reverse_u (pixman_implementation_t *imp,
-                      pixman_op_t              op,
-                      uint32_t *               dest,
-                      const uint32_t *         src,
-                      const uint32_t *         mask,
-                      int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t a = ALPHA_8 (s);
-	UN8x4_MUL_UN8 (d, a);
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_out_u (pixman_implementation_t *imp,
-               pixman_op_t              op,
-               uint32_t *               dest,
-               const uint32_t *         src,
-               const uint32_t *         mask,
-               int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t a = ALPHA_8 (~*(dest + i));
-	UN8x4_MUL_UN8 (s, a);
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_out_reverse_u (pixman_implementation_t *imp,
-                       pixman_op_t              op,
-                       uint32_t *               dest,
-                       const uint32_t *         src,
-                       const uint32_t *         mask,
-                       int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t a = ALPHA_8 (~s);
-	UN8x4_MUL_UN8 (d, a);
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_atop_u (pixman_implementation_t *imp,
-                pixman_op_t              op,
-                uint32_t *               dest,
-                const uint32_t *         src,
-                const uint32_t *         mask,
-                int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t dest_a = ALPHA_8 (d);
-	uint32_t src_ia = ALPHA_8 (~s);
-
-	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_a, d, src_ia);
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_atop_reverse_u (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *               dest,
-                        const uint32_t *         src,
-                        const uint32_t *         mask,
-                        int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t src_a = ALPHA_8 (s);
-	uint32_t dest_ia = ALPHA_8 (~d);
-
-	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_a);
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_xor_u (pixman_implementation_t *imp,
-               pixman_op_t              op,
-               uint32_t *               dest,
-               const uint32_t *         src,
-               const uint32_t *         mask,
-               int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t src_ia = ALPHA_8 (~s);
-	uint32_t dest_ia = ALPHA_8 (~d);
-
-	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_ia);
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_add_u (pixman_implementation_t *imp,
-               pixman_op_t              op,
-               uint32_t *               dest,
-               const uint32_t *         src,
-               const uint32_t *         mask,
-               int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	UN8x4_ADD_UN8x4 (d, s);
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_saturate_u (pixman_implementation_t *imp,
-                    pixman_op_t              op,
-                    uint32_t *               dest,
-                    const uint32_t *         src,
-                    const uint32_t *         mask,
-                    int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint16_t sa, da;
-
-	sa = s >> A_SHIFT;
-	da = ~d >> A_SHIFT;
-	if (sa > da)
-	{
-	    sa = DIV_UN8 (da, sa);
-	    UN8x4_MUL_UN8 (s, sa);
-	}
-	;
-	UN8x4_ADD_UN8x4 (d, s);
-	*(dest + i) = d;
-    }
-}
-
-
-/*
- * PDF blend modes:
- *
- * The following blend modes have been taken from the PDF ISO 32000
- * specification, which at this point in time is available from
- *
- *     http://www.adobe.com/devnet/pdf/pdf_reference.html
- *
- * The specific documents of interest are the PDF spec itself:
- *
- *     http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
- *
- * chapters 11.3.5 and 11.3.6 and a later supplement for Adobe Acrobat
- * 9.1 and Reader 9.1:
- *
- *     http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/adobe_supplement_iso32000_1.pdf
- *
- * that clarifies the specifications for blend modes ColorDodge and
- * ColorBurn.
- *
- * The formula for computing the final pixel color given in 11.3.6 is:
- *
- *     αr × Cr = (1 – αs) × αb × Cb + (1 – αb) × αs × Cs + αb × αs × B(Cb, Cs)
- *
- * with B() is the blend function. When B(Cb, Cs) = Cs, this formula
- * reduces to the regular OVER operator.
- *
- * Cs and Cb are not premultiplied, so in our implementation we instead
- * use:
- *
- *     cr = (1 – αs) × cb  +  (1 – αb) × cs  +  αb × αs × B (cb/αb, cs/αs)
- *
- * where cr, cs, and cb are premultiplied colors, and where the
- *
- *     αb × αs × B(cb/αb, cs/αs)
- *
- * part is first arithmetically simplified under the assumption that αb
- * and αs are not 0, and then updated to produce a meaningful result when
- * they are.
- *
- * For all the blend mode operators, the alpha channel is given by
- *
- *     αr = αs + αb + αb × αs
- */
-
-/*
- * Multiply
- *
- *      ad * as * B(d / ad, s / as)
- *    = ad * as * d/ad * s/as
- *    = d * s
- *
- */
-static void
-combine_multiply_u (pixman_implementation_t *imp,
-                    pixman_op_t              op,
-                    uint32_t *               dest,
-                    const uint32_t *         src,
-                    const uint32_t *         mask,
-                    int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t ss = s;
-	uint32_t src_ia = ALPHA_8 (~s);
-	uint32_t dest_ia = ALPHA_8 (~d);
-
-	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (ss, dest_ia, d, src_ia);
-	UN8x4_MUL_UN8x4 (d, s);
-	UN8x4_ADD_UN8x4 (d, ss);
-
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_multiply_ca (pixman_implementation_t *imp,
-                     pixman_op_t              op,
-                     uint32_t *               dest,
-                     const uint32_t *         src,
-                     const uint32_t *         mask,
-                     int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t m = *(mask + i);
-	uint32_t s = *(src + i);
-	uint32_t d = *(dest + i);
-	uint32_t r = d;
-	uint32_t dest_ia = ALPHA_8 (~d);
-
-	combine_mask_ca (&s, &m);
-
-	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (r, ~m, s, dest_ia);
-	UN8x4_MUL_UN8x4 (d, s);
-	UN8x4_ADD_UN8x4 (r, d);
-
-	*(dest + i) = r;
-    }
-}
-
-#define PDF_SEPARABLE_BLEND_MODE(name)					\
-    static void								\
-    combine_ ## name ## _u (pixman_implementation_t *imp,		\
-			    pixman_op_t              op,		\
-                            uint32_t *               dest,		\
-			    const uint32_t *         src,		\
-			    const uint32_t *         mask,		\
-			    int                      width)		\
-    {									\
-	int i;								\
-	for (i = 0; i < width; ++i)					\
-	{								\
-	    uint32_t s = combine_mask (src, mask, i);			\
-	    uint32_t d = *(dest + i);					\
-	    uint8_t sa = ALPHA_8 (s);					\
-	    uint8_t isa = ~sa;						\
-	    uint8_t da = ALPHA_8 (d);					\
-	    uint8_t ida = ~da;						\
-	    uint32_t result;						\
-									\
-	    result = d;							\
-	    UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (result, isa, s, ida);	\
-	    								\
-	    *(dest + i) = result +					\
-		(DIV_ONE_UN8 (sa * (uint32_t)da) << A_SHIFT) +		\
-		(blend_ ## name (RED_8 (d), da, RED_8 (s), sa) << R_SHIFT) + \
-		(blend_ ## name (GREEN_8 (d), da, GREEN_8 (s), sa) << G_SHIFT) + \
-		(blend_ ## name (BLUE_8 (d), da, BLUE_8 (s), sa));	\
-	}								\
-    }									\
-    									\
-    static void								\
-    combine_ ## name ## _ca (pixman_implementation_t *imp,		\
-			     pixman_op_t              op,		\
-                             uint32_t *               dest,		\
-			     const uint32_t *         src,		\
-			     const uint32_t *         mask,		\
-			     int                      width)		\
-    {									\
-	int i;								\
-	for (i = 0; i < width; ++i)					\
-	{								\
-	    uint32_t m = *(mask + i);					\
-	    uint32_t s = *(src + i);					\
-	    uint32_t d = *(dest + i);					\
-	    uint8_t da = ALPHA_8 (d);					\
-	    uint8_t ida = ~da;						\
-	    uint32_t result;						\
-            								\
-	    combine_mask_ca (&s, &m);					\
-            								\
-	    result = d;							\
-	    UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (result, ~m, s, ida);     \
-            								\
-	    result +=							\
-	        (DIV_ONE_UN8 (ALPHA_8 (m) * (uint32_t)da) << A_SHIFT) +	\
-	        (blend_ ## name (RED_8 (d), da, RED_8 (s), RED_8 (m)) << R_SHIFT) + \
-	        (blend_ ## name (GREEN_8 (d), da, GREEN_8 (s), GREEN_8 (m)) << G_SHIFT) + \
-	        (blend_ ## name (BLUE_8 (d), da, BLUE_8 (s), BLUE_8 (m))); \
-	    								\
-	    *(dest + i) = result;					\
-	}								\
-    }
-
-/*
- * Screen
- *
- *      ad * as * B(d/ad, s/as)
- *    = ad * as * (d/ad + s/as - s/as * d/ad)
- *    = ad * s + as * d - s * d
- */
-static inline uint32_t
-blend_screen (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    return DIV_ONE_UN8 (s * ad + d * as - s * d);
-}
-
-PDF_SEPARABLE_BLEND_MODE (screen)
-
-/*
- * Overlay
- *
- *     ad * as * B(d/ad, s/as)
- *   = ad * as * Hardlight (s, d)
- *   = if (d / ad < 0.5)
- *         as * ad * Multiply (s/as, 2 * d/ad)
- *     else
- *         as * ad * Screen (s/as, 2 * d / ad - 1)
- *   = if (d < 0.5 * ad)
- *         as * ad * s/as * 2 * d /ad
- *     else
- *         as * ad * (s/as + 2 * d / ad - 1 - s / as * (2 * d / ad - 1))
- *   = if (2 * d < ad)
- *         2 * s * d
- *     else
- *         ad * s + 2 * as * d - as * ad - ad * s * (2 * d / ad - 1)
- *   = if (2 * d < ad)
- *         2 * s * d
- *     else
- *         as * ad - 2 * (ad - d) * (as - s)
- */
-static inline uint32_t
-blend_overlay (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    uint32_t r;
-
-    if (2 * d < ad)
-	r = 2 * s * d;
-    else
-	r = as * ad - 2 * (ad - d) * (as - s);
-
-    return DIV_ONE_UN8 (r);
-}
-
-PDF_SEPARABLE_BLEND_MODE (overlay)
-
-/*
- * Darken
- *
- *     ad * as * B(d/ad, s/as)
- *   = ad * as * MIN(d/ad, s/as)
- *   = MIN (as * d, ad * s)
- */
-static inline uint32_t
-blend_darken (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    s = ad * s;
-    d = as * d;
-
-    return DIV_ONE_UN8 (s > d ? d : s);
-}
-
-PDF_SEPARABLE_BLEND_MODE (darken)
-
-/*
- * Lighten
- *
- *     ad * as * B(d/ad, s/as)
- *   = ad * as * MAX(d/ad, s/as)
- *   = MAX (as * d, ad * s)
- */
-static inline uint32_t
-blend_lighten (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    s = ad * s;
-    d = as * d;
-    
-    return DIV_ONE_UN8 (s > d ? s : d);
-}
-
-PDF_SEPARABLE_BLEND_MODE (lighten)
-
-/*
- * Color dodge
- *
- *     ad * as * B(d/ad, s/as)
- *   = if d/ad = 0
- *         ad * as * 0
- *     else if (d/ad >= (1 - s/as)
- *         ad * as * 1
- *     else
- *         ad * as * ((d/ad) / (1 - s/as))
- *   = if d = 0
- *         0
- *     elif as * d >= ad * (as - s)
- *         ad * as
- *     else
- *         as * (as * d / (as - s))
- *
- */
-static inline uint32_t
-blend_color_dodge (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    if (d == 0)
-        return 0;
-    else if (as * d >= ad * (as - s))
-	return DIV_ONE_UN8 (as * ad);
-    else if (as - s == 0)
-        return DIV_ONE_UN8 (as * ad);
-    else
-        return DIV_ONE_UN8 (as * ((d * as) / ((as - s))));
-}
-
-PDF_SEPARABLE_BLEND_MODE (color_dodge)
-
-/*
- * Color burn
- *
- * We modify the first clause "if d = 1" to "if d >= 1" since with
- * premultiplied colors d > 1 can actually happen.
- *
- *     ad * as * B(d/ad, s/as)
- *   = if d/ad >= 1
- *         ad * as * 1
- *     elif (1 - d/ad) >= s/as
- *         ad * as * 0
- *     else
- *         ad * as * (1 - ((1 - d/ad) / (s/as)))
- *   = if d >= ad
- *         ad * as
- *     elif as * ad - as * d >= ad * s
- *         0
- *     else
- *         ad * as  - as * as * (ad - d) / s
- */
-static inline uint32_t
-blend_color_burn (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    if (d >= ad)
-	return DIV_ONE_UN8 (ad * as);
-    else if (as * ad - as * d >= ad * s)
-	return 0;
-    else if (s == 0)
-	return 0;
-    else
-	return DIV_ONE_UN8 (ad * as - (as * as * (ad - d)) / s);
-}
-
-PDF_SEPARABLE_BLEND_MODE (color_burn)
-
-/*
- * Hard light
- *
- *     ad * as * B(d/ad, s/as)
- *   = if (s/as <= 0.5)
- *         ad * as * Multiply (d/ad, 2 * s/as)
- *     else
- *         ad * as * Screen (d/ad, 2 * s/as - 1)
- *   = if 2 * s <= as
- *         ad * as * d/ad * 2 * s / as
- *     else
- *         ad * as * (d/ad + (2 * s/as - 1) + d/ad * (2 * s/as - 1))
- *   = if 2 * s <= as
- *         2 * s * d
- *     else
- *         as * ad - 2 * (ad - d) * (as - s)
- */
-static inline uint32_t
-blend_hard_light (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    if (2 * s < as)
-	return DIV_ONE_UN8 (2 * s * d);
-    else
-	return DIV_ONE_UN8 (as * ad - 2 * (ad - d) * (as - s));
-}
-
-PDF_SEPARABLE_BLEND_MODE (hard_light)
-
-/*
- * Soft light
- *
- *     ad * as * B(d/ad, s/as)
- *   = if (s/as <= 0.5)
- *         ad * as * (d/ad - (1 - 2 * s/as) * d/ad * (1 - d/ad))
- *     else if (d/ad <= 0.25)
- *         ad * as * (d/ad + (2 * s/as - 1) * ((((16 * d/ad - 12) * d/ad + 4) * d/ad) - d/ad))
- *     else
- *         ad * as * (d/ad + (2 * s/as - 1) * sqrt (d/ad))
- *   = if (2 * s <= as)
- *         d * as - d * (ad - d) * (as - 2 * s) / ad;
- *     else if (4 * d <= ad)
- *         (2 * s - as) * d * ((16 * d / ad - 12) * d / ad + 3);
- *     else
- *         d * as + (sqrt (d * ad) - d) * (2 * s - as);
- */
-static inline uint32_t
-blend_soft_light (uint32_t d_org,
-		  uint32_t ad_org,
-		  uint32_t s_org,
-		  uint32_t as_org)
-{
-    double d = d_org * (1.0 / MASK);
-    double ad = ad_org * (1.0 / MASK);
-    double s = s_org * (1.0 / MASK);
-    double as = as_org * (1.0 / MASK);
-    double r;
-
-    if (2 * s < as)
-    {
-	if (ad == 0)
-	    r = d * as;
-	else
-	    r = d * as - d * (ad - d) * (as - 2 * s) / ad;
-    }
-    else if (ad == 0)
-    {
-	r = 0;
-    }
-    else if (4 * d <= ad)
-    {
-	r = d * as +
-	    (2 * s - as) * d * ((16 * d / ad - 12) * d / ad + 3);
-    }
-    else
-    {
-	r = d * as + (sqrt (d * ad) - d) * (2 * s - as);
-    }
-    return r * MASK + 0.5;
-}
-
-PDF_SEPARABLE_BLEND_MODE (soft_light)
-
-/*
- * Difference
- *
- *     ad * as * B(s/as, d/ad)
- *   = ad * as * abs (s/as - d/ad)
- *   = if (s/as <= d/ad)
- *         ad * as * (d/ad - s/as)
- *     else
- *         ad * as * (s/as - d/ad)
- *   = if (ad * s <= as * d)
- *        as * d - ad * s
- *     else
- *        ad * s - as * d
- */
-static inline uint32_t
-blend_difference (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    uint32_t das = d * as;
-    uint32_t sad = s * ad;
-
-    if (sad < das)
-	return DIV_ONE_UN8 (das - sad);
-    else
-	return DIV_ONE_UN8 (sad - das);
-}
-
-PDF_SEPARABLE_BLEND_MODE (difference)
-
-/*
- * Exclusion
- *
- *     ad * as * B(s/as, d/ad)
- *   = ad * as * (d/ad + s/as - 2 * d/ad * s/as)
- *   = as * d + ad * s - 2 * s * d
- */
-
-/* This can be made faster by writing it directly and not using
- * PDF_SEPARABLE_BLEND_MODE, but that's a performance optimization */
-
-static inline uint32_t
-blend_exclusion (uint32_t d, uint32_t ad, uint32_t s, uint32_t as)
-{
-    return DIV_ONE_UN8 (s * ad + d * as - 2 * d * s);
-}
-
-PDF_SEPARABLE_BLEND_MODE (exclusion)
-
-#undef PDF_SEPARABLE_BLEND_MODE
-
-/*
- * PDF nonseperable blend modes are implemented using the following functions
- * to operate in Hsl space, with Cmax, Cmid, Cmin referring to the max, mid
- * and min value of the red, green and blue components.
- *
- * LUM (C) = 0.3 × Cred + 0.59 × Cgreen + 0.11 × Cblue
- *
- * clip_color (C):
- *     l = LUM (C)
- *     min = Cmin
- *     max = Cmax
- *     if n < 0.0
- *         C = l + (((C – l) × l) ⁄ (l – min))
- *     if x > 1.0
- *         C = l + (((C – l) × (1 – l) ) ⁄ (max – l))
- *     return C
- *
- * set_lum (C, l):
- *     d = l – LUM (C)
- *     C += d
- *     return clip_color (C)
- *
- * SAT (C) = CH_MAX (C) - CH_MIN (C)
- *
- * set_sat (C, s):
- *     if Cmax > Cmin
- *         Cmid = ( ( ( Cmid – Cmin ) × s ) ⁄ ( Cmax – Cmin ) )
- *         Cmax = s
- *     else
- *         Cmid = Cmax = 0.0
- *         Cmin = 0.0
- *     return C
- */
-
-/* For premultiplied colors, we need to know what happens when C is
- * multiplied by a real number. LUM and SAT are linear:
- *
- *     LUM (r × C) = r × LUM (C)	SAT (r * C) = r * SAT (C)
- *
- * If we extend clip_color with an extra argument a and change
- *
- *     if x >= 1.0
- *
- * into
- *
- *     if x >= a
- *
- * then clip_color is also linear:
- *
- *     r * clip_color (C, a) = clip_color (r * C, r * a);
- *
- * for positive r.
- *
- * Similarly, we can extend set_lum with an extra argument that is just passed
- * on to clip_color:
- *
- *       r * set_lum (C, l, a)
- *
- *     = r × clip_color (C + l - LUM (C), a)
- *
- *     = clip_color (r * C + r × l - r * LUM (C), r * a)
- *
- *     = set_lum (r * C, r * l, r * a)
- *
- * Finally, set_sat:
- *
- *       r * set_sat (C, s) = set_sat (x * C, r * s)
- *
- * The above holds for all non-zero x, because the x'es in the fraction for
- * C_mid cancel out. Specifically, it holds for x = r:
- *
- *       r * set_sat (C, s) = set_sat (r * C, r * s)
- *
- */
-
-#define CH_MIN(c) (c[0] < c[1] ? (c[0] < c[2] ? c[0] : c[2]) : (c[1] < c[2] ? c[1] : c[2]))
-#define CH_MAX(c) (c[0] > c[1] ? (c[0] > c[2] ? c[0] : c[2]) : (c[1] > c[2] ? c[1] : c[2]))
-#define LUM(c) ((c[0] * 30 + c[1] * 59 + c[2] * 11) / 100)
-#define SAT(c) (CH_MAX (c) - CH_MIN (c))
-
-#define PDF_NON_SEPARABLE_BLEND_MODE(name)				\
-    static void								\
-    combine_ ## name ## _u (pixman_implementation_t *imp,		\
-			    pixman_op_t		     op,		\
-                            uint32_t *               dest,		\
-			    const uint32_t *         src,		\
-			    const uint32_t *         mask,		\
-			    int                      width)		\
-    {									\
-	int i;								\
-	for (i = 0; i < width; ++i)					\
-	{								\
-	    uint32_t s = combine_mask (src, mask, i);			\
-	    uint32_t d = *(dest + i);					\
-	    uint8_t sa = ALPHA_8 (s);					\
-	    uint8_t isa = ~sa;						\
-	    uint8_t da = ALPHA_8 (d);					\
-	    uint8_t ida = ~da;						\
-	    uint32_t result;						\
-	    uint32_t sc[3], dc[3], c[3];				\
-            								\
-	    result = d;							\
-	    UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (result, isa, s, ida);	\
-	    dc[0] = RED_8 (d);						\
-	    sc[0] = RED_8 (s);						\
-	    dc[1] = GREEN_8 (d);					\
-	    sc[1] = GREEN_8 (s);					\
-	    dc[2] = BLUE_8 (d);						\
-	    sc[2] = BLUE_8 (s);						\
-	    blend_ ## name (c, dc, da, sc, sa);				\
-            								\
-	    *(dest + i) = result +					\
-		(DIV_ONE_UN8 (sa * (uint32_t)da) << A_SHIFT) +		\
-		(DIV_ONE_UN8 (c[0]) << R_SHIFT) +			\
-		(DIV_ONE_UN8 (c[1]) << G_SHIFT) +			\
-		(DIV_ONE_UN8 (c[2]));					\
-	}								\
-    }
-
-static void
-set_lum (uint32_t dest[3], uint32_t src[3], uint32_t sa, uint32_t lum)
-{
-    double a, l, min, max;
-    double tmp[3];
-
-    a = sa * (1.0 / MASK);
-
-    l = lum * (1.0 / MASK);
-    tmp[0] = src[0] * (1.0 / MASK);
-    tmp[1] = src[1] * (1.0 / MASK);
-    tmp[2] = src[2] * (1.0 / MASK);
-
-    l = l - LUM (tmp);
-    tmp[0] += l;
-    tmp[1] += l;
-    tmp[2] += l;
-
-    /* clip_color */
-    l = LUM (tmp);
-    min = CH_MIN (tmp);
-    max = CH_MAX (tmp);
-
-    if (min < 0)
-    {
-	if (l - min == 0.0)
-	{
-	    tmp[0] = 0;
-	    tmp[1] = 0;
-	    tmp[2] = 0;
-	}
-	else
-	{
-	    tmp[0] = l + (tmp[0] - l) * l / (l - min);
-	    tmp[1] = l + (tmp[1] - l) * l / (l - min);
-	    tmp[2] = l + (tmp[2] - l) * l / (l - min);
-	}
-    }
-    if (max > a)
-    {
-	if (max - l == 0.0)
-	{
-	    tmp[0] = a;
-	    tmp[1] = a;
-	    tmp[2] = a;
-	}
-	else
-	{
-	    tmp[0] = l + (tmp[0] - l) * (a - l) / (max - l);
-	    tmp[1] = l + (tmp[1] - l) * (a - l) / (max - l);
-	    tmp[2] = l + (tmp[2] - l) * (a - l) / (max - l);
-	}
-    }
-
-    dest[0] = tmp[0] * MASK + 0.5;
-    dest[1] = tmp[1] * MASK + 0.5;
-    dest[2] = tmp[2] * MASK + 0.5;
-}
-
-static void
-set_sat (uint32_t dest[3], uint32_t src[3], uint32_t sat)
-{
-    int id[3];
-    uint32_t min, max;
-
-    if (src[0] > src[1])
-    {
-	if (src[0] > src[2])
-	{
-	    id[0] = 0;
-	    if (src[1] > src[2])
-	    {
-		id[1] = 1;
-		id[2] = 2;
-	    }
-	    else
-	    {
-		id[1] = 2;
-		id[2] = 1;
-	    }
-	}
-	else
-	{
-	    id[0] = 2;
-	    id[1] = 0;
-	    id[2] = 1;
-	}
-    }
-    else
-    {
-	if (src[0] > src[2])
-	{
-	    id[0] = 1;
-	    id[1] = 0;
-	    id[2] = 2;
-	}
-	else
-	{
-	    id[2] = 0;
-	    if (src[1] > src[2])
-	    {
-		id[0] = 1;
-		id[1] = 2;
-	    }
-	    else
-	    {
-		id[0] = 2;
-		id[1] = 1;
-	    }
-	}
-    }
-
-    max = dest[id[0]];
-    min = dest[id[2]];
-    if (max > min)
-    {
-	dest[id[1]] = (dest[id[1]] - min) * sat / (max - min);
-	dest[id[0]] = sat;
-	dest[id[2]] = 0;
-    }
-    else
-    {
-	dest[0] = dest[1] = dest[2] = 0;
-    }
-}
-
-/* Hue:
- *
- *       as * ad * B(s/as, d/as)
- *     = as * ad * set_lum (set_sat (s/as, SAT (d/ad)), LUM (d/ad), 1)
- *     = set_lum (set_sat (ad * s, as * SAT (d)), as * LUM (d), as * ad)
- *
- */
-static inline void
-blend_hsl_hue (uint32_t r[3],
-               uint32_t d[3],
-               uint32_t ad,
-               uint32_t s[3],
-               uint32_t as)
-{
-    r[0] = s[0] * ad;
-    r[1] = s[1] * ad;
-    r[2] = s[2] * ad;
-    set_sat (r, r, SAT (d) * as);
-    set_lum (r, r, as * ad, LUM (d) * as);
-}
-
-PDF_NON_SEPARABLE_BLEND_MODE (hsl_hue)
-
-/* 
- * Saturation
- *
- *     as * ad * B(s/as, d/ad)
- *   = as * ad * set_lum (set_sat (d/ad, SAT (s/as)), LUM (d/ad), 1)
- *   = set_lum (as * ad * set_sat (d/ad, SAT (s/as)),
- *                                       as * LUM (d), as * ad)
- *   = set_lum (set_sat (as * d, ad * SAT (s), as * LUM (d), as * ad))
- */
-static inline void
-blend_hsl_saturation (uint32_t r[3],
-                      uint32_t d[3],
-                      uint32_t ad,
-                      uint32_t s[3],
-                      uint32_t as)
-{
-    r[0] = d[0] * as;
-    r[1] = d[1] * as;
-    r[2] = d[2] * as;
-    set_sat (r, r, SAT (s) * ad);
-    set_lum (r, r, as * ad, LUM (d) * as);
-}
-
-PDF_NON_SEPARABLE_BLEND_MODE (hsl_saturation)
-
-/* 
- * Color
- *
- *     as * ad * B(s/as, d/as)
- *   = as * ad * set_lum (s/as, LUM (d/ad), 1)
- *   = set_lum (s * ad, as * LUM (d), as * ad)
- */
-static inline void
-blend_hsl_color (uint32_t r[3],
-                 uint32_t d[3],
-                 uint32_t ad,
-                 uint32_t s[3],
-                 uint32_t as)
-{
-    r[0] = s[0] * ad;
-    r[1] = s[1] * ad;
-    r[2] = s[2] * ad;
-    set_lum (r, r, as * ad, LUM (d) * as);
-}
-
-PDF_NON_SEPARABLE_BLEND_MODE (hsl_color)
-
-/*
- * Luminosity
- *
- *     as * ad * B(s/as, d/ad)
- *   = as * ad * set_lum (d/ad, LUM (s/as), 1)
- *   = set_lum (as * d, ad * LUM (s), as * ad)
- */
-static inline void
-blend_hsl_luminosity (uint32_t r[3],
-                      uint32_t d[3],
-                      uint32_t ad,
-                      uint32_t s[3],
-                      uint32_t as)
-{
-    r[0] = d[0] * as;
-    r[1] = d[1] * as;
-    r[2] = d[2] * as;
-    set_lum (r, r, as * ad, LUM (s) * ad);
-}
-
-PDF_NON_SEPARABLE_BLEND_MODE (hsl_luminosity)
-
-#undef SAT
-#undef LUM
-#undef CH_MAX
-#undef CH_MIN
-#undef PDF_NON_SEPARABLE_BLEND_MODE
-
-/* All of the disjoint/conjoint composing functions
- *
- * The four entries in the first column indicate what source contributions
- * come from each of the four areas of the picture -- areas covered by neither
- * A nor B, areas covered only by A, areas covered only by B and finally
- * areas covered by both A and B.
- *
- * Disjoint			Conjoint
- * Fa		Fb		Fa		Fb
- * (0,0,0,0)	0		0		0		0
- * (0,A,0,A)	1		0		1		0
- * (0,0,B,B)	0		1		0		1
- * (0,A,B,A)	1		min((1-a)/b,1)	1		max(1-a/b,0)
- * (0,A,B,B)	min((1-b)/a,1)	1		max(1-b/a,0)	1
- * (0,0,0,A)	max(1-(1-b)/a,0) 0		min(1,b/a)	0
- * (0,0,0,B)	0		max(1-(1-a)/b,0) 0		min(a/b,1)
- * (0,A,0,0)	min(1,(1-b)/a)	0		max(1-b/a,0)	0
- * (0,0,B,0)	0		min(1,(1-a)/b)	0		max(1-a/b,0)
- * (0,0,B,A)	max(1-(1-b)/a,0) min(1,(1-a)/b)	 min(1,b/a)	max(1-a/b,0)
- * (0,A,0,B)	min(1,(1-b)/a)	max(1-(1-a)/b,0) max(1-b/a,0)	min(1,a/b)
- * (0,A,B,0)	min(1,(1-b)/a)	min(1,(1-a)/b)	max(1-b/a,0)	max(1-a/b,0)
- *
- * See  http://marc.info/?l=xfree-render&m=99792000027857&w=2  for more
- * information about these operators.
- */
-
-#define COMBINE_A_OUT 1
-#define COMBINE_A_IN  2
-#define COMBINE_B_OUT 4
-#define COMBINE_B_IN  8
-
-#define COMBINE_CLEAR   0
-#define COMBINE_A       (COMBINE_A_OUT | COMBINE_A_IN)
-#define COMBINE_B       (COMBINE_B_OUT | COMBINE_B_IN)
-#define COMBINE_A_OVER  (COMBINE_A_OUT | COMBINE_B_OUT | COMBINE_A_IN)
-#define COMBINE_B_OVER  (COMBINE_A_OUT | COMBINE_B_OUT | COMBINE_B_IN)
-#define COMBINE_A_ATOP  (COMBINE_B_OUT | COMBINE_A_IN)
-#define COMBINE_B_ATOP  (COMBINE_A_OUT | COMBINE_B_IN)
-#define COMBINE_XOR     (COMBINE_A_OUT | COMBINE_B_OUT)
-
-/* portion covered by a but not b */
-static uint8_t
-combine_disjoint_out_part (uint8_t a, uint8_t b)
-{
-    /* min (1, (1-b) / a) */
-
-    b = ~b;                 /* 1 - b */
-    if (b >= a)             /* 1 - b >= a -> (1-b)/a >= 1 */
-	return MASK;        /* 1 */
-    return DIV_UN8 (b, a);     /* (1-b) / a */
-}
-
-/* portion covered by both a and b */
-static uint8_t
-combine_disjoint_in_part (uint8_t a, uint8_t b)
-{
-    /* max (1-(1-b)/a,0) */
-    /*  = - min ((1-b)/a - 1, 0) */
-    /*  = 1 - min (1, (1-b)/a) */
-
-    b = ~b;                 /* 1 - b */
-    if (b >= a)             /* 1 - b >= a -> (1-b)/a >= 1 */
-	return 0;           /* 1 - 1 */
-    return ~DIV_UN8(b, a);    /* 1 - (1-b) / a */
-}
-
-/* portion covered by a but not b */
-static uint8_t
-combine_conjoint_out_part (uint8_t a, uint8_t b)
-{
-    /* max (1-b/a,0) */
-    /* = 1-min(b/a,1) */
-
-    /* min (1, (1-b) / a) */
-
-    if (b >= a)             /* b >= a -> b/a >= 1 */
-	return 0x00;        /* 0 */
-    return ~DIV_UN8(b, a);    /* 1 - b/a */
-}
-
-/* portion covered by both a and b */
-static uint8_t
-combine_conjoint_in_part (uint8_t a, uint8_t b)
-{
-    /* min (1,b/a) */
-
-    if (b >= a)             /* b >= a -> b/a >= 1 */
-	return MASK;        /* 1 */
-    return DIV_UN8 (b, a);     /* b/a */
-}
-
-#define GET_COMP(v, i)   ((uint16_t) (uint8_t) ((v) >> i))
-
-#define ADD(x, y, i, t)							\
-    ((t) = GET_COMP (x, i) + GET_COMP (y, i),				\
-     (uint32_t) ((uint8_t) ((t) | (0 - ((t) >> G_SHIFT)))) << (i))
-
-#define GENERIC(x, y, i, ax, ay, t, u, v)				\
-    ((t) = (MUL_UN8 (GET_COMP (y, i), ay, (u)) +			\
-            MUL_UN8 (GET_COMP (x, i), ax, (v))),			\
-     (uint32_t) ((uint8_t) ((t) |					\
-                           (0 - ((t) >> G_SHIFT)))) << (i))
-
-static void
-combine_disjoint_general_u (uint32_t *      dest,
-                            const uint32_t *src,
-                            const uint32_t *mask,
-                            int            width,
-                            uint8_t        combine)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t m, n, o, p;
-	uint16_t Fa, Fb, t, u, v;
-	uint8_t sa = s >> A_SHIFT;
-	uint8_t da = d >> A_SHIFT;
-
-	switch (combine & COMBINE_A)
-	{
-	default:
-	    Fa = 0;
-	    break;
-
-	case COMBINE_A_OUT:
-	    Fa = combine_disjoint_out_part (sa, da);
-	    break;
-
-	case COMBINE_A_IN:
-	    Fa = combine_disjoint_in_part (sa, da);
-	    break;
-
-	case COMBINE_A:
-	    Fa = MASK;
-	    break;
-	}
-
-	switch (combine & COMBINE_B)
-	{
-	default:
-	    Fb = 0;
-	    break;
-
-	case COMBINE_B_OUT:
-	    Fb = combine_disjoint_out_part (da, sa);
-	    break;
-
-	case COMBINE_B_IN:
-	    Fb = combine_disjoint_in_part (da, sa);
-	    break;
-
-	case COMBINE_B:
-	    Fb = MASK;
-	    break;
-	}
-	m = GENERIC (s, d, 0, Fa, Fb, t, u, v);
-	n = GENERIC (s, d, G_SHIFT, Fa, Fb, t, u, v);
-	o = GENERIC (s, d, R_SHIFT, Fa, Fb, t, u, v);
-	p = GENERIC (s, d, A_SHIFT, Fa, Fb, t, u, v);
-	s = m | n | o | p;
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_disjoint_over_u (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint16_t a = s >> A_SHIFT;
-
-	if (s != 0x00)
-	{
-	    uint32_t d = *(dest + i);
-	    a = combine_disjoint_out_part (d >> A_SHIFT, a);
-	    UN8x4_MUL_UN8_ADD_UN8x4 (d, a, s);
-
-	    *(dest + i) = d;
-	}
-    }
-}
-
-static void
-combine_disjoint_in_u (pixman_implementation_t *imp,
-                       pixman_op_t              op,
-                       uint32_t *                dest,
-                       const uint32_t *          src,
-                       const uint32_t *          mask,
-                       int                      width)
-{
-    combine_disjoint_general_u (dest, src, mask, width, COMBINE_A_IN);
-}
-
-static void
-combine_disjoint_in_reverse_u (pixman_implementation_t *imp,
-                               pixman_op_t              op,
-                               uint32_t *                dest,
-                               const uint32_t *          src,
-                               const uint32_t *          mask,
-                               int                      width)
-{
-    combine_disjoint_general_u (dest, src, mask, width, COMBINE_B_IN);
-}
-
-static void
-combine_disjoint_out_u (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *                dest,
-                        const uint32_t *          src,
-                        const uint32_t *          mask,
-                        int                      width)
-{
-    combine_disjoint_general_u (dest, src, mask, width, COMBINE_A_OUT);
-}
-
-static void
-combine_disjoint_out_reverse_u (pixman_implementation_t *imp,
-                                pixman_op_t              op,
-                                uint32_t *                dest,
-                                const uint32_t *          src,
-                                const uint32_t *          mask,
-                                int                      width)
-{
-    combine_disjoint_general_u (dest, src, mask, width, COMBINE_B_OUT);
-}
-
-static void
-combine_disjoint_atop_u (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    combine_disjoint_general_u (dest, src, mask, width, COMBINE_A_ATOP);
-}
-
-static void
-combine_disjoint_atop_reverse_u (pixman_implementation_t *imp,
-                                 pixman_op_t              op,
-                                 uint32_t *                dest,
-                                 const uint32_t *          src,
-                                 const uint32_t *          mask,
-                                 int                      width)
-{
-    combine_disjoint_general_u (dest, src, mask, width, COMBINE_B_ATOP);
-}
-
-static void
-combine_disjoint_xor_u (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *                dest,
-                        const uint32_t *          src,
-                        const uint32_t *          mask,
-                        int                      width)
-{
-    combine_disjoint_general_u (dest, src, mask, width, COMBINE_XOR);
-}
-
-static void
-combine_conjoint_general_u (uint32_t *      dest,
-                            const uint32_t *src,
-                            const uint32_t *mask,
-                            int            width,
-                            uint8_t        combine)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = combine_mask (src, mask, i);
-	uint32_t d = *(dest + i);
-	uint32_t m, n, o, p;
-	uint16_t Fa, Fb, t, u, v;
-	uint8_t sa = s >> A_SHIFT;
-	uint8_t da = d >> A_SHIFT;
-
-	switch (combine & COMBINE_A)
-	{
-	default:
-	    Fa = 0;
-	    break;
-
-	case COMBINE_A_OUT:
-	    Fa = combine_conjoint_out_part (sa, da);
-	    break;
-
-	case COMBINE_A_IN:
-	    Fa = combine_conjoint_in_part (sa, da);
-	    break;
-
-	case COMBINE_A:
-	    Fa = MASK;
-	    break;
-	}
-
-	switch (combine & COMBINE_B)
-	{
-	default:
-	    Fb = 0;
-	    break;
-
-	case COMBINE_B_OUT:
-	    Fb = combine_conjoint_out_part (da, sa);
-	    break;
-
-	case COMBINE_B_IN:
-	    Fb = combine_conjoint_in_part (da, sa);
-	    break;
-
-	case COMBINE_B:
-	    Fb = MASK;
-	    break;
-	}
-
-	m = GENERIC (s, d, 0, Fa, Fb, t, u, v);
-	n = GENERIC (s, d, G_SHIFT, Fa, Fb, t, u, v);
-	o = GENERIC (s, d, R_SHIFT, Fa, Fb, t, u, v);
-	p = GENERIC (s, d, A_SHIFT, Fa, Fb, t, u, v);
-
-	s = m | n | o | p;
-
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_conjoint_over_u (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_A_OVER);
-}
-
-static void
-combine_conjoint_over_reverse_u (pixman_implementation_t *imp,
-                                 pixman_op_t              op,
-                                 uint32_t *                dest,
-                                 const uint32_t *          src,
-                                 const uint32_t *          mask,
-                                 int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_B_OVER);
-}
-
-static void
-combine_conjoint_in_u (pixman_implementation_t *imp,
-                       pixman_op_t              op,
-                       uint32_t *                dest,
-                       const uint32_t *          src,
-                       const uint32_t *          mask,
-                       int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_A_IN);
-}
-
-static void
-combine_conjoint_in_reverse_u (pixman_implementation_t *imp,
-                               pixman_op_t              op,
-                               uint32_t *                dest,
-                               const uint32_t *          src,
-                               const uint32_t *          mask,
-                               int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_B_IN);
-}
-
-static void
-combine_conjoint_out_u (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *                dest,
-                        const uint32_t *          src,
-                        const uint32_t *          mask,
-                        int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_A_OUT);
-}
-
-static void
-combine_conjoint_out_reverse_u (pixman_implementation_t *imp,
-                                pixman_op_t              op,
-                                uint32_t *                dest,
-                                const uint32_t *          src,
-                                const uint32_t *          mask,
-                                int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_B_OUT);
-}
-
-static void
-combine_conjoint_atop_u (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_A_ATOP);
-}
-
-static void
-combine_conjoint_atop_reverse_u (pixman_implementation_t *imp,
-                                 pixman_op_t              op,
-                                 uint32_t *                dest,
-                                 const uint32_t *          src,
-                                 const uint32_t *          mask,
-                                 int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_B_ATOP);
-}
-
-static void
-combine_conjoint_xor_u (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *                dest,
-                        const uint32_t *          src,
-                        const uint32_t *          mask,
-                        int                      width)
-{
-    combine_conjoint_general_u (dest, src, mask, width, COMBINE_XOR);
-}
-
-
-/* Component alpha combiners */
-
-static void
-combine_clear_ca (pixman_implementation_t *imp,
-                  pixman_op_t              op,
-                  uint32_t *                dest,
-                  const uint32_t *          src,
-                  const uint32_t *          mask,
-                  int                      width)
-{
-    memset (dest, 0, width * sizeof(uint32_t));
-}
-
-static void
-combine_src_ca (pixman_implementation_t *imp,
-                pixman_op_t              op,
-                uint32_t *                dest,
-                const uint32_t *          src,
-                const uint32_t *          mask,
-                int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-
-	combine_mask_value_ca (&s, &m);
-
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_over_ca (pixman_implementation_t *imp,
-                 pixman_op_t              op,
-                 uint32_t *                dest,
-                 const uint32_t *          src,
-                 const uint32_t *          mask,
-                 int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-	uint32_t a;
-
-	combine_mask_ca (&s, &m);
-
-	a = ~m;
-	if (a)
-	{
-	    uint32_t d = *(dest + i);
-	    UN8x4_MUL_UN8x4_ADD_UN8x4 (d, a, s);
-	    s = d;
-	}
-
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_over_reverse_ca (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t d = *(dest + i);
-	uint32_t a = ~d >> A_SHIFT;
-
-	if (a)
-	{
-	    uint32_t s = *(src + i);
-	    uint32_t m = *(mask + i);
-
-	    UN8x4_MUL_UN8x4 (s, m);
-	    UN8x4_MUL_UN8_ADD_UN8x4 (s, a, d);
-
-	    *(dest + i) = s;
-	}
-    }
-}
-
-static void
-combine_in_ca (pixman_implementation_t *imp,
-               pixman_op_t              op,
-               uint32_t *                dest,
-               const uint32_t *          src,
-               const uint32_t *          mask,
-               int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t d = *(dest + i);
-	uint16_t a = d >> A_SHIFT;
-	uint32_t s = 0;
-
-	if (a)
-	{
-	    uint32_t m = *(mask + i);
-
-	    s = *(src + i);
-	    combine_mask_value_ca (&s, &m);
-
-	    if (a != MASK)
-		UN8x4_MUL_UN8 (s, a);
-	}
-
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_in_reverse_ca (pixman_implementation_t *imp,
-                       pixman_op_t              op,
-                       uint32_t *                dest,
-                       const uint32_t *          src,
-                       const uint32_t *          mask,
-                       int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-	uint32_t a;
-
-	combine_mask_alpha_ca (&s, &m);
-
-	a = m;
-	if (a != ~0)
-	{
-	    uint32_t d = 0;
-
-	    if (a)
-	    {
-		d = *(dest + i);
-		UN8x4_MUL_UN8x4 (d, a);
-	    }
-
-	    *(dest + i) = d;
-	}
-    }
-}
-
-static void
-combine_out_ca (pixman_implementation_t *imp,
-                pixman_op_t              op,
-                uint32_t *                dest,
-                const uint32_t *          src,
-                const uint32_t *          mask,
-                int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t d = *(dest + i);
-	uint16_t a = ~d >> A_SHIFT;
-	uint32_t s = 0;
-
-	if (a)
-	{
-	    uint32_t m = *(mask + i);
-
-	    s = *(src + i);
-	    combine_mask_value_ca (&s, &m);
-
-	    if (a != MASK)
-		UN8x4_MUL_UN8 (s, a);
-	}
-
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_out_reverse_ca (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *                dest,
-                        const uint32_t *          src,
-                        const uint32_t *          mask,
-                        int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-	uint32_t a;
-
-	combine_mask_alpha_ca (&s, &m);
-
-	a = ~m;
-	if (a != ~0)
-	{
-	    uint32_t d = 0;
-
-	    if (a)
-	    {
-		d = *(dest + i);
-		UN8x4_MUL_UN8x4 (d, a);
-	    }
-
-	    *(dest + i) = d;
-	}
-    }
-}
-
-static void
-combine_atop_ca (pixman_implementation_t *imp,
-                 pixman_op_t              op,
-                 uint32_t *                dest,
-                 const uint32_t *          src,
-                 const uint32_t *          mask,
-                 int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t d = *(dest + i);
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-	uint32_t ad;
-	uint16_t as = d >> A_SHIFT;
-
-	combine_mask_ca (&s, &m);
-
-	ad = ~m;
-
-	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ad, s, as);
-
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_atop_reverse_ca (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t d = *(dest + i);
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-	uint32_t ad;
-	uint16_t as = ~d >> A_SHIFT;
-
-	combine_mask_ca (&s, &m);
-
-	ad = m;
-
-	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ad, s, as);
-
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_xor_ca (pixman_implementation_t *imp,
-                pixman_op_t              op,
-                uint32_t *                dest,
-                const uint32_t *          src,
-                const uint32_t *          mask,
-                int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t d = *(dest + i);
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-	uint32_t ad;
-	uint16_t as = ~d >> A_SHIFT;
-
-	combine_mask_ca (&s, &m);
-
-	ad = ~m;
-
-	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ad, s, as);
-
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_add_ca (pixman_implementation_t *imp,
-                pixman_op_t              op,
-                uint32_t *                dest,
-                const uint32_t *          src,
-                const uint32_t *          mask,
-                int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s = *(src + i);
-	uint32_t m = *(mask + i);
-	uint32_t d = *(dest + i);
-
-	combine_mask_value_ca (&s, &m);
-
-	UN8x4_ADD_UN8x4 (d, s);
-
-	*(dest + i) = d;
-    }
-}
-
-static void
-combine_saturate_ca (pixman_implementation_t *imp,
-                     pixman_op_t              op,
-                     uint32_t *                dest,
-                     const uint32_t *          src,
-                     const uint32_t *          mask,
-                     int                      width)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s, d;
-	uint16_t sa, sr, sg, sb, da;
-	uint16_t t, u, v;
-	uint32_t m, n, o, p;
-
-	d = *(dest + i);
-	s = *(src + i);
-	m = *(mask + i);
-
-	combine_mask_ca (&s, &m);
-
-	sa = (m >> A_SHIFT);
-	sr = (m >> R_SHIFT) & MASK;
-	sg = (m >> G_SHIFT) & MASK;
-	sb =  m             & MASK;
-	da = ~d >> A_SHIFT;
-
-	if (sb <= da)
-	    m = ADD (s, d, 0, t);
-	else
-	    m = GENERIC (s, d, 0, (da << G_SHIFT) / sb, MASK, t, u, v);
-
-	if (sg <= da)
-	    n = ADD (s, d, G_SHIFT, t);
-	else
-	    n = GENERIC (s, d, G_SHIFT, (da << G_SHIFT) / sg, MASK, t, u, v);
-
-	if (sr <= da)
-	    o = ADD (s, d, R_SHIFT, t);
-	else
-	    o = GENERIC (s, d, R_SHIFT, (da << G_SHIFT) / sr, MASK, t, u, v);
-
-	if (sa <= da)
-	    p = ADD (s, d, A_SHIFT, t);
-	else
-	    p = GENERIC (s, d, A_SHIFT, (da << G_SHIFT) / sa, MASK, t, u, v);
-
-	*(dest + i) = m | n | o | p;
-    }
-}
-
-static void
-combine_disjoint_general_ca (uint32_t *      dest,
-                             const uint32_t *src,
-                             const uint32_t *mask,
-                             int            width,
-                             uint8_t        combine)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s, d;
-	uint32_t m, n, o, p;
-	uint32_t Fa, Fb;
-	uint16_t t, u, v;
-	uint32_t sa;
-	uint8_t da;
-
-	s = *(src + i);
-	m = *(mask + i);
-	d = *(dest + i);
-	da = d >> A_SHIFT;
-
-	combine_mask_ca (&s, &m);
-
-	sa = m;
-
-	switch (combine & COMBINE_A)
-	{
-	default:
-	    Fa = 0;
-	    break;
-
-	case COMBINE_A_OUT:
-	    m = (uint32_t)combine_disjoint_out_part ((uint8_t) (sa >> 0), da);
-	    n = (uint32_t)combine_disjoint_out_part ((uint8_t) (sa >> G_SHIFT), da) << G_SHIFT;
-	    o = (uint32_t)combine_disjoint_out_part ((uint8_t) (sa >> R_SHIFT), da) << R_SHIFT;
-	    p = (uint32_t)combine_disjoint_out_part ((uint8_t) (sa >> A_SHIFT), da) << A_SHIFT;
-	    Fa = m | n | o | p;
-	    break;
-
-	case COMBINE_A_IN:
-	    m = (uint32_t)combine_disjoint_in_part ((uint8_t) (sa >> 0), da);
-	    n = (uint32_t)combine_disjoint_in_part ((uint8_t) (sa >> G_SHIFT), da) << G_SHIFT;
-	    o = (uint32_t)combine_disjoint_in_part ((uint8_t) (sa >> R_SHIFT), da) << R_SHIFT;
-	    p = (uint32_t)combine_disjoint_in_part ((uint8_t) (sa >> A_SHIFT), da) << A_SHIFT;
-	    Fa = m | n | o | p;
-	    break;
-
-	case COMBINE_A:
-	    Fa = ~0;
-	    break;
-	}
-
-	switch (combine & COMBINE_B)
-	{
-	default:
-	    Fb = 0;
-	    break;
-
-	case COMBINE_B_OUT:
-	    m = (uint32_t)combine_disjoint_out_part (da, (uint8_t) (sa >> 0));
-	    n = (uint32_t)combine_disjoint_out_part (da, (uint8_t) (sa >> G_SHIFT)) << G_SHIFT;
-	    o = (uint32_t)combine_disjoint_out_part (da, (uint8_t) (sa >> R_SHIFT)) << R_SHIFT;
-	    p = (uint32_t)combine_disjoint_out_part (da, (uint8_t) (sa >> A_SHIFT)) << A_SHIFT;
-	    Fb = m | n | o | p;
-	    break;
-
-	case COMBINE_B_IN:
-	    m = (uint32_t)combine_disjoint_in_part (da, (uint8_t) (sa >> 0));
-	    n = (uint32_t)combine_disjoint_in_part (da, (uint8_t) (sa >> G_SHIFT)) << G_SHIFT;
-	    o = (uint32_t)combine_disjoint_in_part (da, (uint8_t) (sa >> R_SHIFT)) << R_SHIFT;
-	    p = (uint32_t)combine_disjoint_in_part (da, (uint8_t) (sa >> A_SHIFT)) << A_SHIFT;
-	    Fb = m | n | o | p;
-	    break;
-
-	case COMBINE_B:
-	    Fb = ~0;
-	    break;
-	}
-	m = GENERIC (s, d, 0, GET_COMP (Fa, 0), GET_COMP (Fb, 0), t, u, v);
-	n = GENERIC (s, d, G_SHIFT, GET_COMP (Fa, G_SHIFT), GET_COMP (Fb, G_SHIFT), t, u, v);
-	o = GENERIC (s, d, R_SHIFT, GET_COMP (Fa, R_SHIFT), GET_COMP (Fb, R_SHIFT), t, u, v);
-	p = GENERIC (s, d, A_SHIFT, GET_COMP (Fa, A_SHIFT), GET_COMP (Fb, A_SHIFT), t, u, v);
-
-	s = m | n | o | p;
-
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_disjoint_over_ca (pixman_implementation_t *imp,
-                          pixman_op_t              op,
-                          uint32_t *                dest,
-                          const uint32_t *          src,
-                          const uint32_t *          mask,
-                          int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_A_OVER);
-}
-
-static void
-combine_disjoint_in_ca (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *                dest,
-                        const uint32_t *          src,
-                        const uint32_t *          mask,
-                        int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_A_IN);
-}
-
-static void
-combine_disjoint_in_reverse_ca (pixman_implementation_t *imp,
-                                pixman_op_t              op,
-                                uint32_t *                dest,
-                                const uint32_t *          src,
-                                const uint32_t *          mask,
-                                int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_B_IN);
-}
-
-static void
-combine_disjoint_out_ca (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_A_OUT);
-}
-
-static void
-combine_disjoint_out_reverse_ca (pixman_implementation_t *imp,
-                                 pixman_op_t              op,
-                                 uint32_t *                dest,
-                                 const uint32_t *          src,
-                                 const uint32_t *          mask,
-                                 int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_B_OUT);
-}
-
-static void
-combine_disjoint_atop_ca (pixman_implementation_t *imp,
-                          pixman_op_t              op,
-                          uint32_t *                dest,
-                          const uint32_t *          src,
-                          const uint32_t *          mask,
-                          int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_A_ATOP);
-}
-
-static void
-combine_disjoint_atop_reverse_ca (pixman_implementation_t *imp,
-                                  pixman_op_t              op,
-                                  uint32_t *                dest,
-                                  const uint32_t *          src,
-                                  const uint32_t *          mask,
-                                  int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_B_ATOP);
-}
-
-static void
-combine_disjoint_xor_ca (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    combine_disjoint_general_ca (dest, src, mask, width, COMBINE_XOR);
-}
-
-static void
-combine_conjoint_general_ca (uint32_t *      dest,
-                             const uint32_t *src,
-                             const uint32_t *mask,
-                             int            width,
-                             uint8_t        combine)
-{
-    int i;
-
-    for (i = 0; i < width; ++i)
-    {
-	uint32_t s, d;
-	uint32_t m, n, o, p;
-	uint32_t Fa, Fb;
-	uint16_t t, u, v;
-	uint32_t sa;
-	uint8_t da;
-
-	s = *(src + i);
-	m = *(mask + i);
-	d = *(dest + i);
-	da = d >> A_SHIFT;
-
-	combine_mask_ca (&s, &m);
-
-	sa = m;
-
-	switch (combine & COMBINE_A)
-	{
-	default:
-	    Fa = 0;
-	    break;
-
-	case COMBINE_A_OUT:
-	    m = (uint32_t)combine_conjoint_out_part ((uint8_t) (sa >> 0), da);
-	    n = (uint32_t)combine_conjoint_out_part ((uint8_t) (sa >> G_SHIFT), da) << G_SHIFT;
-	    o = (uint32_t)combine_conjoint_out_part ((uint8_t) (sa >> R_SHIFT), da) << R_SHIFT;
-	    p = (uint32_t)combine_conjoint_out_part ((uint8_t) (sa >> A_SHIFT), da) << A_SHIFT;
-	    Fa = m | n | o | p;
-	    break;
-
-	case COMBINE_A_IN:
-	    m = (uint32_t)combine_conjoint_in_part ((uint8_t) (sa >> 0), da);
-	    n = (uint32_t)combine_conjoint_in_part ((uint8_t) (sa >> G_SHIFT), da) << G_SHIFT;
-	    o = (uint32_t)combine_conjoint_in_part ((uint8_t) (sa >> R_SHIFT), da) << R_SHIFT;
-	    p = (uint32_t)combine_conjoint_in_part ((uint8_t) (sa >> A_SHIFT), da) << A_SHIFT;
-	    Fa = m | n | o | p;
-	    break;
-
-	case COMBINE_A:
-	    Fa = ~0;
-	    break;
-	}
-
-	switch (combine & COMBINE_B)
-	{
-	default:
-	    Fb = 0;
-	    break;
-
-	case COMBINE_B_OUT:
-	    m = (uint32_t)combine_conjoint_out_part (da, (uint8_t) (sa >> 0));
-	    n = (uint32_t)combine_conjoint_out_part (da, (uint8_t) (sa >> G_SHIFT)) << G_SHIFT;
-	    o = (uint32_t)combine_conjoint_out_part (da, (uint8_t) (sa >> R_SHIFT)) << R_SHIFT;
-	    p = (uint32_t)combine_conjoint_out_part (da, (uint8_t) (sa >> A_SHIFT)) << A_SHIFT;
-	    Fb = m | n | o | p;
-	    break;
-
-	case COMBINE_B_IN:
-	    m = (uint32_t)combine_conjoint_in_part (da, (uint8_t) (sa >> 0));
-	    n = (uint32_t)combine_conjoint_in_part (da, (uint8_t) (sa >> G_SHIFT)) << G_SHIFT;
-	    o = (uint32_t)combine_conjoint_in_part (da, (uint8_t) (sa >> R_SHIFT)) << R_SHIFT;
-	    p = (uint32_t)combine_conjoint_in_part (da, (uint8_t) (sa >> A_SHIFT)) << A_SHIFT;
-	    Fb = m | n | o | p;
-	    break;
-
-	case COMBINE_B:
-	    Fb = ~0;
-	    break;
-	}
-	m = GENERIC (s, d, 0, GET_COMP (Fa, 0), GET_COMP (Fb, 0), t, u, v);
-	n = GENERIC (s, d, G_SHIFT, GET_COMP (Fa, G_SHIFT), GET_COMP (Fb, G_SHIFT), t, u, v);
-	o = GENERIC (s, d, R_SHIFT, GET_COMP (Fa, R_SHIFT), GET_COMP (Fb, R_SHIFT), t, u, v);
-	p = GENERIC (s, d, A_SHIFT, GET_COMP (Fa, A_SHIFT), GET_COMP (Fb, A_SHIFT), t, u, v);
-
-	s = m | n | o | p;
-
-	*(dest + i) = s;
-    }
-}
-
-static void
-combine_conjoint_over_ca (pixman_implementation_t *imp,
-                          pixman_op_t              op,
-                          uint32_t *                dest,
-                          const uint32_t *          src,
-                          const uint32_t *          mask,
-                          int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_A_OVER);
-}
-
-static void
-combine_conjoint_over_reverse_ca (pixman_implementation_t *imp,
-                                  pixman_op_t              op,
-                                  uint32_t *                dest,
-                                  const uint32_t *          src,
-                                  const uint32_t *          mask,
-                                  int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_B_OVER);
-}
-
-static void
-combine_conjoint_in_ca (pixman_implementation_t *imp,
-                        pixman_op_t              op,
-                        uint32_t *                dest,
-                        const uint32_t *          src,
-                        const uint32_t *          mask,
-                        int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_A_IN);
-}
-
-static void
-combine_conjoint_in_reverse_ca (pixman_implementation_t *imp,
-                                pixman_op_t              op,
-                                uint32_t *                dest,
-                                const uint32_t *          src,
-                                const uint32_t *          mask,
-                                int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_B_IN);
-}
-
-static void
-combine_conjoint_out_ca (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_A_OUT);
-}
-
-static void
-combine_conjoint_out_reverse_ca (pixman_implementation_t *imp,
-                                 pixman_op_t              op,
-                                 uint32_t *                dest,
-                                 const uint32_t *          src,
-                                 const uint32_t *          mask,
-                                 int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_B_OUT);
-}
-
-static void
-combine_conjoint_atop_ca (pixman_implementation_t *imp,
-                          pixman_op_t              op,
-                          uint32_t *                dest,
-                          const uint32_t *          src,
-                          const uint32_t *          mask,
-                          int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_A_ATOP);
-}
-
-static void
-combine_conjoint_atop_reverse_ca (pixman_implementation_t *imp,
-                                  pixman_op_t              op,
-                                  uint32_t *                dest,
-                                  const uint32_t *          src,
-                                  const uint32_t *          mask,
-                                  int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_B_ATOP);
-}
-
-static void
-combine_conjoint_xor_ca (pixman_implementation_t *imp,
-                         pixman_op_t              op,
-                         uint32_t *                dest,
-                         const uint32_t *          src,
-                         const uint32_t *          mask,
-                         int                      width)
-{
-    combine_conjoint_general_ca (dest, src, mask, width, COMBINE_XOR);
-}
-
-void
-_pixman_setup_combiner_functions_32 (pixman_implementation_t *imp)
-{
-    /* Unified alpha */
-    imp->combine_32[PIXMAN_OP_CLEAR] = combine_clear;
-    imp->combine_32[PIXMAN_OP_SRC] = combine_src_u;
-    imp->combine_32[PIXMAN_OP_DST] = combine_dst;
-    imp->combine_32[PIXMAN_OP_OVER] = combine_over_u;
-    imp->combine_32[PIXMAN_OP_OVER_REVERSE] = combine_over_reverse_u;
-    imp->combine_32[PIXMAN_OP_IN] = combine_in_u;
-    imp->combine_32[PIXMAN_OP_IN_REVERSE] = combine_in_reverse_u;
-    imp->combine_32[PIXMAN_OP_OUT] = combine_out_u;
-    imp->combine_32[PIXMAN_OP_OUT_REVERSE] = combine_out_reverse_u;
-    imp->combine_32[PIXMAN_OP_ATOP] = combine_atop_u;
-    imp->combine_32[PIXMAN_OP_ATOP_REVERSE] = combine_atop_reverse_u;
-    imp->combine_32[PIXMAN_OP_XOR] = combine_xor_u;
-    imp->combine_32[PIXMAN_OP_ADD] = combine_add_u;
-    imp->combine_32[PIXMAN_OP_SATURATE] = combine_saturate_u;
-
-    /* Disjoint, unified */
-    imp->combine_32[PIXMAN_OP_DISJOINT_CLEAR] = combine_clear;
-    imp->combine_32[PIXMAN_OP_DISJOINT_SRC] = combine_src_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_DST] = combine_dst;
-    imp->combine_32[PIXMAN_OP_DISJOINT_OVER] = combine_disjoint_over_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_OVER_REVERSE] = combine_saturate_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_IN] = combine_disjoint_in_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_IN_REVERSE] = combine_disjoint_in_reverse_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_OUT] = combine_disjoint_out_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_OUT_REVERSE] = combine_disjoint_out_reverse_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_ATOP] = combine_disjoint_atop_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_ATOP_REVERSE] = combine_disjoint_atop_reverse_u;
-    imp->combine_32[PIXMAN_OP_DISJOINT_XOR] = combine_disjoint_xor_u;
-
-    /* Conjoint, unified */
-    imp->combine_32[PIXMAN_OP_CONJOINT_CLEAR] = combine_clear;
-    imp->combine_32[PIXMAN_OP_CONJOINT_SRC] = combine_src_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_DST] = combine_dst;
-    imp->combine_32[PIXMAN_OP_CONJOINT_OVER] = combine_conjoint_over_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_OVER_REVERSE] = combine_conjoint_over_reverse_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_IN] = combine_conjoint_in_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_IN_REVERSE] = combine_conjoint_in_reverse_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_OUT] = combine_conjoint_out_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_OUT_REVERSE] = combine_conjoint_out_reverse_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_ATOP] = combine_conjoint_atop_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_ATOP_REVERSE] = combine_conjoint_atop_reverse_u;
-    imp->combine_32[PIXMAN_OP_CONJOINT_XOR] = combine_conjoint_xor_u;
-
-    imp->combine_32[PIXMAN_OP_MULTIPLY] = combine_multiply_u;
-    imp->combine_32[PIXMAN_OP_SCREEN] = combine_screen_u;
-    imp->combine_32[PIXMAN_OP_OVERLAY] = combine_overlay_u;
-    imp->combine_32[PIXMAN_OP_DARKEN] = combine_darken_u;
-    imp->combine_32[PIXMAN_OP_LIGHTEN] = combine_lighten_u;
-    imp->combine_32[PIXMAN_OP_COLOR_DODGE] = combine_color_dodge_u;
-    imp->combine_32[PIXMAN_OP_COLOR_BURN] = combine_color_burn_u;
-    imp->combine_32[PIXMAN_OP_HARD_LIGHT] = combine_hard_light_u;
-    imp->combine_32[PIXMAN_OP_SOFT_LIGHT] = combine_soft_light_u;
-    imp->combine_32[PIXMAN_OP_DIFFERENCE] = combine_difference_u;
-    imp->combine_32[PIXMAN_OP_EXCLUSION] = combine_exclusion_u;
-    imp->combine_32[PIXMAN_OP_HSL_HUE] = combine_hsl_hue_u;
-    imp->combine_32[PIXMAN_OP_HSL_SATURATION] = combine_hsl_saturation_u;
-    imp->combine_32[PIXMAN_OP_HSL_COLOR] = combine_hsl_color_u;
-    imp->combine_32[PIXMAN_OP_HSL_LUMINOSITY] = combine_hsl_luminosity_u;
-
-    /* Component alpha combiners */
-    imp->combine_32_ca[PIXMAN_OP_CLEAR] = combine_clear_ca;
-    imp->combine_32_ca[PIXMAN_OP_SRC] = combine_src_ca;
-    /* dest */
-    imp->combine_32_ca[PIXMAN_OP_OVER] = combine_over_ca;
-    imp->combine_32_ca[PIXMAN_OP_OVER_REVERSE] = combine_over_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_IN] = combine_in_ca;
-    imp->combine_32_ca[PIXMAN_OP_IN_REVERSE] = combine_in_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_OUT] = combine_out_ca;
-    imp->combine_32_ca[PIXMAN_OP_OUT_REVERSE] = combine_out_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_ATOP] = combine_atop_ca;
-    imp->combine_32_ca[PIXMAN_OP_ATOP_REVERSE] = combine_atop_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_XOR] = combine_xor_ca;
-    imp->combine_32_ca[PIXMAN_OP_ADD] = combine_add_ca;
-    imp->combine_32_ca[PIXMAN_OP_SATURATE] = combine_saturate_ca;
-
-    /* Disjoint CA */
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_CLEAR] = combine_clear_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_SRC] = combine_src_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_DST] = combine_dst;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_OVER] = combine_disjoint_over_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_OVER_REVERSE] = combine_saturate_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_IN] = combine_disjoint_in_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_IN_REVERSE] = combine_disjoint_in_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_OUT] = combine_disjoint_out_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_OUT_REVERSE] = combine_disjoint_out_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_ATOP] = combine_disjoint_atop_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_ATOP_REVERSE] = combine_disjoint_atop_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_DISJOINT_XOR] = combine_disjoint_xor_ca;
-
-    /* Conjoint CA */
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_CLEAR] = combine_clear_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_SRC] = combine_src_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_DST] = combine_dst;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_OVER] = combine_conjoint_over_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_OVER_REVERSE] = combine_conjoint_over_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_IN] = combine_conjoint_in_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_IN_REVERSE] = combine_conjoint_in_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_OUT] = combine_conjoint_out_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_OUT_REVERSE] = combine_conjoint_out_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_ATOP] = combine_conjoint_atop_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_ATOP_REVERSE] = combine_conjoint_atop_reverse_ca;
-    imp->combine_32_ca[PIXMAN_OP_CONJOINT_XOR] = combine_conjoint_xor_ca;
-
-    imp->combine_32_ca[PIXMAN_OP_MULTIPLY] = combine_multiply_ca;
-    imp->combine_32_ca[PIXMAN_OP_SCREEN] = combine_screen_ca;
-    imp->combine_32_ca[PIXMAN_OP_OVERLAY] = combine_overlay_ca;
-    imp->combine_32_ca[PIXMAN_OP_DARKEN] = combine_darken_ca;
-    imp->combine_32_ca[PIXMAN_OP_LIGHTEN] = combine_lighten_ca;
-    imp->combine_32_ca[PIXMAN_OP_COLOR_DODGE] = combine_color_dodge_ca;
-    imp->combine_32_ca[PIXMAN_OP_COLOR_BURN] = combine_color_burn_ca;
-    imp->combine_32_ca[PIXMAN_OP_HARD_LIGHT] = combine_hard_light_ca;
-    imp->combine_32_ca[PIXMAN_OP_SOFT_LIGHT] = combine_soft_light_ca;
-    imp->combine_32_ca[PIXMAN_OP_DIFFERENCE] = combine_difference_ca;
-    imp->combine_32_ca[PIXMAN_OP_EXCLUSION] = combine_exclusion_ca;
-
-    /* It is not clear that these make sense, so make them noops for now */
-    imp->combine_32_ca[PIXMAN_OP_HSL_HUE] = combine_dst;
-    imp->combine_32_ca[PIXMAN_OP_HSL_SATURATION] = combine_dst;
-    imp->combine_32_ca[PIXMAN_OP_HSL_COLOR] = combine_dst;
-    imp->combine_32_ca[PIXMAN_OP_HSL_LUMINOSITY] = combine_dst;
-}
diff --git a/source/libs/pixman/pixman-0.32.8-PATCHES/ChangeLog b/source/libs/pixman/pixman-src-PATCHES/ChangeLog
old mode 100755
new mode 100644
similarity index 87%
rename from source/libs/pixman/pixman-0.32.8-PATCHES/ChangeLog
rename to source/libs/pixman/pixman-src-PATCHES/ChangeLog
index d77828604..39dcd76ca
--- a/source/libs/pixman/pixman-0.32.8-PATCHES/ChangeLog
+++ b/source/libs/pixman/pixman-src-PATCHES/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-04  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
+
+	Import pixman-0.34.0.
+	* patch-01-hide-symbols: Adapted.
+
 2015-09-26  Peter Breitenlohner  <peb@mppmu.mpg.de>
 
 	Import pixman-0.32.8.
diff --git a/source/libs/pixman/pixman-0.32.8-PATCHES/TL-Changes b/source/libs/pixman/pixman-src-PATCHES/TL-Changes
old mode 100755
new mode 100644
similarity index 77%
rename from source/libs/pixman/pixman-0.32.8-PATCHES/TL-Changes
rename to source/libs/pixman/pixman-src-PATCHES/TL-Changes
index 9207296fc..7df6c0ac6
--- a/source/libs/pixman/pixman-0.32.8-PATCHES/TL-Changes
+++ b/source/libs/pixman/pixman-src-PATCHES/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the pixman-0.32.6/ tree as obtained from:
+Changes applied to the pixman-0.34.0/ tree as obtained from:
 	http://cairographics.org/releases/
 
 Removed:
@@ -7,6 +7,7 @@ Removed:
 	config.guess
 	config.sub
 	configure
+	compile
 	depcomp
 	install-sh
 	ltmain.sh
diff --git a/source/libs/pixman/pixman-0.32.8-PATCHES/patch-01-hide-symbols b/source/libs/pixman/pixman-src-PATCHES/patch-01-hide-symbols
old mode 100755
new mode 100644
similarity index 55%
rename from source/libs/pixman/pixman-0.32.8-PATCHES/patch-01-hide-symbols
rename to source/libs/pixman/pixman-src-PATCHES/patch-01-hide-symbols
index 088231f47..62cc5f039
--- a/source/libs/pixman/pixman-0.32.8-PATCHES/patch-01-hide-symbols
+++ b/source/libs/pixman/pixman-src-PATCHES/patch-01-hide-symbols
@@ -1,6 +1,6 @@
-diff -ur pixman-0.32.8.orig/pixman/pixman-compiler.h pixman-0.32.8/pixman/pixman-compiler.h
---- pixman-0.32.8.orig/pixman/pixman-compiler.h	2015-06-30 11:48:31.000000000 +0200
-+++ pixman-0.32.8/pixman/pixman-compiler.h	2015-09-26 18:58:53.409947954 +0200
+diff -ur pixman-0.34.0.orig/pixman/pixman-compiler.h pixman-0.34.0/pixman/pixman-compiler.h
+--- pixman-0.34.0.orig/pixman/pixman-compiler.h	Tue Jun 30 18:48:31 2015
++++ pixman-0.34.0/pixman/pixman-compiler.h	Thu Feb 04 16:56:27 2016
 @@ -91,7 +91,7 @@
  
  /* GCC visibility */
diff --git a/source/libs/pixman/pixman-0.32.8/AUTHORS b/source/libs/pixman/pixman-src/AUTHORS
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/AUTHORS
rename to source/libs/pixman/pixman-src/AUTHORS
diff --git a/source/libs/pixman/pixman-0.32.8/COPYING b/source/libs/pixman/pixman-src/COPYING
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/COPYING
rename to source/libs/pixman/pixman-src/COPYING
diff --git a/source/libs/pixman/pixman-0.32.8/ChangeLog b/source/libs/pixman/pixman-src/ChangeLog
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/ChangeLog
rename to source/libs/pixman/pixman-src/ChangeLog
diff --git a/source/libs/pixman/pixman-0.32.8/INSTALL b/source/libs/pixman/pixman-src/INSTALL
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/INSTALL
rename to source/libs/pixman/pixman-src/INSTALL
diff --git a/source/libs/pixman/pixman-0.32.8/Makefile.am b/source/libs/pixman/pixman-src/Makefile.am
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/Makefile.am
rename to source/libs/pixman/pixman-src/Makefile.am
diff --git a/source/libs/pixman/pixman-0.32.8/Makefile.win32 b/source/libs/pixman/pixman-src/Makefile.win32
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/Makefile.win32
rename to source/libs/pixman/pixman-src/Makefile.win32
diff --git a/source/libs/pixman/pixman-0.32.8/Makefile.win32.common b/source/libs/pixman/pixman-src/Makefile.win32.common
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/Makefile.win32.common
rename to source/libs/pixman/pixman-src/Makefile.win32.common
diff --git a/source/libs/pixman/pixman-0.32.8/NEWS b/source/libs/pixman/pixman-src/NEWS
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/NEWS
rename to source/libs/pixman/pixman-src/NEWS
diff --git a/source/libs/pixman/pixman-0.32.8/README b/source/libs/pixman/pixman-src/README
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/README
rename to source/libs/pixman/pixman-src/README
diff --git a/source/libs/pixman/pixman-0.32.8/config.h.in b/source/libs/pixman/pixman-src/config.h.in
old mode 100755
new mode 100644
similarity index 96%
rename from source/libs/pixman/pixman-0.32.8/config.h.in
rename to source/libs/pixman/pixman-src/config.h.in
index 17d825034..c707dd52c
--- a/source/libs/pixman/pixman-0.32.8/config.h.in
+++ b/source/libs/pixman/pixman-src/config.h.in
@@ -12,6 +12,9 @@
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
+/* Whether we have FE_DIVBYZERO */
+#undef HAVE_FEDIVBYZERO
+
 /* Whether we have feenableexcept() */
 #undef HAVE_FEENABLEEXCEPT
 
@@ -84,8 +87,7 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
 /* Name of package */
diff --git a/source/libs/pixman/pixman-0.32.8/configure.ac b/source/libs/pixman/pixman-src/configure.ac
old mode 100755
new mode 100644
similarity index 97%
rename from source/libs/pixman/pixman-0.32.8/configure.ac
rename to source/libs/pixman/pixman-src/configure.ac
index 97494e693..156edfbf3
--- a/source/libs/pixman/pixman-0.32.8/configure.ac
+++ b/source/libs/pixman/pixman-src/configure.ac
@@ -53,8 +53,8 @@ AC_PREREQ([2.57])
 #
 
 m4_define([pixman_major], 0)
-m4_define([pixman_minor], 32)
-m4_define([pixman_micro], 8)
+m4_define([pixman_minor], 34)
+m4_define([pixman_micro], 0)
 
 m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro])
 
@@ -184,6 +184,7 @@ AC_SUBST(LT_VERSION_INFO)
 
 PIXMAN_CHECK_CFLAG([-Wall])
 PIXMAN_CHECK_CFLAG([-Wdeclaration-after-statement])
+PIXMAN_CHECK_CFLAG([-Wno-unused-local-typedefs])
 PIXMAN_CHECK_CFLAG([-fno-strict-aliasing])
 
 dnl =========================================================================
@@ -346,15 +347,27 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #error "Need GCC >= 3.4 for MMX intrinsics"
 #endif
 #include <mmintrin.h>
+#include <stdint.h>
+
+/* Check support for block expressions */
+#define _mm_shuffle_pi16(A, N)						\
+    ({									\
+	__m64 ret;							\
+									\
+	/* Some versions of clang will choke on K */ 			\
+	asm ("pshufw %2, %1, %0\n\t"					\
+	     : "=y" (ret)						\
+	     : "y" (A), "K" ((const int8_t)N)				\
+	);								\
+									\
+	ret;								\
+    })
+
 int main () {
     __m64 v = _mm_cvtsi32_si64 (1);
     __m64 w;
 
-    /* Some versions of clang will choke on K */
-    asm ("pshufw %2, %1, %0\n\t"
-        : "=y" (w)
-        : "y" (v), "K" (5)
-    );
+    w = _mm_shuffle_pi16(v, 5);
 
     /* Some versions of clang will choke on this */
     asm ("pmulhuw %1, %0\n\t"
@@ -416,10 +429,11 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #include <mmintrin.h>
 #include <xmmintrin.h>
 #include <emmintrin.h>
+int param;
 int main () {
-    __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
+    __m128i a = _mm_set1_epi32 (param), b = _mm_set1_epi32 (param + 1), c;
 	c = _mm_xor_si128 (a, b);
-    return 0;
+    return _mm_cvtsi128_si32(c);
 }]])], have_sse2_intrinsics=yes)
 CFLAGS=$xserver_save_CFLAGS
 
@@ -460,10 +474,11 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #include <xmmintrin.h>
 #include <emmintrin.h>
 #include <tmmintrin.h>
+int param;
 int main () {
-    __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
+    __m128i a = _mm_set1_epi32 (param), b = _mm_set1_epi32 (param + 1), c;
     c = _mm_maddubs_epi16 (a, b);
-    return 0;
+    return _mm_cvtsi128_si32(c);
 }]])], have_ssse3_intrinsics=yes)
 CFLAGS=$xserver_save_CFLAGS
 
@@ -890,6 +905,11 @@ if test x$have_feenableexcept = xyes; then
    AC_DEFINE(HAVE_FEENABLEEXCEPT, 1, [Whether we have feenableexcept()])
 fi
 
+AC_CHECK_DECL([FE_DIVBYZERO],
+	[AC_DEFINE(HAVE_FEDIVBYZERO, 1, [Whether we have FE_DIVBYZERO])],
+	[],
+	[[#include <fenv.h>]])
+
 AC_CHECK_FUNC(gettimeofday, have_gettimeofday=yes, have_gettimeofday=no)
 AC_CHECK_HEADER(sys/time.h, have_sys_time_h=yes, have_sys_time_h=no)
 if test x$have_gettimeofday = xyes && test x$have_sys_time_h = xyes; then
diff --git a/source/libs/pixman/pixman-0.32.8/pixman-1-uninstalled.pc.in b/source/libs/pixman/pixman-src/pixman-1-uninstalled.pc.in
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman-1-uninstalled.pc.in
rename to source/libs/pixman/pixman-src/pixman-1-uninstalled.pc.in
diff --git a/source/libs/pixman/pixman-0.32.8/pixman-1.pc.in b/source/libs/pixman/pixman-src/pixman-1.pc.in
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman-1.pc.in
rename to source/libs/pixman/pixman-src/pixman-1.pc.in
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/Makefile.am b/source/libs/pixman/pixman-src/pixman/Makefile.am
old mode 100755
new mode 100644
similarity index 98%
rename from source/libs/pixman/pixman-0.32.8/pixman/Makefile.am
rename to source/libs/pixman/pixman-src/pixman/Makefile.am
index b376d9aeb..581b6f61e
--- a/source/libs/pixman/pixman-0.32.8/pixman/Makefile.am
+++ b/source/libs/pixman/pixman-src/pixman/Makefile.am
@@ -72,6 +72,7 @@ libpixman_arm_simd_la_SOURCES = \
 	pixman-arm-common.h	\
 	pixman-arm-simd-asm.S   \
 	pixman-arm-simd-asm-scaled.S \
+	pixman-arm-asm.h	\
 	pixman-arm-simd-asm.h
 libpixman_1_la_LIBADD += libpixman-arm-simd.la
 
@@ -86,6 +87,7 @@ libpixman_arm_neon_la_SOURCES = \
         pixman-arm-common.h	\
         pixman-arm-neon-asm.S	\
 		pixman-arm-neon-asm-bilinear.S \
+        pixman-arm-asm.h	\
         pixman-arm-neon-asm.h
 libpixman_1_la_LIBADD += libpixman-arm-neon.la
 
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/Makefile.sources b/source/libs/pixman/pixman-src/pixman/Makefile.sources
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/Makefile.sources
rename to source/libs/pixman/pixman-src/pixman/Makefile.sources
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/Makefile.win32 b/source/libs/pixman/pixman-src/pixman/Makefile.win32
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/Makefile.win32
rename to source/libs/pixman/pixman-src/pixman/Makefile.win32
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/loongson-mmintrin.h b/source/libs/pixman/pixman-src/pixman/loongson-mmintrin.h
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/loongson-mmintrin.h
rename to source/libs/pixman/pixman-src/pixman/loongson-mmintrin.h
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-access-accessors.c b/source/libs/pixman/pixman-src/pixman/pixman-access-accessors.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-access-accessors.c
rename to source/libs/pixman/pixman-src/pixman/pixman-access-accessors.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-access.c b/source/libs/pixman/pixman-src/pixman/pixman-access.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-access.c
rename to source/libs/pixman/pixman-src/pixman/pixman-access.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-accessor.h b/source/libs/pixman/pixman-src/pixman/pixman-accessor.h
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-accessor.h
rename to source/libs/pixman/pixman-src/pixman/pixman-accessor.h
diff --git a/source/libs/pixman/pixman-src/pixman/pixman-arm-asm.h b/source/libs/pixman/pixman-src/pixman/pixman-arm-asm.h
new file mode 100644
index 000000000..ee7854108
--- /dev/null
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-asm.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright © 2008 Mozilla Corporation
+ * Copyright © 2010 Nokia Corporation
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Mozilla Corporation not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Mozilla Corporation makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ *
+ * Author:  Jeff Muizelaar (jeff@infidigm.net)
+ *
+ */
+
+/* Supplementary macro for setting function attributes */
+.macro pixman_asm_function fname
+	.func fname
+	.global fname
+#ifdef __ELF__
+	.hidden fname
+	.type fname, %function
+#endif
+fname:
+.endm
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-common.h b/source/libs/pixman/pixman-src/pixman/pixman-arm-common.h
old mode 100755
new mode 100644
similarity index 97%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-common.h
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-common.h
index 3a7cb2bef..953768830
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-common.h
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-common.h
@@ -266,13 +266,6 @@ FAST_NEAREST_MAINLOOP (cputype##_##name##_normal_##op,                        \
                        scaled_nearest_scanline_##cputype##_##name##_##op,     \
                        src_type, dst_type, NORMAL)
 
-/* Provide entries for the fast path table */
-#define PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH(op,s,d,func)                      \
-    SIMPLE_NEAREST_FAST_PATH_COVER (op,s,d,func),                             \
-    SIMPLE_NEAREST_FAST_PATH_NONE (op,s,d,func),                              \
-    SIMPLE_NEAREST_FAST_PATH_PAD (op,s,d,func),                               \
-    SIMPLE_NEAREST_FAST_PATH_NORMAL (op,s,d,func)
-
 #define PIXMAN_ARM_BIND_SCALED_NEAREST_SRC_A8_DST(flags, cputype, name, op,   \
                                                   src_type, dst_type)         \
 void                                                                          \
@@ -318,9 +311,7 @@ FAST_NEAREST_MAINLOOP_COMMON (cputype##_##name##_normal_##op,                 \
 
 /* Provide entries for the fast path table */
 #define PIXMAN_ARM_SIMPLE_NEAREST_A8_MASK_FAST_PATH(op,s,d,func)              \
-    SIMPLE_NEAREST_A8_MASK_FAST_PATH_COVER (op,s,d,func),                     \
-    SIMPLE_NEAREST_A8_MASK_FAST_PATH_NONE (op,s,d,func),                      \
-    SIMPLE_NEAREST_A8_MASK_FAST_PATH_PAD (op,s,d,func),                       \
+    SIMPLE_NEAREST_A8_MASK_FAST_PATH (op,s,d,func),                           \
     SIMPLE_NEAREST_A8_MASK_FAST_PATH_NORMAL (op,s,d,func)
 
 /*****************************************************************************/
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm-bilinear.S b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm-bilinear.S
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm-bilinear.S
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm-bilinear.S
index e37b5c298..0fd92d61c
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm-bilinear.S
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm-bilinear.S
@@ -65,23 +65,13 @@
 .p2align 2
 
 #include "pixman-private.h"
+#include "pixman-arm-asm.h"
 #include "pixman-arm-neon-asm.h"
 
 /*
  * Bilinear macros from pixman-arm-neon-asm.S
  */
 
-/* Supplementary macro for setting function attributes */
-.macro pixman_asm_function fname
-    .func fname
-    .global fname
-#ifdef __ELF__
-    .hidden fname
-    .type fname, %function
-#endif
-fname:
-.endm
-
 /*
  * Bilinear scaling support code which tries to provide pixel fetching, color
  * format conversion, and interpolation as separate macros which can be used
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm.S b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm.S
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm.S
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm.S
index 187197dc3..7e949a38f
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm.S
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm.S
@@ -50,6 +50,7 @@
     .p2align 2
 
 #include "pixman-private.h"
+#include "pixman-arm-asm.h"
 #include "pixman-arm-neon-asm.h"
 
 /* Global configuration options and preferences */
@@ -2830,17 +2831,6 @@ generate_composite_function_nearest_scanline \
 
 /******************************************************************************/
 
-/* Supplementary macro for setting function attributes */
-.macro pixman_asm_function fname
-    .func fname
-    .global fname
-#ifdef __ELF__
-    .hidden fname
-    .type fname, %function
-#endif
-fname:
-.endm
-
 /*
  * Bilinear scaling support code which tries to provide pixel fetching, color
  * format conversion, and interpolation as separate macros which can be used
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm.h b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm.h
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm.h
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm.h
index d0d92d74c..bdcf6a9d4
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon-asm.h
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon-asm.h
@@ -631,14 +631,8 @@ local skip1
                                    src_basereg_   = 0, \
                                    mask_basereg_  = 24
 
-    .func fname
-    .global fname
-    /* For ELF format also set function visibility to hidden */
-#ifdef __ELF__
-    .hidden fname
-    .type fname, %function
-#endif
-fname:
+    pixman_asm_function fname
+
     push        {r4-r12, lr}        /* save all registers */
 
 /*
@@ -945,14 +939,8 @@ fname:
                                                    src_basereg_   = 0, \
                                                    mask_basereg_  = 24
 
-    .func fname
-    .global fname
-    /* For ELF format also set function visibility to hidden */
-#ifdef __ELF__
-    .hidden fname
-    .type fname, %function
-#endif
-fname:
+    pixman_asm_function fname
+
     .set PREFETCH_TYPE_CURRENT, PREFETCH_TYPE_NONE
 /*
  * Make some macro arguments globally visible and accessible
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon.c b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon.c
old mode 100755
new mode 100644
similarity index 96%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon.c
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-neon.c
index 60e9c78d2..be761c965
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-neon.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-neon.c
@@ -362,21 +362,21 @@ static const pixman_fast_path_t arm_neon_fast_paths[] =
     PIXMAN_STD_FAST_PATH (OUT_REVERSE,  a8,    null, a8r8g8b8, neon_composite_out_reverse_8_8888),
     PIXMAN_STD_FAST_PATH (OUT_REVERSE,  a8,    null, a8b8g8r8, neon_composite_out_reverse_8_8888),
 
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, neon_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, neon_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, neon_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, neon_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, neon_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, neon_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, neon_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, neon_8888_8888),
 
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, r5g6b5, neon_8888_0565),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, b5g6r5, neon_8888_0565),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, r5g6b5, neon_8888_0565),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, b5g6r5, neon_8888_0565),
 
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, r5g6b5, neon_8888_0565),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, r5g6b5, neon_8888_0565),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, b5g6r5, neon_8888_0565),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, b5g6r5, neon_8888_0565),
+    SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, r5g6b5, neon_8888_0565),
+    SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, r5g6b5, neon_8888_0565),
+    SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, b5g6r5, neon_8888_0565),
+    SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, b5g6r5, neon_8888_0565),
 
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, x8b8g8r8, neon_0565_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, x8r8g8b8, neon_0565_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, x8b8g8r8, neon_0565_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, x8r8g8b8, neon_0565_8888),
     /* Note: NONE repeat is not supported yet */
     SIMPLE_NEAREST_FAST_PATH_COVER (SRC, r5g6b5, a8r8g8b8, neon_0565_8888),
     SIMPLE_NEAREST_FAST_PATH_COVER (SRC, b5g6r5, a8b8g8r8, neon_0565_8888),
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm-scaled.S b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm-scaled.S
old mode 100755
new mode 100644
similarity index 95%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm-scaled.S
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm-scaled.S
index 711099548..e050292e0
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm-scaled.S
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm-scaled.S
@@ -37,16 +37,7 @@
 	.altmacro
 	.p2align 2
 
-/* Supplementary macro for setting function attributes */
-.macro pixman_asm_function fname
-	.func fname
-	.global fname
-#ifdef __ELF__
-	.hidden fname
-	.type fname, %function
-#endif
-fname:
-.endm
+#include "pixman-arm-asm.h"
 
 /*
  * Note: This code is only using armv5te instructions (not even armv6),
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm.S b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm.S
old mode 100755
new mode 100644
similarity index 53%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm.S
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm.S
index c20968879..a74a0a8f3
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm.S
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm.S
@@ -37,6 +37,7 @@
 	.altmacro
 	.p2align 2
 
+#include "pixman-arm-asm.h"
 #include "pixman-arm-simd-asm.h"
 
 /* A head macro should do all processing which results in an output of up to
@@ -303,6 +304,83 @@ generate_composite_function \
 
 /******************************************************************************/
 
+.macro src_x888_0565_init
+        /* Hold loop invariant in MASK */
+        ldr     MASK, =0x001F001F
+        line_saved_regs  STRIDE_S, ORIG_W
+.endm
+
+.macro src_x888_0565_1pixel  s, d
+        and     WK&d, MASK, WK&s, lsr #3           @ 00000000000rrrrr00000000000bbbbb
+        and     STRIDE_S, WK&s, #0xFC00            @ 0000000000000000gggggg0000000000
+        orr     WK&d, WK&d, WK&d, lsr #5           @ 00000000000-----rrrrr000000bbbbb
+        orr     WK&d, WK&d, STRIDE_S, lsr #5       @ 00000000000-----rrrrrggggggbbbbb
+        /* Top 16 bits are discarded during the following STRH */
+.endm
+
+.macro src_x888_0565_2pixels  slo, shi, d, tmp
+        and     SCRATCH, WK&shi, #0xFC00           @ 0000000000000000GGGGGG0000000000
+        and     WK&tmp, MASK, WK&shi, lsr #3       @ 00000000000RRRRR00000000000BBBBB
+        and     WK&shi, MASK, WK&slo, lsr #3       @ 00000000000rrrrr00000000000bbbbb
+        orr     WK&tmp, WK&tmp, WK&tmp, lsr #5     @ 00000000000-----RRRRR000000BBBBB
+        orr     WK&tmp, WK&tmp, SCRATCH, lsr #5    @ 00000000000-----RRRRRGGGGGGBBBBB
+        and     SCRATCH, WK&slo, #0xFC00           @ 0000000000000000gggggg0000000000
+        orr     WK&shi, WK&shi, WK&shi, lsr #5     @ 00000000000-----rrrrr000000bbbbb
+        orr     WK&shi, WK&shi, SCRATCH, lsr #5    @ 00000000000-----rrrrrggggggbbbbb
+        pkhbt   WK&d, WK&shi, WK&tmp, lsl #16      @ RRRRRGGGGGGBBBBBrrrrrggggggbbbbb
+.endm
+
+.macro src_x888_0565_process_head   cond, numbytes, firstreg, unaligned_src, unaligned_mask, preload
+        WK4     .req    STRIDE_S
+        WK5     .req    STRIDE_M
+        WK6     .req    WK3
+        WK7     .req    ORIG_W
+ .if numbytes == 16
+        pixld   , 16, 4, SRC, 0
+        src_x888_0565_2pixels  4, 5, 0, 0
+        pixld   , 8, 4, SRC, 0
+        src_x888_0565_2pixels  6, 7, 1, 1
+        pixld   , 8, 6, SRC, 0
+ .else
+        pixld   , numbytes*2, 4, SRC, 0
+ .endif
+.endm
+
+.macro src_x888_0565_process_tail   cond, numbytes, firstreg
+ .if numbytes == 16
+        src_x888_0565_2pixels  4, 5, 2, 2
+        src_x888_0565_2pixels  6, 7, 3, 4
+ .elseif numbytes == 8
+        src_x888_0565_2pixels  4, 5, 1, 1
+        src_x888_0565_2pixels  6, 7, 2, 2
+ .elseif numbytes == 4
+        src_x888_0565_2pixels  4, 5, 1, 1
+ .else
+        src_x888_0565_1pixel  4, 1
+ .endif
+ .if numbytes == 16
+        pixst   , numbytes, 0, DST
+ .else
+        pixst   , numbytes, 1, DST
+ .endif
+        .unreq  WK4
+        .unreq  WK5
+        .unreq  WK6
+        .unreq  WK7
+.endm
+
+generate_composite_function \
+    pixman_composite_src_x888_0565_asm_armv6, 32, 0, 16, \
+    FLAG_DST_WRITEONLY | FLAG_BRANCH_OVER | FLAG_PROCESS_DOES_STORE | FLAG_SPILL_LINE_VARS | FLAG_PROCESS_CORRUPTS_SCRATCH, \
+    3, /* prefetch distance */ \
+    src_x888_0565_init, \
+    nop_macro, /* newline */ \
+    nop_macro, /* cleanup */ \
+    src_x888_0565_process_head, \
+    src_x888_0565_process_tail
+
+/******************************************************************************/
+
 .macro add_8_8_8pixels  cond, dst1, dst2
         uqadd8&cond  WK&dst1, WK&dst1, MASK
         uqadd8&cond  WK&dst2, WK&dst2, STRIDE_M
@@ -611,3 +689,491 @@ generate_composite_function \
 
 /******************************************************************************/
 
+.macro over_reverse_n_8888_init
+        ldr     SRC, [sp, #ARGS_STACK_OFFSET]
+        ldr     MASK, =0x00800080
+        /* Split source pixel into RB/AG parts */
+        uxtb16  STRIDE_S, SRC
+        uxtb16  STRIDE_M, SRC, ror #8
+        /* Set GE[3:0] to 0101 so SEL instructions do what we want */
+        uadd8   SCRATCH, MASK, MASK
+        line_saved_regs  STRIDE_D, ORIG_W
+.endm
+
+.macro over_reverse_n_8888_newline
+        mov     STRIDE_D, #0xFF
+.endm
+
+.macro over_reverse_n_8888_process_head  cond, numbytes, firstreg, unaligned_src, unaligned_mask, preload
+        pixld   , numbytes, firstreg, DST, 0
+.endm
+
+.macro over_reverse_n_8888_1pixel  d, is_only
+        teq     WK&d, #0
+        beq     8f       /* replace with source */
+        bics    ORIG_W, STRIDE_D, WK&d, lsr #24
+ .if is_only == 1
+        beq     49f      /* skip store */
+ .else
+        beq     9f       /* write same value back */
+ .endif
+        mla     SCRATCH, STRIDE_S, ORIG_W, MASK /* red/blue */
+        mla     ORIG_W, STRIDE_M, ORIG_W, MASK  /* alpha/green */
+        uxtab16 SCRATCH, SCRATCH, SCRATCH, ror #8
+        uxtab16 ORIG_W, ORIG_W, ORIG_W, ror #8
+        mov     SCRATCH, SCRATCH, ror #8
+        sel     ORIG_W, SCRATCH, ORIG_W
+        uqadd8  WK&d, WK&d, ORIG_W
+        b       9f
+8:      mov     WK&d, SRC
+9:
+.endm
+
+.macro over_reverse_n_8888_tail  numbytes, reg1, reg2, reg3, reg4
+ .if numbytes == 4
+        over_reverse_n_8888_1pixel  reg1, 1
+ .else
+        and     SCRATCH, WK&reg1, WK&reg2
+  .if numbytes == 16
+        and     SCRATCH, SCRATCH, WK&reg3
+        and     SCRATCH, SCRATCH, WK&reg4
+  .endif
+        mvns    SCRATCH, SCRATCH, asr #24
+        beq     49f /* skip store if all opaque */
+        over_reverse_n_8888_1pixel  reg1, 0
+        over_reverse_n_8888_1pixel  reg2, 0
+  .if numbytes == 16
+        over_reverse_n_8888_1pixel  reg3, 0
+        over_reverse_n_8888_1pixel  reg4, 0
+  .endif
+ .endif
+        pixst   , numbytes, reg1, DST
+49:
+.endm
+
+.macro over_reverse_n_8888_process_tail  cond, numbytes, firstreg
+        over_reverse_n_8888_tail  numbytes, firstreg, %(firstreg+1), %(firstreg+2), %(firstreg+3)
+.endm
+
+generate_composite_function \
+    pixman_composite_over_reverse_n_8888_asm_armv6, 0, 0, 32 \
+    FLAG_DST_READWRITE | FLAG_BRANCH_OVER | FLAG_PROCESS_CORRUPTS_PSR | FLAG_PROCESS_DOES_STORE | FLAG_SPILL_LINE_VARS | FLAG_PROCESS_CORRUPTS_SCRATCH, \
+    3, /* prefetch distance */ \
+    over_reverse_n_8888_init, \
+    over_reverse_n_8888_newline, \
+    nop_macro, /* cleanup */ \
+    over_reverse_n_8888_process_head, \
+    over_reverse_n_8888_process_tail
+
+/******************************************************************************/
+
+.macro over_white_8888_8888_ca_init
+        HALF    .req    SRC
+        TMP0    .req    STRIDE_D
+        TMP1    .req    STRIDE_S
+        TMP2    .req    STRIDE_M
+        TMP3    .req    ORIG_W
+        WK4     .req    SCRATCH
+        line_saved_regs STRIDE_D, STRIDE_M, ORIG_W
+        ldr     SCRATCH, =0x800080
+        mov     HALF, #0x80
+        /* Set GE[3:0] to 0101 so SEL instructions do what we want */
+        uadd8   SCRATCH, SCRATCH, SCRATCH
+        .set DST_PRELOAD_BIAS, 8
+.endm
+
+.macro over_white_8888_8888_ca_cleanup
+        .set DST_PRELOAD_BIAS, 0
+        .unreq  HALF
+        .unreq  TMP0
+        .unreq  TMP1
+        .unreq  TMP2
+        .unreq  TMP3
+        .unreq  WK4
+.endm
+
+.macro over_white_8888_8888_ca_combine  m, d
+        uxtb16  TMP1, TMP0                /* rb_notmask */
+        uxtb16  TMP2, d                   /* rb_dest; 1 stall follows */
+        smlatt  TMP3, TMP2, TMP1, HALF    /* red */
+        smlabb  TMP2, TMP2, TMP1, HALF    /* blue */
+        uxtb16  TMP0, TMP0, ror #8        /* ag_notmask */
+        uxtb16  TMP1, d, ror #8           /* ag_dest; 1 stall follows */
+        smlatt  d, TMP1, TMP0, HALF       /* alpha */
+        smlabb  TMP1, TMP1, TMP0, HALF    /* green */
+        pkhbt   TMP0, TMP2, TMP3, lsl #16 /* rb; 1 stall follows */
+        pkhbt   TMP1, TMP1, d, lsl #16    /* ag */
+        uxtab16 TMP0, TMP0, TMP0, ror #8
+        uxtab16 TMP1, TMP1, TMP1, ror #8
+        mov     TMP0, TMP0, ror #8
+        sel     d, TMP0, TMP1
+        uqadd8  d, d, m                   /* d is a late result */
+.endm
+
+.macro over_white_8888_8888_ca_1pixel_head
+        pixld   , 4, 1, MASK, 0
+        pixld   , 4, 3, DST, 0
+.endm
+
+.macro over_white_8888_8888_ca_1pixel_tail
+        mvn     TMP0, WK1
+        teq     WK1, WK1, asr #32
+        bne     01f
+        bcc     03f
+        mov     WK3, WK1
+        b       02f
+01:     over_white_8888_8888_ca_combine WK1, WK3
+02:     pixst   , 4, 3, DST
+03:
+.endm
+
+.macro over_white_8888_8888_ca_2pixels_head
+        pixld   , 8, 1, MASK, 0
+.endm
+
+.macro over_white_8888_8888_ca_2pixels_tail
+        pixld   , 8, 3, DST
+        mvn     TMP0, WK1
+        teq     WK1, WK1, asr #32
+        bne     01f
+        movcs   WK3, WK1
+        bcs     02f
+        teq     WK2, #0
+        beq     05f
+        b       02f
+01:     over_white_8888_8888_ca_combine WK1, WK3
+02:     mvn     TMP0, WK2
+        teq     WK2, WK2, asr #32
+        bne     03f
+        movcs   WK4, WK2
+        b       04f
+03:     over_white_8888_8888_ca_combine WK2, WK4
+04:     pixst   , 8, 3, DST
+05:
+.endm
+
+.macro over_white_8888_8888_ca_process_head  cond, numbytes, firstreg, unaligned_src, unaligned_mask, preload
+ .if numbytes == 4
+        over_white_8888_8888_ca_1pixel_head
+ .else
+  .if numbytes == 16
+        over_white_8888_8888_ca_2pixels_head
+        over_white_8888_8888_ca_2pixels_tail
+  .endif
+        over_white_8888_8888_ca_2pixels_head
+ .endif
+.endm
+
+.macro over_white_8888_8888_ca_process_tail  cond, numbytes, firstreg
+ .if numbytes == 4
+        over_white_8888_8888_ca_1pixel_tail
+ .else
+        over_white_8888_8888_ca_2pixels_tail
+ .endif
+.endm
+
+generate_composite_function \
+    pixman_composite_over_white_8888_8888_ca_asm_armv6, 0, 32, 32 \
+    FLAG_DST_READWRITE | FLAG_BRANCH_OVER | FLAG_PROCESS_CORRUPTS_PSR | FLAG_PROCESS_DOES_STORE | FLAG_SPILL_LINE_VARS | FLAG_PROCESS_CORRUPTS_SCRATCH \
+    2, /* prefetch distance */ \
+    over_white_8888_8888_ca_init, \
+    nop_macro, /* newline */ \
+    over_white_8888_8888_ca_cleanup, \
+    over_white_8888_8888_ca_process_head, \
+    over_white_8888_8888_ca_process_tail
+
+
+.macro over_n_8888_8888_ca_init
+        /* Set up constants. RB_SRC and AG_SRC are in registers;
+         * RB_FLDS, A_SRC, and the two HALF values need to go on the
+         * stack (and the ful SRC value is already there) */
+        ldr     SCRATCH, [sp, #ARGS_STACK_OFFSET]
+        mov     WK0, #0x00FF0000
+        orr     WK0, WK0, #0xFF        /* RB_FLDS (0x00FF00FF) */
+        mov     WK1, #0x80             /* HALF default value */
+        mov     WK2, SCRATCH, lsr #24  /* A_SRC */
+        orr     WK3, WK1, WK1, lsl #16 /* HALF alternate value (0x00800080) */
+        push    {WK0-WK3}
+ .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET+16
+        uxtb16  SRC, SCRATCH
+        uxtb16  STRIDE_S, SCRATCH, ror #8
+
+        /* Set GE[3:0] to 0101 so SEL instructions do what we want */
+        uadd8   SCRATCH, WK3, WK3
+
+        .unreq  WK0
+        .unreq  WK1
+        .unreq  WK2
+        .unreq  WK3
+        WK0     .req    Y
+        WK1     .req    STRIDE_D
+        RB_SRC  .req    SRC
+        AG_SRC  .req    STRIDE_S
+        WK2     .req    STRIDE_M
+        RB_FLDS .req    r8       /* the reloaded constants have to be at consecutive registers starting at an even one */
+        A_SRC   .req    r8
+        HALF    .req    r9
+        WK3     .req    r10
+        WK4     .req    r11
+        WK5     .req    SCRATCH
+        WK6     .req    ORIG_W
+
+        line_saved_regs Y, STRIDE_D, STRIDE_M, ORIG_W
+.endm
+
+.macro over_n_8888_8888_ca_cleanup
+        add     sp, sp, #16
+ .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET-16
+
+        .unreq  WK0
+        .unreq  WK1
+        .unreq  RB_SRC
+        .unreq  AG_SRC
+        .unreq  WK2
+        .unreq  RB_FLDS
+        .unreq  A_SRC
+        .unreq  HALF
+        .unreq  WK3
+        .unreq  WK4
+        .unreq  WK5
+        .unreq  WK6
+        WK0     .req    r8
+        WK1     .req    r9
+        WK2     .req    r10
+        WK3     .req    r11
+.endm
+
+.macro over_n_8888_8888_ca_1pixel_head
+        pixld   , 4, 6, MASK, 0
+        pixld   , 4, 0, DST, 0
+.endm
+
+.macro over_n_8888_8888_ca_1pixel_tail
+        ldrd    A_SRC, HALF, [sp, #LOCALS_STACK_OFFSET+8]
+        uxtb16  WK1, WK6                 /* rb_mask (first step of hard case placed in what would otherwise be a stall) */
+        teq     WK6, WK6, asr #32        /* Zc if transparent, ZC if opaque */
+        bne     20f
+        bcc     40f
+        /* Mask is fully opaque (all channels) */
+        ldr     WK6, [sp, #ARGS_STACK_OFFSET] /* get SRC back */
+        eors    A_SRC, A_SRC, #0xFF
+        bne     10f
+        /* Source is also opaque - same as src_8888_8888 */
+        mov     WK0, WK6
+        b       30f
+10:     /* Same as over_8888_8888 */
+        mul_8888_8 WK0, A_SRC, WK5, HALF
+        uqadd8  WK0, WK0, WK6
+        b       30f
+20:     /* No simplifications possible - do it the hard way */
+        uxtb16  WK2, WK6, ror #8         /* ag_mask */
+        mla     WK3, WK1, A_SRC, HALF    /* rb_mul; 2 cycles */
+        mla     WK4, WK2, A_SRC, HALF    /* ag_mul; 2 cycles */
+        ldrd    RB_FLDS, HALF, [sp, #LOCALS_STACK_OFFSET]
+        uxtb16  WK5, WK0                 /* rb_dest */
+        uxtab16 WK3, WK3, WK3, ror #8
+        uxtb16  WK6, WK0, ror #8         /* ag_dest */
+        uxtab16 WK4, WK4, WK4, ror #8
+        smlatt  WK0, RB_SRC, WK1, HALF   /* red1 */
+        smlabb  WK1, RB_SRC, WK1, HALF   /* blue1 */
+        bic     WK3, RB_FLDS, WK3, lsr #8
+        bic     WK4, RB_FLDS, WK4, lsr #8
+        pkhbt   WK1, WK1, WK0, lsl #16   /* rb1 */
+        smlatt  WK0, WK5, WK3, HALF      /* red2 */
+        smlabb  WK3, WK5, WK3, HALF      /* blue2 */
+        uxtab16 WK1, WK1, WK1, ror #8
+        smlatt  WK5, AG_SRC, WK2, HALF   /* alpha1 */
+        pkhbt   WK3, WK3, WK0, lsl #16   /* rb2 */
+        smlabb  WK0, AG_SRC, WK2, HALF   /* green1 */
+        smlatt  WK2, WK6, WK4, HALF      /* alpha2 */
+        smlabb  WK4, WK6, WK4, HALF      /* green2 */
+        pkhbt   WK0, WK0, WK5, lsl #16   /* ag1 */
+        uxtab16 WK3, WK3, WK3, ror #8
+        pkhbt   WK4, WK4, WK2, lsl #16   /* ag2 */
+        uxtab16 WK0, WK0, WK0, ror #8
+        uxtab16 WK4, WK4, WK4, ror #8
+        mov     WK1, WK1, ror #8
+        mov     WK3, WK3, ror #8
+        sel     WK2, WK1, WK0            /* recombine source*mask */
+        sel     WK1, WK3, WK4            /* recombine dest*(1-source_alpha*mask) */
+        uqadd8  WK0, WK1, WK2            /* followed by 1 stall */
+30:     /* The destination buffer is already in the L1 cache, so
+         * there's little point in amalgamating writes */
+        pixst   , 4, 0, DST
+40:
+.endm
+
+.macro over_n_8888_8888_ca_process_head  cond, numbytes, firstreg, unaligned_src, unaligned_mask, preload
+ .rept (numbytes / 4) - 1
+        over_n_8888_8888_ca_1pixel_head
+        over_n_8888_8888_ca_1pixel_tail
+ .endr
+        over_n_8888_8888_ca_1pixel_head
+.endm
+
+.macro over_n_8888_8888_ca_process_tail  cond, numbytes, firstreg
+        over_n_8888_8888_ca_1pixel_tail
+.endm
+
+pixman_asm_function pixman_composite_over_n_8888_8888_ca_asm_armv6
+        ldr     ip, [sp]
+        cmp     ip, #-1
+        beq     pixman_composite_over_white_8888_8888_ca_asm_armv6
+        /* else drop through... */
+ .endfunc
+generate_composite_function \
+    pixman_composite_over_n_8888_8888_ca_asm_armv6_helper, 0, 32, 32 \
+    FLAG_DST_READWRITE | FLAG_BRANCH_OVER | FLAG_PROCESS_CORRUPTS_PSR | FLAG_PROCESS_DOES_STORE | FLAG_SPILL_LINE_VARS | FLAG_PROCESS_CORRUPTS_SCRATCH | FLAG_PROCESS_CORRUPTS_WK0 \
+    2, /* prefetch distance */ \
+    over_n_8888_8888_ca_init, \
+    nop_macro, /* newline */ \
+    over_n_8888_8888_ca_cleanup, \
+    over_n_8888_8888_ca_process_head, \
+    over_n_8888_8888_ca_process_tail
+
+/******************************************************************************/
+
+.macro in_reverse_8888_8888_init
+        /* Hold loop invariant in MASK */
+        ldr     MASK, =0x00800080
+        /* Set GE[3:0] to 0101 so SEL instructions do what we want */
+        uadd8   SCRATCH, MASK, MASK
+        /* Offset the source pointer: we only need the alpha bytes */
+        add     SRC, SRC, #3
+        line_saved_regs  ORIG_W
+.endm
+
+.macro in_reverse_8888_8888_head  numbytes, reg1, reg2, reg3
+        ldrb    ORIG_W, [SRC], #4
+ .if numbytes >= 8
+        ldrb    WK&reg1, [SRC], #4
+  .if numbytes == 16
+        ldrb    WK&reg2, [SRC], #4
+        ldrb    WK&reg3, [SRC], #4
+  .endif
+ .endif
+        add     DST, DST, #numbytes
+.endm
+
+.macro in_reverse_8888_8888_process_head  cond, numbytes, firstreg, unaligned_src, unaligned_mask, preload
+        in_reverse_8888_8888_head  numbytes, firstreg, %(firstreg+1), %(firstreg+2)
+.endm
+
+.macro in_reverse_8888_8888_1pixel  s, d, offset, is_only
+ .if is_only != 1
+        movs    s, ORIG_W
+  .if offset != 0
+        ldrb    ORIG_W, [SRC, #offset]
+  .endif
+        beq     01f
+        teq     STRIDE_M, #0xFF
+        beq     02f
+ .endif
+        uxtb16  SCRATCH, d                 /* rb_dest */
+        uxtb16  d, d, ror #8               /* ag_dest */
+        mla     SCRATCH, SCRATCH, s, MASK
+        mla     d, d, s, MASK
+        uxtab16 SCRATCH, SCRATCH, SCRATCH, ror #8
+        uxtab16 d, d, d, ror #8
+        mov     SCRATCH, SCRATCH, ror #8
+        sel     d, SCRATCH, d
+        b       02f
+ .if offset == 0
+48:     /* Last mov d,#0 of the set - used as part of shortcut for
+         * source values all 0 */
+ .endif
+01:     mov     d, #0
+02:
+.endm
+
+.macro in_reverse_8888_8888_tail  numbytes, reg1, reg2, reg3, reg4
+ .if numbytes == 4
+        teq     ORIG_W, ORIG_W, asr #32
+        ldrne   WK&reg1, [DST, #-4]
+ .elseif numbytes == 8
+        teq     ORIG_W, WK&reg1
+        teqeq   ORIG_W, ORIG_W, asr #32  /* all 0 or all -1? */
+        ldmnedb DST, {WK&reg1-WK&reg2}
+ .else
+        teq     ORIG_W, WK&reg1
+        teqeq   ORIG_W, WK&reg2
+        teqeq   ORIG_W, WK&reg3
+        teqeq   ORIG_W, ORIG_W, asr #32  /* all 0 or all -1? */
+        ldmnedb DST, {WK&reg1-WK&reg4}
+ .endif
+        cmnne   DST, #0   /* clear C if NE */
+        bcs     49f       /* no writes to dest if source all -1 */
+        beq     48f       /* set dest to all 0 if source all 0 */
+ .if numbytes == 4
+        in_reverse_8888_8888_1pixel  ORIG_W, WK&reg1, 0, 1
+        str     WK&reg1, [DST, #-4]
+ .elseif numbytes == 8
+        in_reverse_8888_8888_1pixel  STRIDE_M, WK&reg1, -4, 0
+        in_reverse_8888_8888_1pixel  STRIDE_M, WK&reg2, 0, 0
+        stmdb   DST, {WK&reg1-WK&reg2}
+ .else
+        in_reverse_8888_8888_1pixel  STRIDE_M, WK&reg1, -12, 0
+        in_reverse_8888_8888_1pixel  STRIDE_M, WK&reg2, -8, 0
+        in_reverse_8888_8888_1pixel  STRIDE_M, WK&reg3, -4, 0
+        in_reverse_8888_8888_1pixel  STRIDE_M, WK&reg4, 0, 0
+        stmdb   DST, {WK&reg1-WK&reg4}
+ .endif
+49:
+.endm
+
+.macro in_reverse_8888_8888_process_tail  cond, numbytes, firstreg
+        in_reverse_8888_8888_tail  numbytes, firstreg, %(firstreg+1), %(firstreg+2), %(firstreg+3)
+.endm
+
+generate_composite_function \
+    pixman_composite_in_reverse_8888_8888_asm_armv6, 32, 0, 32 \
+    FLAG_DST_READWRITE | FLAG_BRANCH_OVER | FLAG_PROCESS_CORRUPTS_PSR | FLAG_PROCESS_DOES_STORE | FLAG_SPILL_LINE_VARS | FLAG_PROCESS_CORRUPTS_SCRATCH | FLAG_NO_PRELOAD_DST \
+    2, /* prefetch distance */ \
+    in_reverse_8888_8888_init, \
+    nop_macro, /* newline */ \
+    nop_macro, /* cleanup */ \
+    in_reverse_8888_8888_process_head, \
+    in_reverse_8888_8888_process_tail
+
+/******************************************************************************/
+
+.macro over_n_8888_init
+        ldr     SRC, [sp, #ARGS_STACK_OFFSET]
+        /* Hold loop invariant in MASK */
+        ldr     MASK, =0x00800080
+        /* Hold multiplier for destination in STRIDE_M */
+        mov     STRIDE_M, #255
+        sub     STRIDE_M, STRIDE_M, SRC, lsr #24
+        /* Set GE[3:0] to 0101 so SEL instructions do what we want */
+        uadd8   SCRATCH, MASK, MASK
+.endm
+
+.macro over_n_8888_process_head  cond, numbytes, firstreg, unaligned_src, unaligned_mask, preload
+        pixld   , numbytes, firstreg, DST, 0
+.endm
+
+.macro over_n_8888_1pixel dst
+        mul_8888_8  WK&dst, STRIDE_M, SCRATCH, MASK
+        uqadd8  WK&dst, WK&dst, SRC
+.endm
+
+.macro over_n_8888_process_tail  cond, numbytes, firstreg
+ .set PROCESS_REG, firstreg
+ .rept numbytes / 4
+        over_n_8888_1pixel %(PROCESS_REG)
+  .set PROCESS_REG, PROCESS_REG+1
+ .endr
+        pixst   , numbytes, firstreg, DST
+.endm
+
+generate_composite_function \
+    pixman_composite_over_n_8888_asm_armv6, 0, 0, 32 \
+    FLAG_DST_READWRITE | FLAG_BRANCH_OVER | FLAG_PROCESS_DOES_STORE \
+    2, /* prefetch distance */ \
+    over_n_8888_init, \
+    nop_macro, /* newline */ \
+    nop_macro, /* cleanup */ \
+    over_n_8888_process_head, \
+    over_n_8888_process_tail
+
+/******************************************************************************/
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm.h b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm.h
old mode 100755
new mode 100644
similarity index 90%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm.h
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm.h
index 65436062b..da153c3f5
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd-asm.h
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd-asm.h
@@ -76,6 +76,16 @@
 .set FLAG_SPILL_LINE_VARS,           48
 .set FLAG_PROCESS_CORRUPTS_SCRATCH,  0
 .set FLAG_PROCESS_PRESERVES_SCRATCH, 64
+.set FLAG_PROCESS_PRESERVES_WK0,     0
+.set FLAG_PROCESS_CORRUPTS_WK0,      128 /* if possible, use the specified register(s) instead so WK0 can hold number of leading pixels */
+.set FLAG_PRELOAD_DST,               0
+.set FLAG_NO_PRELOAD_DST,            256
+
+/*
+ * Number of bytes by which to adjust preload offset of destination
+ * buffer (allows preload instruction to be moved before the load(s))
+ */
+.set DST_PRELOAD_BIAS, 0
 
 /*
  * Offset into stack where mask and source pointer/stride can be accessed.
@@ -86,6 +96,11 @@
 .set ARGS_STACK_OFFSET,        (9*4)
 #endif
 
+/*
+ * Offset into stack where space allocated during init macro can be accessed.
+ */
+.set LOCALS_STACK_OFFSET,     0
+
 /*
  * Constants for selecting preferable prefetch type.
  */
@@ -196,8 +211,8 @@
         PF  add,    SCRATCH, base, WK0, lsl #bpp_shift-dst_bpp_shift
         PF  and,    SCRATCH, SCRATCH, #31
         PF  rsb,    SCRATCH, SCRATCH, WK0, lsl #bpp_shift-dst_bpp_shift
-        PF  sub,    SCRATCH, SCRATCH, #1    /* so now ranges are -16..-1 / 0..31 / 32..63 */
-        PF  movs,   SCRATCH, SCRATCH, #32-6 /* so this sets         NC   /  nc   /   Nc   */
+        PF  sub,    SCRATCH, SCRATCH, #1        /* so now ranges are -16..-1 / 0..31 / 32..63 */
+        PF  movs,   SCRATCH, SCRATCH, lsl #32-6 /* so this sets         NC   /  nc   /   Nc   */
         PF  bcs,    61f
         PF  bpl,    60f
         PF  pld,    [ptr, #32*(prefetch_distance+2)]
@@ -359,23 +374,41 @@
 
 
 .macro test_bits_1_0_ptr
+ .if (flags) & FLAG_PROCESS_CORRUPTS_WK0
+        movs    SCRATCH, X, lsl #32-1  /* C,N = bits 1,0 of DST */
+ .else
         movs    SCRATCH, WK0, lsl #32-1  /* C,N = bits 1,0 of DST */
+ .endif
 .endm
 
 .macro test_bits_3_2_ptr
+ .if (flags) & FLAG_PROCESS_CORRUPTS_WK0
+        movs    SCRATCH, X, lsl #32-3  /* C,N = bits 3, 2 of DST */
+ .else
         movs    SCRATCH, WK0, lsl #32-3  /* C,N = bits 3, 2 of DST */
+ .endif
 .endm
 
 .macro leading_15bytes  process_head, process_tail
         /* On entry, WK0 bits 0-3 = number of bytes until destination is 16-byte aligned */
+ .set DECREMENT_X, 1
+ .if (flags) & FLAG_PROCESS_CORRUPTS_WK0
+  .set DECREMENT_X, 0
+        sub     X, X, WK0, lsr #dst_bpp_shift
+        str     X, [sp, #LINE_SAVED_REG_COUNT*4]
+        mov     X, WK0
+ .endif
         /* Use unaligned loads in all cases for simplicity */
  .if dst_w_bpp == 8
-        conditional_process2  test_bits_1_0_ptr, mi, cs, process_head, process_tail, 1, 2, 1, 2, 1, 1, 1
+        conditional_process2  test_bits_1_0_ptr, mi, cs, process_head, process_tail, 1, 2, 1, 2, 1, 1, DECREMENT_X
  .elseif dst_w_bpp == 16
         test_bits_1_0_ptr
-        conditional_process1  cs, process_head, process_tail, 2, 2, 1, 1, 1
+        conditional_process1  cs, process_head, process_tail, 2, 2, 1, 1, DECREMENT_X
+ .endif
+        conditional_process2  test_bits_3_2_ptr, mi, cs, process_head, process_tail, 4, 8, 1, 2, 1, 1, DECREMENT_X
+ .if (flags) & FLAG_PROCESS_CORRUPTS_WK0
+        ldr     X, [sp, #LINE_SAVED_REG_COUNT*4]
  .endif
-        conditional_process2  test_bits_3_2_ptr, mi, cs, process_head, process_tail, 4, 8, 1, 2, 1, 1, 1
 .endm
 
 .macro test_bits_3_2_pix
@@ -414,7 +447,7 @@
         preload_middle  src_bpp, SRC, 0
         preload_middle  mask_bpp, MASK, 0
   .endif
-  .if (dst_r_bpp > 0) && ((SUBBLOCK % 2) == 0)
+  .if (dst_r_bpp > 0) && ((SUBBLOCK % 2) == 0) && (((flags) & FLAG_NO_PRELOAD_DST) == 0)
         /* Because we know that writes are 16-byte aligned, it's relatively easy to ensure that
          * destination prefetches are 32-byte aligned. It's also the easiest channel to offset
          * preloads for, to achieve staggered prefetches for multiple channels, because there are
@@ -437,11 +470,11 @@
  .if dst_r_bpp > 0
         tst     DST, #16
         bne     111f
-        process_inner_loop  process_head, process_tail, unaligned_src, unaligned_mask, 16
+        process_inner_loop  process_head, process_tail, unaligned_src, unaligned_mask, 16 + DST_PRELOAD_BIAS
         b       112f
 111:
  .endif
-        process_inner_loop  process_head, process_tail, unaligned_src, unaligned_mask, 0
+        process_inner_loop  process_head, process_tail, unaligned_src, unaligned_mask, 0 + DST_PRELOAD_BIAS
 112:
         /* Just before the final (prefetch_distance+1) 32-byte blocks, deal with final preloads */
  .if (src_bpp*pix_per_block > 256) || (mask_bpp*pix_per_block > 256) || (dst_r_bpp*pix_per_block > 256)
@@ -449,7 +482,9 @@
  .endif
         preload_trailing  src_bpp, src_bpp_shift, SRC
         preload_trailing  mask_bpp, mask_bpp_shift, MASK
+ .if ((flags) & FLAG_NO_PRELOAD_DST) == 0
         preload_trailing  dst_r_bpp, dst_bpp_shift, DST
+ .endif
         add     X, X, #(prefetch_distance+2)*pix_per_block - 128/dst_w_bpp
         /* The remainder of the line is handled identically to the medium case */
         medium_case_inner_loop_and_trailing_pixels  process_head, process_tail,, exit_label, unaligned_src, unaligned_mask
@@ -561,13 +596,7 @@
                                    process_tail, \
                                    process_inner_loop
 
- .func fname
- .global fname
- /* For ELF format also set function visibility to hidden */
-#ifdef __ELF__
- .hidden fname
- .type fname, %function
-#endif
+    pixman_asm_function fname
 
 /*
  * Make some macro arguments globally visible and accessible
@@ -679,7 +708,6 @@
     SCRATCH     .req    r12
     ORIG_W      .req    r14 /* width (pixels) */
 
-fname:
         push    {r4-r11, lr}        /* save all registers */
 
         subs    Y, Y, #1
@@ -705,6 +733,13 @@ fname:
 #endif
 
         init
+
+ .if (flags) & FLAG_PROCESS_CORRUPTS_WK0
+        /* Reserve a word in which to store X during leading pixels */
+        sub     sp, sp, #4
+  .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET+4
+  .set LOCALS_STACK_OFFSET, LOCALS_STACK_OFFSET+4
+ .endif
         
         lsl     STRIDE_D, #dst_bpp_shift /* stride in bytes */
         sub     STRIDE_D, STRIDE_D, X, lsl #dst_bpp_shift
@@ -734,42 +769,49 @@ fname:
   .if (flags) & FLAG_SPILL_LINE_VARS_WIDE
         /* This is stmdb sp!,{} */
         .word   0xE92D0000 | LINE_SAVED_REGS
+   .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET + LINE_SAVED_REG_COUNT*4
+   .set LOCALS_STACK_OFFSET, LOCALS_STACK_OFFSET + LINE_SAVED_REG_COUNT*4
   .endif
 151:    /* New line */
         newline
         preload_leading_step1  src_bpp, WK1, SRC
         preload_leading_step1  mask_bpp, WK2, MASK
+  .if ((flags) & FLAG_NO_PRELOAD_DST) == 0
         preload_leading_step1  dst_r_bpp, WK3, DST
+  .endif
         
-        tst     DST, #15
+        ands    WK0, DST, #15
         beq     154f
-        rsb     WK0, DST, #0 /* bits 0-3 = number of leading bytes until destination aligned */
-  .if (src_bpp != 0 && src_bpp != 2*dst_w_bpp) || (mask_bpp != 0 && mask_bpp != 2*dst_w_bpp)
-        PF  and,    WK0, WK0, #15
-  .endif
+        rsb     WK0, WK0, #16 /* number of leading bytes until destination aligned */
 
         preload_leading_step2  src_bpp, src_bpp_shift, WK1, SRC
         preload_leading_step2  mask_bpp, mask_bpp_shift, WK2, MASK
+  .if ((flags) & FLAG_NO_PRELOAD_DST) == 0
         preload_leading_step2  dst_r_bpp, dst_bpp_shift, WK3, DST
+  .endif
 
         leading_15bytes  process_head, process_tail
         
 154:    /* Destination now 16-byte aligned; we have at least one prefetch on each channel as well as at least one 16-byte output block */
- .if (src_bpp > 0) && (mask_bpp == 0) && ((flags) & FLAG_PROCESS_PRESERVES_SCRATCH)
+  .if (src_bpp > 0) && (mask_bpp == 0) && ((flags) & FLAG_PROCESS_PRESERVES_SCRATCH)
         and     SCRATCH, SRC, #31
         rsb     SCRATCH, SCRATCH, #32*prefetch_distance
- .elseif (src_bpp == 0) && (mask_bpp > 0) && ((flags) & FLAG_PROCESS_PRESERVES_SCRATCH)
+  .elseif (src_bpp == 0) && (mask_bpp > 0) && ((flags) & FLAG_PROCESS_PRESERVES_SCRATCH)
         and     SCRATCH, MASK, #31
         rsb     SCRATCH, SCRATCH, #32*prefetch_distance
- .endif
- .ifc "process_inner_loop",""
+  .endif
+  .ifc "process_inner_loop",""
         switch_on_alignment  wide_case_inner_loop_and_trailing_pixels, process_head, process_tail, wide_case_inner_loop, 157f
- .else
+  .else
         switch_on_alignment  wide_case_inner_loop_and_trailing_pixels, process_head, process_tail, process_inner_loop, 157f
- .endif
+  .endif
 
 157:    /* Check for another line */
         end_of_line 1, %((flags) & FLAG_SPILL_LINE_VARS_WIDE), 151b
+  .if (flags) & FLAG_SPILL_LINE_VARS_WIDE
+   .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET - LINE_SAVED_REG_COUNT*4
+   .set LOCALS_STACK_OFFSET, LOCALS_STACK_OFFSET - LINE_SAVED_REG_COUNT*4
+  .endif
  .endif
 
  .ltorg
@@ -779,17 +821,21 @@ fname:
  .if (flags) & FLAG_SPILL_LINE_VARS_NON_WIDE
         /* This is stmdb sp!,{} */
         .word   0xE92D0000 | LINE_SAVED_REGS
+  .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET + LINE_SAVED_REG_COUNT*4
+  .set LOCALS_STACK_OFFSET, LOCALS_STACK_OFFSET + LINE_SAVED_REG_COUNT*4
  .endif
 161:    /* New line */
         newline
         preload_line 0, src_bpp, src_bpp_shift, SRC  /* in: X, corrupts: WK0-WK1 */
         preload_line 0, mask_bpp, mask_bpp_shift, MASK
+ .if ((flags) & FLAG_NO_PRELOAD_DST) == 0
         preload_line 0, dst_r_bpp, dst_bpp_shift, DST
+ .endif
         
         sub     X, X, #128/dst_w_bpp     /* simplifies inner loop termination */
-        tst     DST, #15
+        ands    WK0, DST, #15
         beq     164f
-        rsb     WK0, DST, #0 /* bits 0-3 = number of leading bytes until destination aligned */
+        rsb     WK0, WK0, #16 /* number of leading bytes until destination aligned */
         
         leading_15bytes  process_head, process_tail
         
@@ -813,7 +859,9 @@ fname:
         newline
         preload_line 1, src_bpp, src_bpp_shift, SRC  /* in: X, corrupts: WK0-WK1 */
         preload_line 1, mask_bpp, mask_bpp_shift, MASK
+ .if ((flags) & FLAG_NO_PRELOAD_DST) == 0
         preload_line 1, dst_r_bpp, dst_bpp_shift, DST
+ .endif
         
  .if dst_w_bpp == 8
         tst     DST, #3
@@ -844,12 +892,22 @@ fname:
 
 177:    /* Check for another line */
         end_of_line %(dst_w_bpp < 32), %((flags) & FLAG_SPILL_LINE_VARS_NON_WIDE), 171b, last_one
+ .if (flags) & FLAG_SPILL_LINE_VARS_NON_WIDE
+  .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET - LINE_SAVED_REG_COUNT*4
+  .set LOCALS_STACK_OFFSET, LOCALS_STACK_OFFSET - LINE_SAVED_REG_COUNT*4
+ .endif
 
 197:
  .if (flags) & FLAG_SPILL_LINE_VARS
         add     sp, sp, #LINE_SAVED_REG_COUNT*4
  .endif
 198:
+ .if (flags) & FLAG_PROCESS_CORRUPTS_WK0
+  .set ARGS_STACK_OFFSET, ARGS_STACK_OFFSET-4
+  .set LOCALS_STACK_OFFSET, LOCALS_STACK_OFFSET-4
+        add     sp, sp, #4
+ .endif
+
         cleanup
 
 #ifdef DEBUG_PARAMS
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd.c b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd.c
old mode 100755
new mode 100644
similarity index 79%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd.c
rename to source/libs/pixman/pixman-src/pixman/pixman-arm-simd.c
index af062e19d..f0d14540b
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm-simd.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-arm-simd.c
@@ -41,11 +41,20 @@ PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, src_8_8,
                                    uint8_t, 1, uint8_t, 1)
 PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, src_0565_8888,
                                    uint16_t, 1, uint32_t, 1)
+PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, src_x888_0565,
+                                   uint32_t, 1, uint16_t, 1)
 
 PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, add_8_8,
                                    uint8_t, 1, uint8_t, 1)
 PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, over_8888_8888,
                                    uint32_t, 1, uint32_t, 1)
+PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, in_reverse_8888_8888,
+                                   uint32_t, 1, uint32_t, 1)
+
+PIXMAN_ARM_BIND_FAST_PATH_N_DST (SKIP_ZERO_SRC, armv6, over_n_8888,
+                                 uint32_t, 1)
+PIXMAN_ARM_BIND_FAST_PATH_N_DST (0, armv6, over_reverse_n_8888,
+                                 uint32_t, 1)
 
 PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, armv6, over_8888_n_8888,
                                      uint32_t, 1, uint32_t, 1)
@@ -53,6 +62,9 @@ PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, armv6, over_8888_n_8888,
 PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, armv6, over_n_8_8888,
                                       uint8_t, 1, uint32_t, 1)
 
+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, armv6, over_n_8888_8888_ca,
+                                      uint32_t, 1, uint32_t, 1)
+
 PIXMAN_ARM_BIND_SCALED_NEAREST_SRC_DST (armv6, 0565_0565, SRC,
                                         uint16_t, uint16_t)
 PIXMAN_ARM_BIND_SCALED_NEAREST_SRC_DST (armv6, 8888_8888, SRC,
@@ -216,6 +228,11 @@ static const pixman_fast_path_t arm_simd_fast_paths[] =
     PIXMAN_STD_FAST_PATH (SRC, b5g6r5, null, a8b8g8r8, armv6_composite_src_0565_8888),
     PIXMAN_STD_FAST_PATH (SRC, b5g6r5, null, x8b8g8r8, armv6_composite_src_0565_8888),
 
+    PIXMAN_STD_FAST_PATH (SRC, a8r8g8b8, null, r5g6b5, armv6_composite_src_x888_0565),
+    PIXMAN_STD_FAST_PATH (SRC, x8r8g8b8, null, r5g6b5, armv6_composite_src_x888_0565),
+    PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, b5g6r5, armv6_composite_src_x888_0565),
+    PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, b5g6r5, armv6_composite_src_x888_0565),
+
     PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, a8r8g8b8, armv6_composite_over_8888_8888),
     PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, x8r8g8b8, armv6_composite_over_8888_8888),
     PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, a8b8g8r8, armv6_composite_over_8888_8888),
@@ -225,6 +242,13 @@ static const pixman_fast_path_t arm_simd_fast_paths[] =
     PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, solid, a8b8g8r8, armv6_composite_over_8888_n_8888),
     PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, solid, x8b8g8r8, armv6_composite_over_8888_n_8888),
 
+    PIXMAN_STD_FAST_PATH (OVER, solid, null, a8r8g8b8, armv6_composite_over_n_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid, null, x8r8g8b8, armv6_composite_over_n_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid, null, a8b8g8r8, armv6_composite_over_n_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid, null, x8b8g8r8, armv6_composite_over_n_8888),
+    PIXMAN_STD_FAST_PATH (OVER_REVERSE, solid, null, a8r8g8b8, armv6_composite_over_reverse_n_8888),
+    PIXMAN_STD_FAST_PATH (OVER_REVERSE, solid, null, a8b8g8r8, armv6_composite_over_reverse_n_8888),
+
     PIXMAN_STD_FAST_PATH (ADD, a8, null, a8, armv6_composite_add_8_8),
 
     PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8r8g8b8, armv6_composite_over_n_8_8888),
@@ -232,15 +256,25 @@ static const pixman_fast_path_t arm_simd_fast_paths[] =
     PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8b8g8r8, armv6_composite_over_n_8_8888),
     PIXMAN_STD_FAST_PATH (OVER, solid, a8, x8b8g8r8, armv6_composite_over_n_8_8888),
 
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, r5g6b5, armv6_0565_0565),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, b5g6r5, armv6_0565_0565),
+    PIXMAN_STD_FAST_PATH (IN_REVERSE, a8r8g8b8, null, a8r8g8b8, armv6_composite_in_reverse_8888_8888),
+    PIXMAN_STD_FAST_PATH (IN_REVERSE, a8r8g8b8, null, x8r8g8b8, armv6_composite_in_reverse_8888_8888),
+    PIXMAN_STD_FAST_PATH (IN_REVERSE, a8b8g8r8, null, a8b8g8r8, armv6_composite_in_reverse_8888_8888),
+    PIXMAN_STD_FAST_PATH (IN_REVERSE, a8b8g8r8, null, x8b8g8r8, armv6_composite_in_reverse_8888_8888),
+
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, a8r8g8b8, armv6_composite_over_n_8888_8888_ca),
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, x8r8g8b8, armv6_composite_over_n_8888_8888_ca),
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, a8b8g8r8, armv6_composite_over_n_8888_8888_ca),
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, x8b8g8r8, armv6_composite_over_n_8888_8888_ca),
+
+    SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, r5g6b5, armv6_0565_0565),
+    SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, b5g6r5, armv6_0565_0565),
 
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, armv6_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, armv6_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, armv6_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, a8b8g8r8, armv6_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, x8b8g8r8, armv6_8888_8888),
-    PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, x8b8g8r8, armv6_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, armv6_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, armv6_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, armv6_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, a8b8g8r8, armv6_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, a8b8g8r8, x8b8g8r8, armv6_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (SRC, x8b8g8r8, x8b8g8r8, armv6_8888_8888),
 
     { PIXMAN_OP_NONE },
 };
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-arm.c b/source/libs/pixman/pixman-src/pixman/pixman-arm.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-arm.c
rename to source/libs/pixman/pixman-src/pixman/pixman-arm.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-bits-image.c b/source/libs/pixman/pixman-src/pixman/pixman-bits-image.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-bits-image.c
rename to source/libs/pixman/pixman-src/pixman/pixman-bits-image.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-combine-float.c b/source/libs/pixman/pixman-src/pixman/pixman-combine-float.c
old mode 100755
new mode 100644
similarity index 80%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-combine-float.c
rename to source/libs/pixman/pixman-src/pixman/pixman-combine-float.c
index 5ea739f76..f5145bc9d
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-combine-float.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-combine-float.c
@@ -319,23 +319,44 @@ MAKE_PD_COMBINERS (conjoint_xor,		ONE_MINUS_DA_OVER_SA,		ONE_MINUS_SA_OVER_DA)
  *
  * The following blend modes have been taken from the PDF ISO 32000
  * specification, which at this point in time is available from
- * http://www.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf
- * The relevant chapters are 11.3.5 and 11.3.6.
+ *
+ *     http://www.adobe.com/devnet/pdf/pdf_reference.html
+ *
+ * The specific documents of interest are the PDF spec itself:
+ *
+ *     http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
+ *
+ * chapters 11.3.5 and 11.3.6 and a later supplement for Adobe Acrobat
+ * 9.1 and Reader 9.1:
+ *
+ *     http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/adobe_supplement_iso32000_1.pdf
+ *
+ * that clarifies the specifications for blend modes ColorDodge and
+ * ColorBurn.
+ *
  * The formula for computing the final pixel color given in 11.3.6 is:
- * αr × Cr = (1 – αs) × αb × Cb + (1 – αb) × αs × Cs + αb × αs × B(Cb, Cs)
- * with B() being the blend function.
- * Note that OVER is a special case of this operation, using B(Cb, Cs) = Cs
- *
- * These blend modes should match the SVG filter draft specification, as
- * it has been designed to mirror ISO 32000. Note that at the current point
- * no released draft exists that shows this, as the formulas have not been
- * updated yet after the release of ISO 32000.
- *
- * The default implementation here uses the PDF_SEPARABLE_BLEND_MODE and
- * PDF_NON_SEPARABLE_BLEND_MODE macros, which take the blend function as an
- * argument. Note that this implementation operates on premultiplied colors,
- * while the PDF specification does not. Therefore the code uses the formula
- * ar.Cra = (1 – as) . Dca + (1 – ad) . Sca + B(Dca, ad, Sca, as)
+ *
+ *     αr × Cr = (1 – αs) × αb × Cb + (1 – αb) × αs × Cs + αb × αs × B(Cb, Cs)
+ *
+ * with B() is the blend function. When B(Cb, Cs) = Cs, this formula
+ * reduces to the regular OVER operator.
+ *
+ * Cs and Cb are not premultiplied, so in our implementation we instead
+ * use:
+ *
+ *     cr = (1 – αs) × cb  +  (1 – αb) × cs  +  αb × αs × B (cb/αb, cs/αs)
+ *
+ * where cr, cs, and cb are premultiplied colors, and where the
+ *
+ *     αb × αs × B(cb/αb, cs/αs)
+ *
+ * part is first arithmetically simplified under the assumption that αb
+ * and αs are not 0, and then updated to produce a meaningful result when
+ * they are.
+ *
+ * For all the blend mode operators, the alpha channel is given by
+ *
+ *     αr = αs + αb + αb × αs
  */
 
 #define MAKE_SEPARABLE_PDF_COMBINERS(name)				\
@@ -355,18 +376,55 @@ MAKE_PD_COMBINERS (conjoint_xor,		ONE_MINUS_DA_OVER_SA,		ONE_MINUS_SA_OVER_DA)
     									\
     MAKE_COMBINERS (name, combine_ ## name ## _a, combine_ ## name ## _c)
 
+/*
+ * Multiply
+ *
+ *      ad * as * B(d / ad, s / as)
+ *    = ad * as * d/ad * s/as
+ *    = d * s
+ *
+ */
 static force_inline float
 blend_multiply (float sa, float s, float da, float d)
 {
     return d * s;
 }
 
+/*
+ * Screen
+ *
+ *      ad * as * B(d/ad, s/as)
+ *    = ad * as * (d/ad + s/as - s/as * d/ad)
+ *    = ad * s + as * d - s * d
+ */
 static force_inline float
 blend_screen (float sa, float s, float da, float d)
 {
     return d * sa + s * da - s * d;
 }
 
+/*
+ * Overlay
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = ad * as * Hardlight (s, d)
+ *   = if (d / ad < 0.5)
+ *         as * ad * Multiply (s/as, 2 * d/ad)
+ *     else
+ *         as * ad * Screen (s/as, 2 * d / ad - 1)
+ *   = if (d < 0.5 * ad)
+ *         as * ad * s/as * 2 * d /ad
+ *     else
+ *         as * ad * (s/as + 2 * d / ad - 1 - s / as * (2 * d / ad - 1))
+ *   = if (2 * d < ad)
+ *         2 * s * d
+ *     else
+ *         ad * s + 2 * as * d - as * ad - ad * s * (2 * d / ad - 1)
+ *   = if (2 * d < ad)
+ *         2 * s * d
+ *     else
+ *         as * ad - 2 * (ad - d) * (as - s)
+ */
 static force_inline float
 blend_overlay (float sa, float s, float da, float d)
 {
@@ -376,6 +434,13 @@ blend_overlay (float sa, float s, float da, float d)
 	return sa * da - 2 * (da - d) * (sa - s);
 }
 
+/*
+ * Darken
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = ad * as * MIN(d/ad, s/as)
+ *   = MIN (as * d, ad * s)
+ */
 static force_inline float
 blend_darken (float sa, float s, float da, float d)
 {
@@ -388,6 +453,13 @@ blend_darken (float sa, float s, float da, float d)
 	return s;
 }
 
+/*
+ * Lighten
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = ad * as * MAX(d/ad, s/as)
+ *   = MAX (as * d, ad * s)
+ */
 static force_inline float
 blend_lighten (float sa, float s, float da, float d)
 {
@@ -400,6 +472,24 @@ blend_lighten (float sa, float s, float da, float d)
 	return d;
 }
 
+/*
+ * Color dodge
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = if d/ad = 0
+ *         ad * as * 0
+ *     else if (d/ad >= (1 - s/as)
+ *         ad * as * 1
+ *     else
+ *         ad * as * ((d/ad) / (1 - s/as))
+ *   = if d = 0
+ *         0
+ *     elif as * d >= ad * (as - s)
+ *         ad * as
+ *     else
+ *         as * (as * d / (as - s))
+ *
+ */
 static force_inline float
 blend_color_dodge (float sa, float s, float da, float d)
 {
@@ -413,6 +503,26 @@ blend_color_dodge (float sa, float s, float da, float d)
 	return sa * sa * d / (sa - s);
 }
 
+/*
+ * Color burn
+ *
+ * We modify the first clause "if d = 1" to "if d >= 1" since with
+ * premultiplied colors d > 1 can actually happen.
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = if d/ad >= 1
+ *         ad * as * 1
+ *     elif (1 - d/ad) >= s/as
+ *         ad * as * 0
+ *     else
+ *         ad * as * (1 - ((1 - d/ad) / (s/as)))
+ *   = if d >= ad
+ *         ad * as
+ *     elif as * ad - as * d >= ad * s
+ *         0
+ *     else
+ *         ad * as  - as * as * (ad - d) / s
+ */
 static force_inline float
 blend_color_burn (float sa, float s, float da, float d)
 {
@@ -426,6 +536,23 @@ blend_color_burn (float sa, float s, float da, float d)
 	return sa * (da - sa * (da - d) / s);
 }
 
+/*
+ * Hard light
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = if (s/as <= 0.5)
+ *         ad * as * Multiply (d/ad, 2 * s/as)
+ *     else
+ *         ad * as * Screen (d/ad, 2 * s/as - 1)
+ *   = if 2 * s <= as
+ *         ad * as * d/ad * 2 * s / as
+ *     else
+ *         ad * as * (d/ad + (2 * s/as - 1) + d/ad * (2 * s/as - 1))
+ *   = if 2 * s <= as
+ *         2 * s * d
+ *     else
+ *         as * ad - 2 * (ad - d) * (as - s)
+ */
 static force_inline float
 blend_hard_light (float sa, float s, float da, float d)
 {
@@ -435,10 +562,27 @@ blend_hard_light (float sa, float s, float da, float d)
 	return sa * da - 2 * (da - d) * (sa - s);
 }
 
+/*
+ * Soft light
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = if (s/as <= 0.5)
+ *         ad * as * (d/ad - (1 - 2 * s/as) * d/ad * (1 - d/ad))
+ *     else if (d/ad <= 0.25)
+ *         ad * as * (d/ad + (2 * s/as - 1) * ((((16 * d/ad - 12) * d/ad + 4) * d/ad) - d/ad))
+ *     else
+ *         ad * as * (d/ad + (2 * s/as - 1) * sqrt (d/ad))
+ *   = if (2 * s <= as)
+ *         d * as - d * (ad - d) * (as - 2 * s) / ad;
+ *     else if (4 * d <= ad)
+ *         (2 * s - as) * d * ((16 * d / ad - 12) * d / ad + 3);
+ *     else
+ *         d * as + (sqrt (d * ad) - d) * (2 * s - as);
+ */
 static force_inline float
 blend_soft_light (float sa, float s, float da, float d)
 {
-    if (2 * s < sa)
+    if (2 * s <= sa)
     {
 	if (FLOAT_IS_ZERO (da))
 	    return d * sa;
@@ -449,7 +593,7 @@ blend_soft_light (float sa, float s, float da, float d)
     {
 	if (FLOAT_IS_ZERO (da))
 	{
-	    return 0.0f;
+	    return d * sa;
 	}
 	else
 	{
@@ -461,6 +605,20 @@ blend_soft_light (float sa, float s, float da, float d)
     }
 }
 
+/*
+ * Difference
+ *
+ *     ad * as * B(s/as, d/ad)
+ *   = ad * as * abs (s/as - d/ad)
+ *   = if (s/as <= d/ad)
+ *         ad * as * (d/ad - s/as)
+ *     else
+ *         ad * as * (s/as - d/ad)
+ *   = if (ad * s <= as * d)
+ *        as * d - ad * s
+ *     else
+ *        ad * s - as * d
+ */
 static force_inline float
 blend_difference (float sa, float s, float da, float d)
 {
@@ -473,6 +631,13 @@ blend_difference (float sa, float s, float da, float d)
 	return sda - dsa;
 }
 
+/*
+ * Exclusion
+ *
+ *     ad * as * B(s/as, d/ad)
+ *   = ad * as * (d/ad + s/as - 2 * d/ad * s/as)
+ *   = as * d + ad * s - 2 * s * d
+ */
 static force_inline float
 blend_exclusion (float sa, float s, float da, float d)
 {
@@ -492,116 +657,79 @@ MAKE_SEPARABLE_PDF_COMBINERS (difference)
 MAKE_SEPARABLE_PDF_COMBINERS (exclusion)
 
 /*
- * PDF nonseperable blend modes.
- *
- * These are implemented using the following functions to operate in Hsl
- * space, with Cmax, Cmid, Cmin referring to the max, mid and min value
- * of the red, green and blue components.
+ * PDF nonseperable blend modes are implemented using the following functions
+ * to operate in Hsl space, with Cmax, Cmid, Cmin referring to the max, mid
+ * and min value of the red, green and blue components.
  *
  * LUM (C) = 0.3 × Cred + 0.59 × Cgreen + 0.11 × Cblue
  *
  * clip_color (C):
- *   l = LUM (C)
- *   min = Cmin
- *   max = Cmax
- *   if n < 0.0
- *     C = l + (((C – l) × l) ⁄     (l – min))
- *   if x > 1.0
- *     C = l + (((C – l) × (1 – l)) (max – l))
- *   return C
+ *     l = LUM (C)
+ *     min = Cmin
+ *     max = Cmax
+ *     if n < 0.0
+ *         C = l + (((C – l) × l) ⁄ (l – min))
+ *     if x > 1.0
+ *         C = l + (((C – l) × (1 – l) ) ⁄ (max – l))
+ *     return C
  *
  * set_lum (C, l):
- *   d = l – LUM (C)
- *   C += d
- *   return clip_color (C)
+ *     d = l – LUM (C)
+ *     C += d
+ *     return clip_color (C)
  *
  * SAT (C) = CH_MAX (C) - CH_MIN (C)
  *
  * set_sat (C, s):
- *  if Cmax > Cmin
- *    Cmid = ( ( ( Cmid – Cmin ) × s ) ⁄ ( Cmax – Cmin ) )
- *    Cmax = s
- *  else
- *    Cmid = Cmax = 0.0
- *  Cmin = 0.0
- *  return C
+ *     if Cmax > Cmin
+ *         Cmid = ( ( ( Cmid – Cmin ) × s ) ⁄ ( Cmax – Cmin ) )
+ *         Cmax = s
+ *     else
+ *         Cmid = Cmax = 0.0
+ *         Cmin = 0.0
+ *     return C
  */
 
 /* For premultiplied colors, we need to know what happens when C is
  * multiplied by a real number. LUM and SAT are linear:
  *
- *    LUM (r × C) = r × LUM (C)		SAT (r × C) = r × SAT (C)
+ *     LUM (r × C) = r × LUM (C)	SAT (r * C) = r * SAT (C)
  *
  * If we extend clip_color with an extra argument a and change
  *
- *        if x >= 1.0
+ *     if x >= 1.0
  *
  * into
  *
- *        if x >= a
+ *     if x >= a
  *
  * then clip_color is also linear:
  *
- *     r * clip_color (C, a) = clip_color (r_c, ra);
+ *     r * clip_color (C, a) = clip_color (r * C, r * a);
  *
  * for positive r.
  *
  * Similarly, we can extend set_lum with an extra argument that is just passed
  * on to clip_color:
  *
- *     r × set_lum ( C, l, a)
+ *       r * set_lum (C, l, a)
  *
- *   = r × clip_color ( C + l - LUM (C), a)
+ *     = r × clip_color (C + l - LUM (C), a)
  *
- *   = clip_color ( r * C + r × l - LUM (r × C), r * a)
+ *     = clip_color (r * C + r × l - r * LUM (C), r * a)
  *
- *   = set_lum ( r * C, r * l, r * a)
+ *     = set_lum (r * C, r * l, r * a)
  *
  * Finally, set_sat:
  *
- *     r * set_sat (C, s) = set_sat (x * C, r * s)
+ *       r * set_sat (C, s) = set_sat (x * C, r * s)
  *
- * The above holds for all non-zero x because they x'es in the fraction for
+ * The above holds for all non-zero x, because the x'es in the fraction for
  * C_mid cancel out. Specifically, it holds for x = r:
  *
- *     r * set_sat (C, s) = set_sat (r_c, rs)
- *
- *
- *
- *
- * So, for the non-separable PDF blend modes, we have (using s, d for
- * non-premultiplied colors, and S, D for premultiplied:
- *
- *   Color:
- *
- *     a_s * a_d * B(s, d)
- *   = a_s * a_d * set_lum (S/a_s, LUM (D/a_d), 1)
- *   = set_lum (S * a_d, a_s * LUM (D), a_s * a_d)
- *
- *
- *   Luminosity:
- *
- *     a_s * a_d * B(s, d)
- *   = a_s * a_d * set_lum (D/a_d, LUM(S/a_s), 1)
- *   = set_lum (a_s * D, a_d * LUM(S), a_s * a_d)
- *
- *
- *   Saturation:
- *
- *     a_s * a_d * B(s, d)
- *   = a_s * a_d * set_lum (set_sat (D/a_d, SAT (S/a_s)), LUM (D/a_d), 1)
- *   = set_lum (a_s * a_d * set_sat (D/a_d, SAT (S/a_s)),
- *                                        a_s * LUM (D), a_s * a_d)
- *   = set_lum (set_sat (a_s * D, a_d * SAT (S), a_s * LUM (D), a_s * a_d))
- *
- *   Hue:
- *
- *     a_s * a_d * B(s, d)
- *   = a_s * a_d * set_lum (set_sat (S/a_s, SAT (D/a_d)), LUM (D/a_d), 1)
- *   = set_lum (set_sat (a_d * S, a_s * SAT (D)), a_s * LUM (D), a_s * a_d)
+ *       r * set_sat (C, s) = set_sat (r * C, r * s)
  *
  */
-
 typedef struct
 {
     float	r;
@@ -769,9 +897,12 @@ set_sat (rgb_t *src, float sat)
     *min = 0.0f;
 }
 
-/*
- * Hue:
- * B(Cb, Cs) = set_lum (set_sat (Cs, SAT (Cb)), LUM (Cb))
+/* Hue:
+ *
+ *       as * ad * B(s/as, d/as)
+ *     = as * ad * set_lum (set_sat (s/as, SAT (d/ad)), LUM (d/ad), 1)
+ *     = set_lum (set_sat (ad * s, as * SAT (d)), as * LUM (d), as * ad)
+ *
  */
 static force_inline void
 blend_hsl_hue (rgb_t *res,
@@ -786,9 +917,14 @@ blend_hsl_hue (rgb_t *res,
     set_lum (res, sa * da, get_lum (dest) * sa);
 }
 
-/*
- * Saturation:
- * B(Cb, Cs) = set_lum (set_sat (Cb, SAT (Cs)), LUM (Cb))
+/* 
+ * Saturation
+ *
+ *     as * ad * B(s/as, d/ad)
+ *   = as * ad * set_lum (set_sat (d/ad, SAT (s/as)), LUM (d/ad), 1)
+ *   = set_lum (as * ad * set_sat (d/ad, SAT (s/as)),
+ *                                       as * LUM (d), as * ad)
+ *   = set_lum (set_sat (as * d, ad * SAT (s), as * LUM (d), as * ad))
  */
 static force_inline void
 blend_hsl_saturation (rgb_t *res,
@@ -803,9 +939,12 @@ blend_hsl_saturation (rgb_t *res,
     set_lum (res, sa * da, get_lum (dest) * sa);
 }
 
-/*
- * Color:
- * B(Cb, Cs) = set_lum (Cs, LUM (Cb))
+/* 
+ * Color
+ *
+ *     as * ad * B(s/as, d/as)
+ *   = as * ad * set_lum (s/as, LUM (d/ad), 1)
+ *   = set_lum (s * ad, as * LUM (d), as * ad)
  */
 static force_inline void
 blend_hsl_color (rgb_t *res,
@@ -820,8 +959,11 @@ blend_hsl_color (rgb_t *res,
 }
 
 /*
- * Luminosity:
- * B(Cb, Cs) = set_lum (Cb, LUM (Cs))
+ * Luminosity
+ *
+ *     as * ad * B(s/as, d/ad)
+ *   = as * ad * set_lum (d/ad, LUM (s/as), 1)
+ *   = set_lum (as * d, ad * LUM (s), as * ad)
  */
 static force_inline void
 blend_hsl_luminosity (rgb_t *res,
diff --git a/source/libs/pixman/pixman-src/pixman/pixman-combine32.c b/source/libs/pixman/pixman-src/pixman/pixman-combine32.c
new file mode 100644
index 000000000..4c484d3e3
--- /dev/null
+++ b/source/libs/pixman/pixman-src/pixman/pixman-combine32.c
@@ -0,0 +1,1189 @@
+/*
+ * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
+ *             2005 Lars Knoll & Zack Rusin, Trolltech
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <math.h>
+#include <string.h>
+
+#include "pixman-private.h"
+#include "pixman-combine32.h"
+
+/* component alpha helper functions */
+
+static void
+combine_mask_ca (uint32_t *src, uint32_t *mask)
+{
+    uint32_t a = *mask;
+
+    uint32_t x;
+    uint16_t xa;
+
+    if (!a)
+    {
+	*(src) = 0;
+	return;
+    }
+
+    x = *(src);
+    if (a == ~0)
+    {
+	x = x >> A_SHIFT;
+	x |= x << G_SHIFT;
+	x |= x << R_SHIFT;
+	*(mask) = x;
+	return;
+    }
+
+    xa = x >> A_SHIFT;
+    UN8x4_MUL_UN8x4 (x, a);
+    *(src) = x;
+    
+    UN8x4_MUL_UN8 (a, xa);
+    *(mask) = a;
+}
+
+static void
+combine_mask_value_ca (uint32_t *src, const uint32_t *mask)
+{
+    uint32_t a = *mask;
+    uint32_t x;
+
+    if (!a)
+    {
+	*(src) = 0;
+	return;
+    }
+
+    if (a == ~0)
+	return;
+
+    x = *(src);
+    UN8x4_MUL_UN8x4 (x, a);
+    *(src) = x;
+}
+
+static void
+combine_mask_alpha_ca (const uint32_t *src, uint32_t *mask)
+{
+    uint32_t a = *(mask);
+    uint32_t x;
+
+    if (!a)
+	return;
+
+    x = *(src) >> A_SHIFT;
+    if (x == MASK)
+	return;
+
+    if (a == ~0)
+    {
+	x |= x << G_SHIFT;
+	x |= x << R_SHIFT;
+	*(mask) = x;
+	return;
+    }
+
+    UN8x4_MUL_UN8 (a, x);
+    *(mask) = a;
+}
+
+/*
+ * There are two ways of handling alpha -- either as a single unified value or
+ * a separate value for each component, hence each macro must have two
+ * versions.  The unified alpha version has a 'u' at the end of the name,
+ * the component version has a 'ca'.  Similarly, functions which deal with
+ * this difference will have two versions using the same convention.
+ */
+
+static force_inline uint32_t
+combine_mask (const uint32_t *src, const uint32_t *mask, int i)
+{
+    uint32_t s, m;
+
+    if (mask)
+    {
+	m = *(mask + i) >> A_SHIFT;
+
+	if (!m)
+	    return 0;
+    }
+
+    s = *(src + i);
+
+    if (mask)
+	UN8x4_MUL_UN8 (s, m);
+
+    return s;
+}
+
+static void
+combine_clear (pixman_implementation_t *imp,
+               pixman_op_t              op,
+               uint32_t *               dest,
+               const uint32_t *         src,
+               const uint32_t *         mask,
+               int                      width)
+{
+    memset (dest, 0, width * sizeof (uint32_t));
+}
+
+static void
+combine_dst (pixman_implementation_t *imp,
+	     pixman_op_t	      op,
+	     uint32_t *		      dest,
+	     const uint32_t *	      src,
+	     const uint32_t *         mask,
+	     int		      width)
+{
+    return;
+}
+
+static void
+combine_src_u (pixman_implementation_t *imp,
+               pixman_op_t              op,
+               uint32_t *               dest,
+               const uint32_t *         src,
+               const uint32_t *         mask,
+               int                      width)
+{
+    int i;
+
+    if (!mask)
+    {
+	memcpy (dest, src, width * sizeof (uint32_t));
+    }
+    else
+    {
+	for (i = 0; i < width; ++i)
+	{
+	    uint32_t s = combine_mask (src, mask, i);
+
+	    *(dest + i) = s;
+	}
+    }
+}
+
+static void
+combine_over_u (pixman_implementation_t *imp,
+                pixman_op_t              op,
+                uint32_t *               dest,
+                const uint32_t *         src,
+                const uint32_t *         mask,
+                int                      width)
+{
+    int i;
+
+    if (!mask)
+    {
+	for (i = 0; i < width; ++i)
+	{
+	    uint32_t s = *(src + i);
+	    uint32_t a = ALPHA_8 (s);
+	    if (a == 0xFF)
+	    {
+		*(dest + i) = s;
+	    }
+	    else if (s)
+	    {
+		uint32_t d = *(dest + i);
+		uint32_t ia = a ^ 0xFF;
+		UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
+		*(dest + i) = d;
+	    }
+	}
+    }
+    else
+    {
+	for (i = 0; i < width; ++i)
+	{
+	    uint32_t m = ALPHA_8 (*(mask + i));
+	    if (m == 0xFF)
+	    {
+		uint32_t s = *(src + i);
+		uint32_t a = ALPHA_8 (s);
+		if (a == 0xFF)
+		{
+		    *(dest + i) = s;
+		}
+		else if (s)
+		{
+		    uint32_t d = *(dest + i);
+		    uint32_t ia = a ^ 0xFF;
+		    UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
+		    *(dest + i) = d;
+		}
+	    }
+	    else if (m)
+	    {
+		uint32_t s = *(src + i);
+		if (s)
+		{
+		    uint32_t d = *(dest + i);
+		    UN8x4_MUL_UN8 (s, m);
+		    UN8x4_MUL_UN8_ADD_UN8x4 (d, ALPHA_8 (~s), s);
+		    *(dest + i) = d;
+		}
+	    }
+	}
+    }
+}
+
+static void
+combine_over_reverse_u (pixman_implementation_t *imp,
+                        pixman_op_t              op,
+                        uint32_t *               dest,
+                        const uint32_t *         src,
+                        const uint32_t *         mask,
+                        int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	uint32_t ia = ALPHA_8 (~*(dest + i));
+	UN8x4_MUL_UN8_ADD_UN8x4 (s, ia, d);
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_in_u (pixman_implementation_t *imp,
+              pixman_op_t              op,
+              uint32_t *               dest,
+              const uint32_t *         src,
+              const uint32_t *         mask,
+              int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t a = ALPHA_8 (*(dest + i));
+	UN8x4_MUL_UN8 (s, a);
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_in_reverse_u (pixman_implementation_t *imp,
+                      pixman_op_t              op,
+                      uint32_t *               dest,
+                      const uint32_t *         src,
+                      const uint32_t *         mask,
+                      int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	uint32_t a = ALPHA_8 (s);
+	UN8x4_MUL_UN8 (d, a);
+	*(dest + i) = d;
+    }
+}
+
+static void
+combine_out_u (pixman_implementation_t *imp,
+               pixman_op_t              op,
+               uint32_t *               dest,
+               const uint32_t *         src,
+               const uint32_t *         mask,
+               int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t a = ALPHA_8 (~*(dest + i));
+	UN8x4_MUL_UN8 (s, a);
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_out_reverse_u (pixman_implementation_t *imp,
+                       pixman_op_t              op,
+                       uint32_t *               dest,
+                       const uint32_t *         src,
+                       const uint32_t *         mask,
+                       int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	uint32_t a = ALPHA_8 (~s);
+	UN8x4_MUL_UN8 (d, a);
+	*(dest + i) = d;
+    }
+}
+
+static void
+combine_atop_u (pixman_implementation_t *imp,
+                pixman_op_t              op,
+                uint32_t *               dest,
+                const uint32_t *         src,
+                const uint32_t *         mask,
+                int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	uint32_t dest_a = ALPHA_8 (d);
+	uint32_t src_ia = ALPHA_8 (~s);
+
+	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_a, d, src_ia);
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_atop_reverse_u (pixman_implementation_t *imp,
+                        pixman_op_t              op,
+                        uint32_t *               dest,
+                        const uint32_t *         src,
+                        const uint32_t *         mask,
+                        int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	uint32_t src_a = ALPHA_8 (s);
+	uint32_t dest_ia = ALPHA_8 (~d);
+
+	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_a);
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_xor_u (pixman_implementation_t *imp,
+               pixman_op_t              op,
+               uint32_t *               dest,
+               const uint32_t *         src,
+               const uint32_t *         mask,
+               int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	uint32_t src_ia = ALPHA_8 (~s);
+	uint32_t dest_ia = ALPHA_8 (~d);
+
+	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_ia);
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_add_u (pixman_implementation_t *imp,
+               pixman_op_t              op,
+               uint32_t *               dest,
+               const uint32_t *         src,
+               const uint32_t *         mask,
+               int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	UN8x4_ADD_UN8x4 (d, s);
+	*(dest + i) = d;
+    }
+}
+
+/*
+ * PDF blend modes:
+ *
+ * The following blend modes have been taken from the PDF ISO 32000
+ * specification, which at this point in time is available from
+ *
+ *     http://www.adobe.com/devnet/pdf/pdf_reference.html
+ *
+ * The specific documents of interest are the PDF spec itself:
+ *
+ *     http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
+ *
+ * chapters 11.3.5 and 11.3.6 and a later supplement for Adobe Acrobat
+ * 9.1 and Reader 9.1:
+ *
+ *     http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/adobe_supplement_iso32000_1.pdf
+ *
+ * that clarifies the specifications for blend modes ColorDodge and
+ * ColorBurn.
+ *
+ * The formula for computing the final pixel color given in 11.3.6 is:
+ *
+ *     αr × Cr = (1 – αs) × αb × Cb + (1 – αb) × αs × Cs + αb × αs × B(Cb, Cs)
+ *
+ * with B() is the blend function. When B(Cb, Cs) = Cs, this formula
+ * reduces to the regular OVER operator.
+ *
+ * Cs and Cb are not premultiplied, so in our implementation we instead
+ * use:
+ *
+ *     cr = (1 – αs) × cb  +  (1 – αb) × cs  +  αb × αs × B (cb/αb, cs/αs)
+ *
+ * where cr, cs, and cb are premultiplied colors, and where the
+ *
+ *     αb × αs × B(cb/αb, cs/αs)
+ *
+ * part is first arithmetically simplified under the assumption that αb
+ * and αs are not 0, and then updated to produce a meaningful result when
+ * they are.
+ *
+ * For all the blend mode operators, the alpha channel is given by
+ *
+ *     αr = αs + αb + αb × αs
+ */
+
+/*
+ * Multiply
+ *
+ *      ad * as * B(d / ad, s / as)
+ *    = ad * as * d/ad * s/as
+ *    = d * s
+ *
+ */
+static void
+combine_multiply_u (pixman_implementation_t *imp,
+                    pixman_op_t              op,
+                    uint32_t *               dest,
+                    const uint32_t *         src,
+                    const uint32_t *         mask,
+                    int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = combine_mask (src, mask, i);
+	uint32_t d = *(dest + i);
+	uint32_t ss = s;
+	uint32_t src_ia = ALPHA_8 (~s);
+	uint32_t dest_ia = ALPHA_8 (~d);
+
+	UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (ss, dest_ia, d, src_ia);
+	UN8x4_MUL_UN8x4 (d, s);
+	UN8x4_ADD_UN8x4 (d, ss);
+
+	*(dest + i) = d;
+    }
+}
+
+static void
+combine_multiply_ca (pixman_implementation_t *imp,
+                     pixman_op_t              op,
+                     uint32_t *               dest,
+                     const uint32_t *         src,
+                     const uint32_t *         mask,
+                     int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t m = *(mask + i);
+	uint32_t s = *(src + i);
+	uint32_t d = *(dest + i);
+	uint32_t r = d;
+	uint32_t dest_ia = ALPHA_8 (~d);
+
+	combine_mask_ca (&s, &m);
+
+	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (r, ~m, s, dest_ia);
+	UN8x4_MUL_UN8x4 (d, s);
+	UN8x4_ADD_UN8x4 (r, d);
+
+	*(dest + i) = r;
+    }
+}
+
+#define CLAMP(v, low, high)						\
+    do									\
+    {									\
+	if (v < (low))							\
+	    v = (low);							\
+	if (v > (high))							\
+	    v = (high);							\
+    } while (0)
+
+#define PDF_SEPARABLE_BLEND_MODE(name)					\
+    static void								\
+    combine_ ## name ## _u (pixman_implementation_t *imp,		\
+			    pixman_op_t              op,		\
+                            uint32_t *               dest,		\
+			    const uint32_t *         src,		\
+			    const uint32_t *         mask,		\
+			    int                      width)		\
+    {									\
+	int i;								\
+	for (i = 0; i < width; ++i)					\
+	{								\
+	    uint32_t s = combine_mask (src, mask, i);			\
+	    uint32_t d = *(dest + i);					\
+	    uint8_t sa = ALPHA_8 (s);					\
+	    uint8_t isa = ~sa;						\
+	    uint8_t da = ALPHA_8 (d);					\
+	    uint8_t ida = ~da;						\
+	    int32_t ra, rr, rg, rb;					\
+	    								\
+	    ra = da * 0xff + sa * 0xff - sa * da;			\
+	    rr = isa * RED_8 (d) + ida * RED_8 (s);			\
+	    rg = isa * GREEN_8 (d) + ida * GREEN_8 (s);			\
+	    rb = isa * BLUE_8 (d) + ida * BLUE_8 (s);			\
+									\
+	    rr += blend_ ## name (RED_8 (d), da, RED_8 (s), sa);	\
+	    rg += blend_ ## name (GREEN_8 (d), da, GREEN_8 (s), sa);    \
+	    rb += blend_ ## name (BLUE_8 (d), da, BLUE_8 (s), sa);	\
+                                                                        \
+	    CLAMP (ra, 0, 255 * 255);				        \
+	    CLAMP (rr, 0, 255 * 255);				        \
+	    CLAMP (rg, 0, 255 * 255);				        \
+	    CLAMP (rb, 0, 255 * 255);				        \
+									\
+	    ra = DIV_ONE_UN8 (ra);					\
+	    rr = DIV_ONE_UN8 (rr);					\
+	    rg = DIV_ONE_UN8 (rg);					\
+	    rb = DIV_ONE_UN8 (rb);					\
+									\
+	    *(dest + i) = ra << 24 | rr << 16 | rg << 8 | rb;		\
+	}								\
+    }									\
+    									\
+    static void								\
+    combine_ ## name ## _ca (pixman_implementation_t *imp,		\
+			     pixman_op_t              op,		\
+                             uint32_t *               dest,		\
+			     const uint32_t *         src,		\
+			     const uint32_t *         mask,		\
+			     int                      width)		\
+    {									\
+	int i;								\
+	for (i = 0; i < width; ++i)					\
+	{								\
+	    uint32_t m = *(mask + i);					\
+	    uint32_t s = *(src + i);					\
+	    uint32_t d = *(dest + i);					\
+	    uint8_t da = ALPHA_8 (d);					\
+	    uint8_t ida = ~da;						\
+	    int32_t ra, rr, rg, rb;					\
+	    uint8_t ira, iga, iba;					\
+	    								\
+	    combine_mask_ca (&s, &m);					\
+	    								\
+	    ira = ~RED_8 (m);						\
+	    iga = ~GREEN_8 (m);						\
+	    iba = ~BLUE_8 (m);						\
+									\
+	    ra = da * 0xff + ALPHA_8 (s) * 0xff - ALPHA_8 (s) * da;	\
+	    rr = ira * RED_8 (d) + ida * RED_8 (s);			\
+	    rg = iga * GREEN_8 (d) + ida * GREEN_8 (s);			\
+	    rb = iba * BLUE_8 (d) + ida * BLUE_8 (s);			\
+									\
+	    rr += blend_ ## name (RED_8 (d), da, RED_8 (s), RED_8 (m));	\
+	    rg += blend_ ## name (GREEN_8 (d), da, GREEN_8 (s), GREEN_8 (m)); \
+	    rb += blend_ ## name (BLUE_8 (d), da, BLUE_8 (s), BLUE_8 (m)); \
+									\
+	    CLAMP (ra, 0, 255 * 255);				        \
+	    CLAMP (rr, 0, 255 * 255);				        \
+	    CLAMP (rg, 0, 255 * 255);				        \
+	    CLAMP (rb, 0, 255 * 255);				        \
+									\
+	    ra = DIV_ONE_UN8 (ra);					\
+	    rr = DIV_ONE_UN8 (rr);					\
+	    rg = DIV_ONE_UN8 (rg);					\
+	    rb = DIV_ONE_UN8 (rb);					\
+									\
+	    *(dest + i) = ra << 24 | rr << 16 | rg << 8 | rb;		\
+	}								\
+    }
+
+/*
+ * Screen
+ *
+ *      ad * as * B(d/ad, s/as)
+ *    = ad * as * (d/ad + s/as - s/as * d/ad)
+ *    = ad * s + as * d - s * d
+ */
+static inline int32_t
+blend_screen (int32_t d, int32_t ad, int32_t s, int32_t as)
+{
+    return s * ad + d * as - s * d;
+}
+
+PDF_SEPARABLE_BLEND_MODE (screen)
+
+/*
+ * Overlay
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = ad * as * Hardlight (s, d)
+ *   = if (d / ad < 0.5)
+ *         as * ad * Multiply (s/as, 2 * d/ad)
+ *     else
+ *         as * ad * Screen (s/as, 2 * d / ad - 1)
+ *   = if (d < 0.5 * ad)
+ *         as * ad * s/as * 2 * d /ad
+ *     else
+ *         as * ad * (s/as + 2 * d / ad - 1 - s / as * (2 * d / ad - 1))
+ *   = if (2 * d < ad)
+ *         2 * s * d
+ *     else
+ *         ad * s + 2 * as * d - as * ad - ad * s * (2 * d / ad - 1)
+ *   = if (2 * d < ad)
+ *         2 * s * d
+ *     else
+ *         as * ad - 2 * (ad - d) * (as - s)
+ */
+static inline int32_t
+blend_overlay (int32_t d, int32_t ad, int32_t s, int32_t as)
+{
+    uint32_t r;
+
+    if (2 * d < ad)
+	r = 2 * s * d;
+    else
+	r = as * ad - 2 * (ad - d) * (as - s);
+
+    return r;
+}
+
+PDF_SEPARABLE_BLEND_MODE (overlay)
+
+/*
+ * Darken
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = ad * as * MIN(d/ad, s/as)
+ *   = MIN (as * d, ad * s)
+ */
+static inline int32_t
+blend_darken (int32_t d, int32_t ad, int32_t s, int32_t as)
+{
+    s = ad * s;
+    d = as * d;
+
+    return s > d ? d : s;
+}
+
+PDF_SEPARABLE_BLEND_MODE (darken)
+
+/*
+ * Lighten
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = ad * as * MAX(d/ad, s/as)
+ *   = MAX (as * d, ad * s)
+ */
+static inline int32_t
+blend_lighten (int32_t d, int32_t ad, int32_t s, int32_t as)
+{
+    s = ad * s;
+    d = as * d;
+    
+    return s > d ? s : d;
+}
+
+PDF_SEPARABLE_BLEND_MODE (lighten)
+
+/*
+ * Hard light
+ *
+ *     ad * as * B(d/ad, s/as)
+ *   = if (s/as <= 0.5)
+ *         ad * as * Multiply (d/ad, 2 * s/as)
+ *     else
+ *         ad * as * Screen (d/ad, 2 * s/as - 1)
+ *   = if 2 * s <= as
+ *         ad * as * d/ad * 2 * s / as
+ *     else
+ *         ad * as * (d/ad + (2 * s/as - 1) + d/ad * (2 * s/as - 1))
+ *   = if 2 * s <= as
+ *         2 * s * d
+ *     else
+ *         as * ad - 2 * (ad - d) * (as - s)
+ */
+static inline int32_t
+blend_hard_light (int32_t d, int32_t ad, int32_t s, int32_t as)
+{
+    if (2 * s < as)
+	return 2 * s * d;
+    else
+	return as * ad - 2 * (ad - d) * (as - s);
+}
+
+PDF_SEPARABLE_BLEND_MODE (hard_light)
+
+/*
+ * Difference
+ *
+ *     ad * as * B(s/as, d/ad)
+ *   = ad * as * abs (s/as - d/ad)
+ *   = if (s/as <= d/ad)
+ *         ad * as * (d/ad - s/as)
+ *     else
+ *         ad * as * (s/as - d/ad)
+ *   = if (ad * s <= as * d)
+ *        as * d - ad * s
+ *     else
+ *        ad * s - as * d
+ */
+static inline int32_t
+blend_difference (int32_t d, int32_t ad, int32_t s, int32_t as)
+{
+    int32_t das = d * as;
+    int32_t sad = s * ad;
+
+    if (sad < das)
+	return das - sad;
+    else
+	return sad - das;
+}
+
+PDF_SEPARABLE_BLEND_MODE (difference)
+
+/*
+ * Exclusion
+ *
+ *     ad * as * B(s/as, d/ad)
+ *   = ad * as * (d/ad + s/as - 2 * d/ad * s/as)
+ *   = as * d + ad * s - 2 * s * d
+ */
+
+/* This can be made faster by writing it directly and not using
+ * PDF_SEPARABLE_BLEND_MODE, but that's a performance optimization */
+
+static inline int32_t
+blend_exclusion (int32_t d, int32_t ad, int32_t s, int32_t as)
+{
+    return s * ad + d * as - 2 * d * s;
+}
+
+PDF_SEPARABLE_BLEND_MODE (exclusion)
+
+#undef PDF_SEPARABLE_BLEND_MODE
+
+/* Component alpha combiners */
+
+static void
+combine_clear_ca (pixman_implementation_t *imp,
+                  pixman_op_t              op,
+                  uint32_t *                dest,
+                  const uint32_t *          src,
+                  const uint32_t *          mask,
+                  int                      width)
+{
+    memset (dest, 0, width * sizeof(uint32_t));
+}
+
+static void
+combine_src_ca (pixman_implementation_t *imp,
+                pixman_op_t              op,
+                uint32_t *                dest,
+                const uint32_t *          src,
+                const uint32_t *          mask,
+                int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+
+	combine_mask_value_ca (&s, &m);
+
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_over_ca (pixman_implementation_t *imp,
+                 pixman_op_t              op,
+                 uint32_t *                dest,
+                 const uint32_t *          src,
+                 const uint32_t *          mask,
+                 int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+	uint32_t a;
+
+	combine_mask_ca (&s, &m);
+
+	a = ~m;
+	if (a)
+	{
+	    uint32_t d = *(dest + i);
+	    UN8x4_MUL_UN8x4_ADD_UN8x4 (d, a, s);
+	    s = d;
+	}
+
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_over_reverse_ca (pixman_implementation_t *imp,
+                         pixman_op_t              op,
+                         uint32_t *                dest,
+                         const uint32_t *          src,
+                         const uint32_t *          mask,
+                         int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t d = *(dest + i);
+	uint32_t a = ~d >> A_SHIFT;
+
+	if (a)
+	{
+	    uint32_t s = *(src + i);
+	    uint32_t m = *(mask + i);
+
+	    UN8x4_MUL_UN8x4 (s, m);
+	    UN8x4_MUL_UN8_ADD_UN8x4 (s, a, d);
+
+	    *(dest + i) = s;
+	}
+    }
+}
+
+static void
+combine_in_ca (pixman_implementation_t *imp,
+               pixman_op_t              op,
+               uint32_t *                dest,
+               const uint32_t *          src,
+               const uint32_t *          mask,
+               int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t d = *(dest + i);
+	uint16_t a = d >> A_SHIFT;
+	uint32_t s = 0;
+
+	if (a)
+	{
+	    uint32_t m = *(mask + i);
+
+	    s = *(src + i);
+	    combine_mask_value_ca (&s, &m);
+
+	    if (a != MASK)
+		UN8x4_MUL_UN8 (s, a);
+	}
+
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_in_reverse_ca (pixman_implementation_t *imp,
+                       pixman_op_t              op,
+                       uint32_t *                dest,
+                       const uint32_t *          src,
+                       const uint32_t *          mask,
+                       int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+	uint32_t a;
+
+	combine_mask_alpha_ca (&s, &m);
+
+	a = m;
+	if (a != ~0)
+	{
+	    uint32_t d = 0;
+
+	    if (a)
+	    {
+		d = *(dest + i);
+		UN8x4_MUL_UN8x4 (d, a);
+	    }
+
+	    *(dest + i) = d;
+	}
+    }
+}
+
+static void
+combine_out_ca (pixman_implementation_t *imp,
+                pixman_op_t              op,
+                uint32_t *                dest,
+                const uint32_t *          src,
+                const uint32_t *          mask,
+                int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t d = *(dest + i);
+	uint16_t a = ~d >> A_SHIFT;
+	uint32_t s = 0;
+
+	if (a)
+	{
+	    uint32_t m = *(mask + i);
+
+	    s = *(src + i);
+	    combine_mask_value_ca (&s, &m);
+
+	    if (a != MASK)
+		UN8x4_MUL_UN8 (s, a);
+	}
+
+	*(dest + i) = s;
+    }
+}
+
+static void
+combine_out_reverse_ca (pixman_implementation_t *imp,
+                        pixman_op_t              op,
+                        uint32_t *                dest,
+                        const uint32_t *          src,
+                        const uint32_t *          mask,
+                        int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+	uint32_t a;
+
+	combine_mask_alpha_ca (&s, &m);
+
+	a = ~m;
+	if (a != ~0)
+	{
+	    uint32_t d = 0;
+
+	    if (a)
+	    {
+		d = *(dest + i);
+		UN8x4_MUL_UN8x4 (d, a);
+	    }
+
+	    *(dest + i) = d;
+	}
+    }
+}
+
+static void
+combine_atop_ca (pixman_implementation_t *imp,
+                 pixman_op_t              op,
+                 uint32_t *                dest,
+                 const uint32_t *          src,
+                 const uint32_t *          mask,
+                 int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t d = *(dest + i);
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+	uint32_t ad;
+	uint16_t as = d >> A_SHIFT;
+
+	combine_mask_ca (&s, &m);
+
+	ad = ~m;
+
+	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ad, s, as);
+
+	*(dest + i) = d;
+    }
+}
+
+static void
+combine_atop_reverse_ca (pixman_implementation_t *imp,
+                         pixman_op_t              op,
+                         uint32_t *                dest,
+                         const uint32_t *          src,
+                         const uint32_t *          mask,
+                         int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t d = *(dest + i);
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+	uint32_t ad;
+	uint16_t as = ~d >> A_SHIFT;
+
+	combine_mask_ca (&s, &m);
+
+	ad = m;
+
+	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ad, s, as);
+
+	*(dest + i) = d;
+    }
+}
+
+static void
+combine_xor_ca (pixman_implementation_t *imp,
+                pixman_op_t              op,
+                uint32_t *                dest,
+                const uint32_t *          src,
+                const uint32_t *          mask,
+                int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t d = *(dest + i);
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+	uint32_t ad;
+	uint16_t as = ~d >> A_SHIFT;
+
+	combine_mask_ca (&s, &m);
+
+	ad = ~m;
+
+	UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ad, s, as);
+
+	*(dest + i) = d;
+    }
+}
+
+static void
+combine_add_ca (pixman_implementation_t *imp,
+                pixman_op_t              op,
+                uint32_t *                dest,
+                const uint32_t *          src,
+                const uint32_t *          mask,
+                int                      width)
+{
+    int i;
+
+    for (i = 0; i < width; ++i)
+    {
+	uint32_t s = *(src + i);
+	uint32_t m = *(mask + i);
+	uint32_t d = *(dest + i);
+
+	combine_mask_value_ca (&s, &m);
+
+	UN8x4_ADD_UN8x4 (d, s);
+
+	*(dest + i) = d;
+    }
+}
+
+void
+_pixman_setup_combiner_functions_32 (pixman_implementation_t *imp)
+{
+    /* Unified alpha */
+    imp->combine_32[PIXMAN_OP_CLEAR] = combine_clear;
+    imp->combine_32[PIXMAN_OP_SRC] = combine_src_u;
+    imp->combine_32[PIXMAN_OP_DST] = combine_dst;
+    imp->combine_32[PIXMAN_OP_OVER] = combine_over_u;
+    imp->combine_32[PIXMAN_OP_OVER_REVERSE] = combine_over_reverse_u;
+    imp->combine_32[PIXMAN_OP_IN] = combine_in_u;
+    imp->combine_32[PIXMAN_OP_IN_REVERSE] = combine_in_reverse_u;
+    imp->combine_32[PIXMAN_OP_OUT] = combine_out_u;
+    imp->combine_32[PIXMAN_OP_OUT_REVERSE] = combine_out_reverse_u;
+    imp->combine_32[PIXMAN_OP_ATOP] = combine_atop_u;
+    imp->combine_32[PIXMAN_OP_ATOP_REVERSE] = combine_atop_reverse_u;
+    imp->combine_32[PIXMAN_OP_XOR] = combine_xor_u;
+    imp->combine_32[PIXMAN_OP_ADD] = combine_add_u;
+
+    imp->combine_32[PIXMAN_OP_MULTIPLY] = combine_multiply_u;
+    imp->combine_32[PIXMAN_OP_SCREEN] = combine_screen_u;
+    imp->combine_32[PIXMAN_OP_OVERLAY] = combine_overlay_u;
+    imp->combine_32[PIXMAN_OP_DARKEN] = combine_darken_u;
+    imp->combine_32[PIXMAN_OP_LIGHTEN] = combine_lighten_u;
+    imp->combine_32[PIXMAN_OP_HARD_LIGHT] = combine_hard_light_u;
+    imp->combine_32[PIXMAN_OP_DIFFERENCE] = combine_difference_u;
+    imp->combine_32[PIXMAN_OP_EXCLUSION] = combine_exclusion_u;
+
+    /* Component alpha combiners */
+    imp->combine_32_ca[PIXMAN_OP_CLEAR] = combine_clear_ca;
+    imp->combine_32_ca[PIXMAN_OP_SRC] = combine_src_ca;
+    /* dest */
+    imp->combine_32_ca[PIXMAN_OP_OVER] = combine_over_ca;
+    imp->combine_32_ca[PIXMAN_OP_OVER_REVERSE] = combine_over_reverse_ca;
+    imp->combine_32_ca[PIXMAN_OP_IN] = combine_in_ca;
+    imp->combine_32_ca[PIXMAN_OP_IN_REVERSE] = combine_in_reverse_ca;
+    imp->combine_32_ca[PIXMAN_OP_OUT] = combine_out_ca;
+    imp->combine_32_ca[PIXMAN_OP_OUT_REVERSE] = combine_out_reverse_ca;
+    imp->combine_32_ca[PIXMAN_OP_ATOP] = combine_atop_ca;
+    imp->combine_32_ca[PIXMAN_OP_ATOP_REVERSE] = combine_atop_reverse_ca;
+    imp->combine_32_ca[PIXMAN_OP_XOR] = combine_xor_ca;
+    imp->combine_32_ca[PIXMAN_OP_ADD] = combine_add_ca;
+
+    imp->combine_32_ca[PIXMAN_OP_MULTIPLY] = combine_multiply_ca;
+    imp->combine_32_ca[PIXMAN_OP_SCREEN] = combine_screen_ca;
+    imp->combine_32_ca[PIXMAN_OP_OVERLAY] = combine_overlay_ca;
+    imp->combine_32_ca[PIXMAN_OP_DARKEN] = combine_darken_ca;
+    imp->combine_32_ca[PIXMAN_OP_LIGHTEN] = combine_lighten_ca;
+    imp->combine_32_ca[PIXMAN_OP_HARD_LIGHT] = combine_hard_light_ca;
+    imp->combine_32_ca[PIXMAN_OP_DIFFERENCE] = combine_difference_ca;
+    imp->combine_32_ca[PIXMAN_OP_EXCLUSION] = combine_exclusion_ca;
+}
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-combine32.h b/source/libs/pixman/pixman-src/pixman/pixman-combine32.h
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-combine32.h
rename to source/libs/pixman/pixman-src/pixman/pixman-combine32.h
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-compiler.h b/source/libs/pixman/pixman-src/pixman/pixman-compiler.h
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-compiler.h
rename to source/libs/pixman/pixman-src/pixman/pixman-compiler.h
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-conical-gradient.c b/source/libs/pixman/pixman-src/pixman/pixman-conical-gradient.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-conical-gradient.c
rename to source/libs/pixman/pixman-src/pixman/pixman-conical-gradient.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-edge-accessors.c b/source/libs/pixman/pixman-src/pixman/pixman-edge-accessors.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-edge-accessors.c
rename to source/libs/pixman/pixman-src/pixman/pixman-edge-accessors.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-edge-imp.h b/source/libs/pixman/pixman-src/pixman/pixman-edge-imp.h
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-edge-imp.h
rename to source/libs/pixman/pixman-src/pixman/pixman-edge-imp.h
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-edge.c b/source/libs/pixman/pixman-src/pixman/pixman-edge.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-edge.c
rename to source/libs/pixman/pixman-src/pixman/pixman-edge.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-fast-path.c b/source/libs/pixman/pixman-src/pixman/pixman-fast-path.c
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-fast-path.c
rename to source/libs/pixman/pixman-src/pixman/pixman-fast-path.c
index c6e43de10..53d4a1f90
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-fast-path.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-fast-path.c
@@ -2343,6 +2343,8 @@ fast_fetch_bilinear_cover (pixman_iter_t *iter, const uint32_t *mask)
     int32_t dist_y;
     int i;
 
+    COMPILE_TIME_ASSERT (BILINEAR_INTERPOLATION_BITS < 8);
+
     fx = info->x;
     ux = iter->image->common.transform->matrix[0][0];
 
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-filter.c b/source/libs/pixman/pixman-src/pixman/pixman-filter.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-filter.c
rename to source/libs/pixman/pixman-src/pixman/pixman-filter.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-general.c b/source/libs/pixman/pixman-src/pixman/pixman-general.c
old mode 100755
new mode 100644
similarity index 91%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-general.c
rename to source/libs/pixman/pixman-src/pixman/pixman-general.c
index f82ea7d71..6141cb0a3
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-general.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-general.c
@@ -109,6 +109,20 @@ static const op_info_t op_flags[PIXMAN_N_OPERATORS] =
 
 #define SCANLINE_BUFFER_LENGTH 8192
 
+static pixman_bool_t
+operator_needs_division (pixman_op_t op)
+{
+    static const uint8_t needs_division[] =
+    {
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, /* SATURATE */
+	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, /* DISJOINT */
+	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, /* CONJOINT */
+	0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, /* blend ops */
+    };
+
+    return needs_division[op];
+}
+
 static void
 general_composite_rect  (pixman_implementation_t *imp,
                          pixman_composite_info_t *info)
@@ -124,9 +138,10 @@ general_composite_rect  (pixman_implementation_t *imp,
     int Bpp;
     int i;
 
-    if ((src_image->common.flags & FAST_PATH_NARROW_FORMAT)		    &&
-	(!mask_image || mask_image->common.flags & FAST_PATH_NARROW_FORMAT) &&
-	(dest_image->common.flags & FAST_PATH_NARROW_FORMAT))
+    if ((src_image->common.flags & FAST_PATH_NARROW_FORMAT)		     &&
+	(!mask_image || mask_image->common.flags & FAST_PATH_NARROW_FORMAT)  &&
+	(dest_image->common.flags & FAST_PATH_NARROW_FORMAT)		     &&
+	!(operator_needs_division (op)))
     {
 	width_flag = ITER_NARROW;
 	Bpp = 4;
@@ -143,9 +158,9 @@ general_composite_rect  (pixman_implementation_t *imp,
     if (width <= 0 || _pixman_multiply_overflows_int (width, Bpp * 3))
 	return;
 
-    if (width * Bpp * 3 > sizeof (stack_scanline_buffer) - 32 * 3)
+    if (width * Bpp * 3 > sizeof (stack_scanline_buffer) - 15 * 3)
     {
-	scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 32 * 3);
+	scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 15 * 3);
 
 	if (!scanline_buffer)
 	    return;
@@ -181,11 +196,7 @@ general_composite_rect  (pixman_implementation_t *imp,
 	mask_image = NULL;
     }
 
-    component_alpha =
-        mask_image			      &&
-        mask_image->common.type == BITS       &&
-        mask_image->common.component_alpha    &&
-        PIXMAN_FORMAT_RGB (mask_image->bits.format);
+    component_alpha = mask_image && mask_image->common.component_alpha;
 
     _pixman_implementation_iter_init (
 	imp->toplevel, &mask_iter,
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-glyph.c b/source/libs/pixman/pixman-src/pixman/pixman-glyph.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-glyph.c
rename to source/libs/pixman/pixman-src/pixman/pixman-glyph.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-gradient-walker.c b/source/libs/pixman/pixman-src/pixman/pixman-gradient-walker.c
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-gradient-walker.c
rename to source/libs/pixman/pixman-src/pixman/pixman-gradient-walker.c
index 5944a559a..822f8e62b
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-gradient-walker.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-gradient-walker.c
@@ -54,7 +54,7 @@ static void
 gradient_walker_reset (pixman_gradient_walker_t *walker,
 		       pixman_fixed_48_16_t      pos)
 {
-    int32_t x, left_x, right_x;
+    int64_t x, left_x, right_x;
     pixman_color_t *left_c, *right_c;
     int n, count = walker->num_stops;
     pixman_gradient_stop_t *stops = walker->stops;
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-image.c b/source/libs/pixman/pixman-src/pixman/pixman-image.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-image.c
rename to source/libs/pixman/pixman-src/pixman/pixman-image.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-implementation.c b/source/libs/pixman/pixman-src/pixman/pixman-implementation.c
old mode 100755
new mode 100644
similarity index 96%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-implementation.c
rename to source/libs/pixman/pixman-src/pixman/pixman-implementation.c
index 588405451..2c7de4c68
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-implementation.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-implementation.c
@@ -380,6 +380,11 @@ _pixman_disabled (const char *name)
     return FALSE;
 }
 
+static const pixman_fast_path_t empty_fast_path[] =
+{
+    { PIXMAN_OP_NONE }
+};
+
 pixman_implementation_t *
 _pixman_choose_implementation (void)
 {
@@ -397,5 +402,16 @@ _pixman_choose_implementation (void)
 
     imp = _pixman_implementation_create_noop (imp);
 
+    if (_pixman_disabled ("wholeops"))
+    {
+        pixman_implementation_t *cur;
+
+        /* Disable all whole-operation paths except the general one,
+         * so that optimized iterators are used as much as possible.
+         */
+        for (cur = imp; cur->fallback; cur = cur->fallback)
+            cur->fast_paths = empty_fast_path;
+    }
+
     return imp;
 }
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-inlines.h b/source/libs/pixman/pixman-src/pixman/pixman-inlines.h
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-inlines.h
rename to source/libs/pixman/pixman-src/pixman/pixman-inlines.h
index dd1c2f17f..1c8441d6d
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-inlines.h
+++ b/source/libs/pixman/pixman-src/pixman/pixman-inlines.h
@@ -747,7 +747,8 @@ fast_composite_scaled_nearest  ## scale_func_name (pixman_implementation_t *imp,
 #define SIMPLE_NEAREST_SOLID_MASK_FAST_PATH(op,s,d,func)		\
     SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_COVER (op,s,d,func),		\
     SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NONE (op,s,d,func),		\
-    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_PAD (op,s,d,func)
+    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_PAD (op,s,d,func),              \
+    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (op,s,d,func)
 
 /*****************************************************************************/
 
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-linear-gradient.c b/source/libs/pixman/pixman-src/pixman/pixman-linear-gradient.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-linear-gradient.c
rename to source/libs/pixman/pixman-src/pixman/pixman-linear-gradient.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-matrix.c b/source/libs/pixman/pixman-src/pixman/pixman-matrix.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-matrix.c
rename to source/libs/pixman/pixman-src/pixman/pixman-matrix.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2-asm.S b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2-asm.S
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2-asm.S
rename to source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2-asm.S
index 866e93e58..9dad163b7
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2-asm.S
+++ b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2-asm.S
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * Author:  Nemanja Lukic (nlukic@mips.com)
+ * Author:  Nemanja Lukic (nemanja.lukic@rt-rk.com)
  */
 
 #include "pixman-private.h"
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2-asm.h b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2-asm.h
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2-asm.h
rename to source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2-asm.h
index 11849bd66..e23856619
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2-asm.h
+++ b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2-asm.h
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * Author:  Nemanja Lukic (nlukic@mips.com)
+ * Author:  Nemanja Lukic (nemanja.lukic@rt-rk.com)
  */
 
 #ifndef PIXMAN_MIPS_DSPR2_ASM_H
@@ -72,10 +72,8 @@
 #define LEAF_MIPS32R2(symbol)                           \
                 .globl  symbol;                         \
                 .align  2;                              \
-#ifdef __ELF__
                 .hidden symbol;                         \
                 .type   symbol, @function;              \
-#endif
                 .ent    symbol, 0;                      \
 symbol:         .frame  sp, 0, ra;                      \
                 .set    push;                           \
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2.c b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2.c
old mode 100755
new mode 100644
similarity index 98%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2.c
rename to source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2.c
index e10c9df0a..87969ae70
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2.c
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * Author:  Nemanja Lukic (nlukic@mips.com)
+ * Author:  Nemanja Lukic (nemanja.lukic@rt-rk.com)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -388,11 +388,11 @@ static const pixman_fast_path_t mips_dspr2_fast_paths[] =
     SIMPLE_NEAREST_FAST_PATH_PAD (SRC, r5g6b5, a8r8g8b8, mips_0565_8888),
     SIMPLE_NEAREST_FAST_PATH_PAD (SRC, b5g6r5, a8b8g8r8, mips_0565_8888),
 
-    PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8r8g8b8, r5g6b5, mips_8888_8_0565),
-    PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8b8g8r8, b5g6r5, mips_8888_8_0565),
+    SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8r8g8b8, r5g6b5, mips_8888_8_0565),
+    SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8b8g8r8, b5g6r5, mips_8888_8_0565),
 
-    PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, r5g6b5, r5g6b5, mips_0565_8_0565),
-    PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, b5g6r5, b5g6r5, mips_0565_8_0565),
+    SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, r5g6b5, r5g6b5, mips_0565_8_0565),
+    SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, b5g6r5, b5g6r5, mips_0565_8_0565),
 
     SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, mips_8888_8888),
     SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, mips_8888_8888),
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2.h b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2.h
old mode 100755
new mode 100644
similarity index 98%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2.h
rename to source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2.h
index 955ed70b8..57b38359e
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-dspr2.h
+++ b/source/libs/pixman/pixman-src/pixman/pixman-mips-dspr2.h
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * Author:  Nemanja Lukic (nlukic@mips.com)
+ * Author:  Nemanja Lukic (nemanja.lukic@rt-rk.com)
  */
 
 #ifndef PIXMAN_MIPS_DSPR2_H
@@ -328,12 +328,6 @@ FAST_NEAREST_MAINLOOP_COMMON (mips_##name##_pad_##op,                         \
                               scaled_nearest_scanline_mips_##name##_##op,     \
                               src_type, uint8_t, dst_type, PAD, TRUE, FALSE)
 
-/* Provide entries for the fast path table */
-#define PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH(op,s,d,func)             \
-    SIMPLE_NEAREST_A8_MASK_FAST_PATH_COVER (op,s,d,func),                     \
-    SIMPLE_NEAREST_A8_MASK_FAST_PATH_NONE (op,s,d,func),                      \
-    SIMPLE_NEAREST_A8_MASK_FAST_PATH_PAD (op,s,d,func)
-
 /****************************************************************************/
 
 #define PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST(flags, name, op,            \
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-memcpy-asm.S b/source/libs/pixman/pixman-src/pixman/pixman-mips-memcpy-asm.S
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-mips-memcpy-asm.S
rename to source/libs/pixman/pixman-src/pixman/pixman-mips-memcpy-asm.S
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mips.c b/source/libs/pixman/pixman-src/pixman/pixman-mips.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-mips.c
rename to source/libs/pixman/pixman-src/pixman/pixman-mips.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mmx.c b/source/libs/pixman/pixman-src/pixman/pixman-mmx.c
old mode 100755
new mode 100644
similarity index 96%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-mmx.c
rename to source/libs/pixman/pixman-src/pixman/pixman-mmx.c
index f9a92ce09..dec397432
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-mmx.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-mmx.c
@@ -89,21 +89,7 @@ _mm_mulhi_pu16 (__m64 __A, __m64 __B)
     return __A;
 }
 
-#  ifdef __OPTIMIZE__
-extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_shuffle_pi16 (__m64 __A, int8_t const __N)
-{
-    __m64 ret;
-
-    asm ("pshufw %2, %1, %0\n\t"
-	: "=y" (ret)
-	: "y" (__A), "K" (__N)
-    );
-
-    return ret;
-}
-#  else
-#   define _mm_shuffle_pi16(A, N)					\
+# define _mm_shuffle_pi16(A, N)						\
     ({									\
 	__m64 ret;							\
 									\
@@ -114,7 +100,6 @@ _mm_shuffle_pi16 (__m64 __A, int8_t const __N)
 									\
 	ret;								\
     })
-#  endif
 # endif
 #endif
 
@@ -3555,6 +3540,105 @@ mmx_composite_over_reverse_n_8888 (pixman_implementation_t *imp,
     _mm_empty ();
 }
 
+static force_inline void
+scaled_nearest_scanline_mmx_8888_8888_OVER (uint32_t*       pd,
+                                            const uint32_t* ps,
+                                            int32_t         w,
+                                            pixman_fixed_t  vx,
+                                            pixman_fixed_t  unit_x,
+                                            pixman_fixed_t  src_width_fixed,
+                                            pixman_bool_t   fully_transparent_src)
+{
+    if (fully_transparent_src)
+	return;
+
+    while (w)
+    {
+	__m64 d = load (pd);
+	__m64 s = load (ps + pixman_fixed_to_int (vx));
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+
+	store8888 (pd, core_combine_over_u_pixel_mmx (s, d));
+	pd++;
+
+	w--;
+    }
+
+    _mm_empty ();
+}
+
+FAST_NEAREST_MAINLOOP (mmx_8888_8888_cover_OVER,
+		       scaled_nearest_scanline_mmx_8888_8888_OVER,
+		       uint32_t, uint32_t, COVER)
+FAST_NEAREST_MAINLOOP (mmx_8888_8888_none_OVER,
+		       scaled_nearest_scanline_mmx_8888_8888_OVER,
+		       uint32_t, uint32_t, NONE)
+FAST_NEAREST_MAINLOOP (mmx_8888_8888_pad_OVER,
+		       scaled_nearest_scanline_mmx_8888_8888_OVER,
+		       uint32_t, uint32_t, PAD)
+FAST_NEAREST_MAINLOOP (mmx_8888_8888_normal_OVER,
+		       scaled_nearest_scanline_mmx_8888_8888_OVER,
+		       uint32_t, uint32_t, NORMAL)
+
+static force_inline void
+scaled_nearest_scanline_mmx_8888_n_8888_OVER (const uint32_t * mask,
+					      uint32_t *       dst,
+					      const uint32_t * src,
+					      int32_t          w,
+					      pixman_fixed_t   vx,
+					      pixman_fixed_t   unit_x,
+					      pixman_fixed_t   src_width_fixed,
+					      pixman_bool_t    zero_src)
+{
+    __m64 mm_mask;
+
+    if (zero_src || (*mask >> 24) == 0)
+    {
+	/* A workaround for https://gcc.gnu.org/PR47759 */
+	_mm_empty ();
+	return;
+    }
+
+    mm_mask = expand_alpha (load8888 (mask));
+
+    while (w)
+    {
+	uint32_t s = *(src + pixman_fixed_to_int (vx));
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+
+	if (s)
+	{
+	    __m64 ms = load8888 (&s);
+	    __m64 alpha = expand_alpha (ms);
+	    __m64 dest  = load8888 (dst);
+
+	    store8888 (dst, (in_over (ms, alpha, mm_mask, dest)));
+	}
+
+	dst++;
+	w--;
+    }
+
+    _mm_empty ();
+}
+
+FAST_NEAREST_MAINLOOP_COMMON (mmx_8888_n_8888_cover_OVER,
+			      scaled_nearest_scanline_mmx_8888_n_8888_OVER,
+			      uint32_t, uint32_t, uint32_t, COVER, TRUE, TRUE)
+FAST_NEAREST_MAINLOOP_COMMON (mmx_8888_n_8888_pad_OVER,
+			      scaled_nearest_scanline_mmx_8888_n_8888_OVER,
+			      uint32_t, uint32_t, uint32_t, PAD, TRUE, TRUE)
+FAST_NEAREST_MAINLOOP_COMMON (mmx_8888_n_8888_none_OVER,
+			      scaled_nearest_scanline_mmx_8888_n_8888_OVER,
+			      uint32_t, uint32_t, uint32_t, NONE, TRUE, TRUE)
+FAST_NEAREST_MAINLOOP_COMMON (mmx_8888_n_8888_normal_OVER,
+			      scaled_nearest_scanline_mmx_8888_n_8888_OVER,
+			      uint32_t, uint32_t, uint32_t, NORMAL, TRUE, TRUE)
+
 #define BSHIFT ((1 << BILINEAR_INTERPOLATION_BITS))
 #define BMSK (BSHIFT - 1)
 
@@ -3995,6 +4079,16 @@ static const pixman_fast_path_t mmx_fast_paths[] =
     PIXMAN_STD_FAST_PATH    (IN,   a8,       null,     a8,       mmx_composite_in_8_8              ),
     PIXMAN_STD_FAST_PATH    (IN,   solid,    a8,       a8,       mmx_composite_in_n_8_8            ),
 
+    SIMPLE_NEAREST_FAST_PATH (OVER,   a8r8g8b8, x8r8g8b8, mmx_8888_8888                            ),
+    SIMPLE_NEAREST_FAST_PATH (OVER,   a8b8g8r8, x8b8g8r8, mmx_8888_8888                            ),
+    SIMPLE_NEAREST_FAST_PATH (OVER,   a8r8g8b8, a8r8g8b8, mmx_8888_8888                            ),
+    SIMPLE_NEAREST_FAST_PATH (OVER,   a8b8g8r8, a8b8g8r8, mmx_8888_8888                            ),
+
+    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, mmx_8888_n_8888                 ),
+    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, mmx_8888_n_8888                 ),
+    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, mmx_8888_n_8888                 ),
+    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, mmx_8888_n_8888                 ),
+
     SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8,          a8r8g8b8, mmx_8888_8888                     ),
     SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8,          x8r8g8b8, mmx_8888_8888                     ),
     SIMPLE_BILINEAR_FAST_PATH (SRC, x8r8g8b8,          x8r8g8b8, mmx_8888_8888                     ),
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-noop.c b/source/libs/pixman/pixman-src/pixman/pixman-noop.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-noop.c
rename to source/libs/pixman/pixman-src/pixman/pixman-noop.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-ppc.c b/source/libs/pixman/pixman-src/pixman/pixman-ppc.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-ppc.c
rename to source/libs/pixman/pixman-src/pixman/pixman-ppc.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-private.h b/source/libs/pixman/pixman-src/pixman/pixman-private.h
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-private.h
rename to source/libs/pixman/pixman-src/pixman/pixman-private.h
index 6ca13b216..73108a01d
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-private.h
+++ b/source/libs/pixman/pixman-src/pixman/pixman-private.h
@@ -7,7 +7,7 @@
  * The defines which are shared between C and assembly code
  */
 
-/* bilinear interpolation precision (must be <= 8) */
+/* bilinear interpolation precision (must be < 8) */
 #define BILINEAR_INTERPOLATION_BITS 7
 #define BILINEAR_INTERPOLATION_RANGE (1 << BILINEAR_INTERPOLATION_BITS)
 
@@ -345,8 +345,8 @@ typedef struct
     float		    r_s, r_b;
     float		    g_s, g_b;
     float		    b_s, b_b;
-    pixman_fixed_t	    left_x;
-    pixman_fixed_t          right_x;
+    pixman_fixed_48_16_t    left_x;
+    pixman_fixed_48_16_t    right_x;
 
     pixman_gradient_stop_t *stops;
     int                     num_stops;
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-radial-gradient.c b/source/libs/pixman/pixman-src/pixman/pixman-radial-gradient.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-radial-gradient.c
rename to source/libs/pixman/pixman-src/pixman/pixman-radial-gradient.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-region.c b/source/libs/pixman/pixman-src/pixman/pixman-region.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-region.c
rename to source/libs/pixman/pixman-src/pixman/pixman-region.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-region16.c b/source/libs/pixman/pixman-src/pixman/pixman-region16.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-region16.c
rename to source/libs/pixman/pixman-src/pixman/pixman-region16.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-region32.c b/source/libs/pixman/pixman-src/pixman/pixman-region32.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-region32.c
rename to source/libs/pixman/pixman-src/pixman/pixman-region32.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-solid-fill.c b/source/libs/pixman/pixman-src/pixman/pixman-solid-fill.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-solid-fill.c
rename to source/libs/pixman/pixman-src/pixman/pixman-solid-fill.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-sse2.c b/source/libs/pixman/pixman-src/pixman/pixman-sse2.c
old mode 100755
new mode 100644
similarity index 99%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-sse2.c
rename to source/libs/pixman/pixman-src/pixman/pixman-sse2.c
index a6e780815..895510372
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-sse2.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-sse2.c
@@ -6274,31 +6274,15 @@ static const pixman_fast_path_t sse2_fast_paths[] =
     PIXMAN_STD_FAST_PATH (IN, solid, a8, a8, sse2_composite_in_n_8_8),
     PIXMAN_STD_FAST_PATH (IN, solid, null, a8, sse2_composite_in_n_8),
 
-    SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_COVER (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NONE (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_PAD (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
-    SIMPLE_NEAREST_FAST_PATH_NORMAL (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
 
     SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_n_8888),
     SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_n_8888),
     SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_n_8888),
     SIMPLE_NEAREST_SOLID_MASK_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_n_8888),
-    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_n_8888),
-    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_n_8888),
-    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_n_8888),
-    SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_n_8888),
 
     SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
     SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-ssse3.c b/source/libs/pixman/pixman-src/pixman/pixman-ssse3.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-ssse3.c
rename to source/libs/pixman/pixman-src/pixman/pixman-ssse3.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-timer.c b/source/libs/pixman/pixman-src/pixman/pixman-timer.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-timer.c
rename to source/libs/pixman/pixman-src/pixman/pixman-timer.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-trap.c b/source/libs/pixman/pixman-src/pixman/pixman-trap.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-trap.c
rename to source/libs/pixman/pixman-src/pixman/pixman-trap.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-utils.c b/source/libs/pixman/pixman-src/pixman/pixman-utils.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-utils.c
rename to source/libs/pixman/pixman-src/pixman/pixman-utils.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-version.h.in b/source/libs/pixman/pixman-src/pixman/pixman-version.h.in
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-version.h.in
rename to source/libs/pixman/pixman-src/pixman/pixman-version.h.in
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-vmx.c b/source/libs/pixman/pixman-src/pixman/pixman-vmx.c
old mode 100755
new mode 100644
similarity index 61%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-vmx.c
rename to source/libs/pixman/pixman-src/pixman/pixman-vmx.c
index c33631c0e..41efdcfa1
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman-vmx.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman-vmx.c
@@ -30,17 +30,41 @@
 #endif
 #include "pixman-private.h"
 #include "pixman-combine32.h"
+#include "pixman-inlines.h"
 #include <altivec.h>
 
 #define AVV(x...) {x}
 
+static vector unsigned int mask_ff000000;
+static vector unsigned int mask_red;
+static vector unsigned int mask_green;
+static vector unsigned int mask_blue;
+static vector unsigned int mask_565_fix_rb;
+static vector unsigned int mask_565_fix_g;
+
 static force_inline vector unsigned int
 splat_alpha (vector unsigned int pix)
 {
+#ifdef WORDS_BIGENDIAN
     return vec_perm (pix, pix,
 		     (vector unsigned char)AVV (
 			 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04,
 			 0x08, 0x08, 0x08, 0x08, 0x0C, 0x0C, 0x0C, 0x0C));
+#else
+    return vec_perm (pix, pix,
+		     (vector unsigned char)AVV (
+			 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07,
+			 0x0B, 0x0B, 0x0B, 0x0B, 0x0F, 0x0F, 0x0F, 0x0F));
+#endif
+}
+
+static force_inline vector unsigned int
+splat_pixel (vector unsigned int pix)
+{
+    return vec_perm (pix, pix,
+		     (vector unsigned char)AVV (
+			 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
+			 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03));
 }
 
 static force_inline vector unsigned int
@@ -50,12 +74,22 @@ pix_multiply (vector unsigned int p, vector unsigned int a)
 
     /* unpack to short */
     hi = (vector unsigned short)
+#ifdef WORDS_BIGENDIAN
 	vec_mergeh ((vector unsigned char)AVV (0),
 		    (vector unsigned char)p);
+#else
+	vec_mergeh ((vector unsigned char) p,
+		    (vector unsigned char) AVV (0));
+#endif
 
     mod = (vector unsigned short)
+#ifdef WORDS_BIGENDIAN
 	vec_mergeh ((vector unsigned char)AVV (0),
 		    (vector unsigned char)a);
+#else
+	vec_mergeh ((vector unsigned char) a,
+		    (vector unsigned char) AVV (0));
+#endif
 
     hi = vec_mladd (hi, mod, (vector unsigned short)
                     AVV (0x0080, 0x0080, 0x0080, 0x0080,
@@ -67,11 +101,22 @@ pix_multiply (vector unsigned int p, vector unsigned int a)
 
     /* unpack to short */
     lo = (vector unsigned short)
+#ifdef WORDS_BIGENDIAN
 	vec_mergel ((vector unsigned char)AVV (0),
 		    (vector unsigned char)p);
+#else
+	vec_mergel ((vector unsigned char) p,
+		    (vector unsigned char) AVV (0));
+#endif
+
     mod = (vector unsigned short)
+#ifdef WORDS_BIGENDIAN
 	vec_mergel ((vector unsigned char)AVV (0),
 		    (vector unsigned char)a);
+#else
+	vec_mergel ((vector unsigned char) a,
+		    (vector unsigned char) AVV (0));
+#endif
 
     lo = vec_mladd (lo, mod, (vector unsigned short)
                     AVV (0x0080, 0x0080, 0x0080, 0x0080,
@@ -129,6 +174,7 @@ over (vector unsigned int src,
     over (pix_multiply (src, mask),					\
           pix_multiply (srca, mask), dest)
 
+#ifdef WORDS_BIGENDIAN
 
 #define COMPUTE_SHIFT_MASK(source)					\
     source ## _mask = vec_lvsl (0, source);
@@ -140,36 +186,305 @@ over (vector unsigned int src,
     mask ## _mask = vec_lvsl (0, mask);					\
     source ## _mask = vec_lvsl (0, source);
 
-/* notice you have to declare temp vars...
- * Note: tmp3 and tmp4 must remain untouched!
- */
-
-#define LOAD_VECTORS(dest, source)			  \
+#define LOAD_VECTOR(source)				  \
+do							  \
+{							  \
+    vector unsigned char tmp1, tmp2;			  \
     tmp1 = (typeof(tmp1))vec_ld (0, source);		  \
     tmp2 = (typeof(tmp2))vec_ld (15, source);		  \
-    v ## source = (typeof(v ## source))			  \
+    v ## source = (typeof(v ## source)) 		  \
 	vec_perm (tmp1, tmp2, source ## _mask);		  \
-    v ## dest = (typeof(v ## dest))vec_ld (0, dest);
+} while (0)
 
-#define LOAD_VECTORSC(dest, source, mask)		  \
-    tmp1 = (typeof(tmp1))vec_ld (0, source);		  \
-    tmp2 = (typeof(tmp2))vec_ld (15, source);		  \
-    v ## source = (typeof(v ## source))			  \
-	vec_perm (tmp1, tmp2, source ## _mask);		  \
-    tmp1 = (typeof(tmp1))vec_ld (0, mask);		  \
+#define LOAD_VECTORS(dest, source)			  \
+do							  \
+{							  \
+    LOAD_VECTOR(source);				  \
     v ## dest = (typeof(v ## dest))vec_ld (0, dest);	  \
-    tmp2 = (typeof(tmp2))vec_ld (15, mask);		  \
-    v ## mask = (typeof(v ## mask))			  \
-	vec_perm (tmp1, tmp2, mask ## _mask);
+} while (0)
+
+#define LOAD_VECTORSC(dest, source, mask)		  \
+do							  \
+{							  \
+    LOAD_VECTORS(dest, source); 			  \
+    LOAD_VECTOR(mask);					  \
+} while (0)
+
+#define DECLARE_SRC_MASK_VAR vector unsigned char src_mask
+#define DECLARE_MASK_MASK_VAR vector unsigned char mask_mask
+
+#else
+
+/* Now the COMPUTE_SHIFT_{MASK, MASKS, MASKC} below are just no-op.
+ * They are defined that way because little endian altivec can do unaligned
+ * reads natively and have no need for constructing the permutation pattern
+ * variables.
+ */
+#define COMPUTE_SHIFT_MASK(source)
+
+#define COMPUTE_SHIFT_MASKS(dest, source)
+
+#define COMPUTE_SHIFT_MASKC(dest, source, mask)
+
+# define LOAD_VECTOR(source)				\
+    v ## source = *((typeof(v ## source)*)source);
+
+# define LOAD_VECTORS(dest, source)			\
+    LOAD_VECTOR(source);				\
+    LOAD_VECTOR(dest);					\
+
+# define LOAD_VECTORSC(dest, source, mask)		\
+    LOAD_VECTORS(dest, source); 			\
+    LOAD_VECTOR(mask);					\
+
+#define DECLARE_SRC_MASK_VAR
+#define DECLARE_MASK_MASK_VAR
+
+#endif /* WORDS_BIGENDIAN */
 
 #define LOAD_VECTORSM(dest, source, mask)				\
-    LOAD_VECTORSC (dest, source, mask)					\
+    LOAD_VECTORSC (dest, source, mask); 				\
     v ## source = pix_multiply (v ## source,				\
                                 splat_alpha (v ## mask));
 
 #define STORE_VECTOR(dest)						\
     vec_st ((vector unsigned int) v ## dest, 0, dest);
 
+/* load 4 pixels from a 16-byte boundary aligned address */
+static force_inline vector unsigned int
+load_128_aligned (const uint32_t* src)
+{
+    return *((vector unsigned int *) src);
+}
+
+/* load 4 pixels from a unaligned address */
+static force_inline vector unsigned int
+load_128_unaligned (const uint32_t* src)
+{
+    vector unsigned int vsrc;
+    DECLARE_SRC_MASK_VAR;
+
+    COMPUTE_SHIFT_MASK (src);
+    LOAD_VECTOR (src);
+
+    return vsrc;
+}
+
+/* save 4 pixels on a 16-byte boundary aligned address */
+static force_inline void
+save_128_aligned (uint32_t* data,
+		  vector unsigned int vdata)
+{
+    STORE_VECTOR(data)
+}
+
+static force_inline vector unsigned int
+create_mask_1x32_128 (const uint32_t *src)
+{
+    vector unsigned int vsrc;
+    DECLARE_SRC_MASK_VAR;
+
+    COMPUTE_SHIFT_MASK (src);
+    LOAD_VECTOR (src);
+    return vec_splat(vsrc, 0);
+}
+
+static force_inline vector unsigned int
+create_mask_32_128 (uint32_t mask)
+{
+    return create_mask_1x32_128(&mask);
+}
+
+static force_inline vector unsigned int
+unpacklo_128_16x8 (vector unsigned int data1, vector unsigned int data2)
+{
+    vector unsigned char lo;
+
+    /* unpack to short */
+    lo = (vector unsigned char)
+#ifdef WORDS_BIGENDIAN
+	vec_mergel ((vector unsigned char) data2,
+		    (vector unsigned char) data1);
+#else
+	vec_mergel ((vector unsigned char) data1,
+		    (vector unsigned char) data2);
+#endif
+
+    return (vector unsigned int) lo;
+}
+
+static force_inline vector unsigned int
+unpackhi_128_16x8 (vector unsigned int data1, vector unsigned int data2)
+{
+    vector unsigned char hi;
+
+    /* unpack to short */
+    hi = (vector unsigned char)
+#ifdef WORDS_BIGENDIAN
+	vec_mergeh ((vector unsigned char) data2,
+		    (vector unsigned char) data1);
+#else
+	vec_mergeh ((vector unsigned char) data1,
+		    (vector unsigned char) data2);
+#endif
+
+    return (vector unsigned int) hi;
+}
+
+static force_inline vector unsigned int
+unpacklo_128_8x16 (vector unsigned int data1, vector unsigned int data2)
+{
+    vector unsigned short lo;
+
+    /* unpack to char */
+    lo = (vector unsigned short)
+#ifdef WORDS_BIGENDIAN
+	vec_mergel ((vector unsigned short) data2,
+		    (vector unsigned short) data1);
+#else
+	vec_mergel ((vector unsigned short) data1,
+		    (vector unsigned short) data2);
+#endif
+
+    return (vector unsigned int) lo;
+}
+
+static force_inline vector unsigned int
+unpackhi_128_8x16 (vector unsigned int data1, vector unsigned int data2)
+{
+    vector unsigned short hi;
+
+    /* unpack to char */
+    hi = (vector unsigned short)
+#ifdef WORDS_BIGENDIAN
+	vec_mergeh ((vector unsigned short) data2,
+		    (vector unsigned short) data1);
+#else
+	vec_mergeh ((vector unsigned short) data1,
+		    (vector unsigned short) data2);
+#endif
+
+    return (vector unsigned int) hi;
+}
+
+static force_inline void
+unpack_128_2x128 (vector unsigned int data1, vector unsigned int data2,
+		    vector unsigned int* data_lo, vector unsigned int* data_hi)
+{
+    *data_lo = unpacklo_128_16x8(data1, data2);
+    *data_hi = unpackhi_128_16x8(data1, data2);
+}
+
+static force_inline void
+unpack_128_2x128_16 (vector unsigned int data1, vector unsigned int data2,
+		    vector unsigned int* data_lo, vector unsigned int* data_hi)
+{
+    *data_lo = unpacklo_128_8x16(data1, data2);
+    *data_hi = unpackhi_128_8x16(data1, data2);
+}
+
+static force_inline vector unsigned int
+unpack_565_to_8888 (vector unsigned int lo)
+{
+    vector unsigned int r, g, b, rb, t;
+
+    r = vec_and (vec_sl(lo, create_mask_32_128(8)), mask_red);
+    g = vec_and (vec_sl(lo, create_mask_32_128(5)), mask_green);
+    b = vec_and (vec_sl(lo, create_mask_32_128(3)), mask_blue);
+
+    rb = vec_or (r, b);
+    t  = vec_and (rb, mask_565_fix_rb);
+    t  = vec_sr (t, create_mask_32_128(5));
+    rb = vec_or (rb, t);
+
+    t  = vec_and (g, mask_565_fix_g);
+    t  = vec_sr (t, create_mask_32_128(6));
+    g  = vec_or (g, t);
+
+    return vec_or (rb, g);
+}
+
+static force_inline int
+is_opaque (vector unsigned int x)
+{
+    uint32_t cmp_result;
+    vector bool int ffs = vec_cmpeq(x, x);
+
+    cmp_result = vec_all_eq(x, ffs);
+
+    return (cmp_result & 0x8888) == 0x8888;
+}
+
+static force_inline int
+is_zero (vector unsigned int x)
+{
+    uint32_t cmp_result;
+
+    cmp_result = vec_all_eq(x, (vector unsigned int) AVV(0));
+
+    return cmp_result == 0xffff;
+}
+
+static force_inline int
+is_transparent (vector unsigned int x)
+{
+    uint32_t cmp_result;
+
+    cmp_result = vec_all_eq(x, (vector unsigned int) AVV(0));
+    return (cmp_result & 0x8888) == 0x8888;
+}
+
+static force_inline uint32_t
+core_combine_over_u_pixel_vmx (uint32_t src, uint32_t dst)
+{
+    uint32_t a;
+
+    a = ALPHA_8(src);
+
+    if (a == 0xff)
+    {
+	return src;
+    }
+    else if (src)
+    {
+	UN8x4_MUL_UN8_ADD_UN8x4(dst, (~a & MASK), src);
+    }
+
+    return dst;
+}
+
+static force_inline uint32_t
+combine1 (const uint32_t *ps, const uint32_t *pm)
+{
+    uint32_t s = *ps;
+
+    if (pm)
+	UN8x4_MUL_UN8(s, ALPHA_8(*pm));
+
+    return s;
+}
+
+static force_inline vector unsigned int
+combine4 (const uint32_t* ps, const uint32_t* pm)
+{
+    vector unsigned int src, msk;
+
+    if (pm)
+    {
+	msk = load_128_unaligned(pm);
+
+	if (is_transparent(msk))
+	    return (vector unsigned int) AVV(0);
+    }
+
+    src = load_128_unaligned(ps);
+
+    if (pm)
+	src = pix_multiply(src, msk);
+
+    return src;
+}
+
 static void
 vmx_combine_over_u_no_mask (uint32_t *      dest,
                             const uint32_t *src,
@@ -177,7 +492,7 @@ vmx_combine_over_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -227,7 +542,8 @@ vmx_combine_over_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -298,7 +614,7 @@ vmx_combine_over_reverse_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -346,7 +662,8 @@ vmx_combine_over_reverse_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -414,7 +731,7 @@ vmx_combine_in_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -459,7 +776,8 @@ vmx_combine_in_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -524,7 +842,7 @@ vmx_combine_in_reverse_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -571,7 +889,8 @@ vmx_combine_in_reverse_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -638,7 +957,7 @@ vmx_combine_out_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -685,7 +1004,8 @@ vmx_combine_out_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -750,7 +1070,7 @@ vmx_combine_out_reverse_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -798,7 +1118,8 @@ vmx_combine_out_reverse_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -865,7 +1186,7 @@ vmx_combine_atop_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -917,7 +1238,8 @@ vmx_combine_atop_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -993,7 +1315,7 @@ vmx_combine_atop_reverse_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1045,7 +1367,8 @@ vmx_combine_atop_reverse_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1121,7 +1444,7 @@ vmx_combine_xor_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1173,7 +1496,8 @@ vmx_combine_xor_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1249,7 +1573,7 @@ vmx_combine_add_u_no_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc;
-    vector unsigned char tmp1, tmp2, src_mask;
+    DECLARE_SRC_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1295,7 +1619,8 @@ vmx_combine_add_u_mask (uint32_t *      dest,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1363,7 +1688,8 @@ vmx_combine_src_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1413,7 +1739,8 @@ vmx_combine_over_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1471,7 +1798,8 @@ vmx_combine_over_reverse_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1527,7 +1855,8 @@ vmx_combine_in_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1581,7 +1910,8 @@ vmx_combine_in_reverse_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1636,7 +1966,8 @@ vmx_combine_out_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1693,7 +2024,8 @@ vmx_combine_out_reverse_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1750,7 +2082,8 @@ vmx_combine_atop_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask, vsrca;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1816,7 +2149,8 @@ vmx_combine_atop_reverse_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1879,7 +2213,8 @@ vmx_combine_xor_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1942,7 +2277,8 @@ vmx_combine_add_ca (pixman_implementation_t *imp,
 {
     int i;
     vector unsigned int vdest, vsrc, vmask;
-    vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+    DECLARE_SRC_MASK_VAR;
+    DECLARE_MASK_MASK_VAR;
 
     while (width && ((uintptr_t)dest & 15))
     {
@@ -1986,16 +2322,809 @@ vmx_combine_add_ca (pixman_implementation_t *imp,
     }
 }
 
+static void
+vmx_composite_over_n_8_8888 (pixman_implementation_t *imp,
+                              pixman_composite_info_t *info)
+{
+    PIXMAN_COMPOSITE_ARGS (info);
+    uint32_t src, srca;
+    uint32_t *dst_line, *dst;
+    uint8_t *mask_line;
+    int dst_stride, mask_stride;
+    int32_t w;
+    uint32_t m, d, s, ia;
+
+    vector unsigned int vsrc, valpha, vmask, vdst;
+
+    src = _pixman_image_get_solid (imp, src_image, dest_image->bits.format);
+
+    srca = ALPHA_8(src);
+    if (src == 0)
+	return;
+
+    PIXMAN_IMAGE_GET_LINE (
+	dest_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
+    PIXMAN_IMAGE_GET_LINE (
+	mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
+
+    vsrc = (vector unsigned int) {src, src, src, src};
+    valpha = splat_alpha(vsrc);
+
+    while (height--)
+    {
+	const uint8_t *pm = mask_line;
+	dst = dst_line;
+	dst_line += dst_stride;
+	mask_line += mask_stride;
+	w = width;
+
+	while (w && (uintptr_t)dst & 15)
+	{
+	    s = src;
+	    m = *pm++;
+
+	    if (m)
+	    {
+		d = *dst;
+		UN8x4_MUL_UN8 (s, m);
+		ia = ALPHA_8 (~s);
+		UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
+		*dst = d;
+	    }
+
+	    w--;
+	    dst++;
+	}
+
+	while (w >= 4)
+	{
+	    m = *((uint32_t*)pm);
+
+	    if (srca == 0xff && m == 0xffffffff)
+	    {
+		save_128_aligned(dst, vsrc);
+	    }
+	    else if (m)
+	    {
+		vmask = splat_pixel((vector unsigned int) {m, m, m, m});
+
+		/* dst is 16-byte aligned */
+		vdst = in_over (vsrc, valpha, vmask, load_128_aligned (dst));
+
+		save_128_aligned(dst, vdst);
+	    }
+
+	    w -= 4;
+	    dst += 4;
+	    pm += 4;
+	}
+
+	while (w)
+	{
+	    s = src;
+	    m = *pm++;
+
+	    if (m)
+	    {
+		d = *dst;
+		UN8x4_MUL_UN8 (s, m);
+		ia = ALPHA_8 (~s);
+		UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
+		*dst = d;
+	    }
+
+	    w--;
+	    dst++;
+	}
+    }
+
+}
+
+static pixman_bool_t
+vmx_fill (pixman_implementation_t *imp,
+           uint32_t *               bits,
+           int                      stride,
+           int                      bpp,
+           int                      x,
+           int                      y,
+           int                      width,
+           int                      height,
+           uint32_t		    filler)
+{
+    uint32_t byte_width;
+    uint8_t *byte_line;
+
+    vector unsigned int vfiller;
+
+    if (bpp == 8)
+    {
+	uint8_t b;
+	uint16_t w;
+
+	stride = stride * (int) sizeof (uint32_t) / 1;
+	byte_line = (uint8_t *)(((uint8_t *)bits) + stride * y + x);
+	byte_width = width;
+	stride *= 1;
+
+	b = filler & 0xff;
+	w = (b << 8) | b;
+	filler = (w << 16) | w;
+    }
+    else if (bpp == 16)
+    {
+	stride = stride * (int) sizeof (uint32_t) / 2;
+	byte_line = (uint8_t *)(((uint16_t *)bits) + stride * y + x);
+	byte_width = 2 * width;
+	stride *= 2;
+
+        filler = (filler & 0xffff) * 0x00010001;
+    }
+    else if (bpp == 32)
+    {
+	stride = stride * (int) sizeof (uint32_t) / 4;
+	byte_line = (uint8_t *)(((uint32_t *)bits) + stride * y + x);
+	byte_width = 4 * width;
+	stride *= 4;
+    }
+    else
+    {
+	return FALSE;
+    }
+
+    vfiller = create_mask_1x32_128(&filler);
+
+    while (height--)
+    {
+	int w;
+	uint8_t *d = byte_line;
+	byte_line += stride;
+	w = byte_width;
+
+	if (w >= 1 && ((uintptr_t)d & 1))
+	{
+	    *(uint8_t *)d = filler;
+	    w -= 1;
+	    d += 1;
+	}
+
+	while (w >= 2 && ((uintptr_t)d & 3))
+	{
+	    *(uint16_t *)d = filler;
+	    w -= 2;
+	    d += 2;
+	}
+
+	while (w >= 4 && ((uintptr_t)d & 15))
+	{
+	    *(uint32_t *)d = filler;
+
+	    w -= 4;
+	    d += 4;
+	}
+
+	while (w >= 128)
+	{
+	    vec_st(vfiller, 0, (uint32_t *) d);
+	    vec_st(vfiller, 0, (uint32_t *) d + 4);
+	    vec_st(vfiller, 0, (uint32_t *) d + 8);
+	    vec_st(vfiller, 0, (uint32_t *) d + 12);
+	    vec_st(vfiller, 0, (uint32_t *) d + 16);
+	    vec_st(vfiller, 0, (uint32_t *) d + 20);
+	    vec_st(vfiller, 0, (uint32_t *) d + 24);
+	    vec_st(vfiller, 0, (uint32_t *) d + 28);
+
+	    d += 128;
+	    w -= 128;
+	}
+
+	if (w >= 64)
+	{
+	    vec_st(vfiller, 0, (uint32_t *) d);
+	    vec_st(vfiller, 0, (uint32_t *) d + 4);
+	    vec_st(vfiller, 0, (uint32_t *) d + 8);
+	    vec_st(vfiller, 0, (uint32_t *) d + 12);
+
+	    d += 64;
+	    w -= 64;
+	}
+
+	if (w >= 32)
+	{
+	    vec_st(vfiller, 0, (uint32_t *) d);
+	    vec_st(vfiller, 0, (uint32_t *) d + 4);
+
+	    d += 32;
+	    w -= 32;
+	}
+
+	if (w >= 16)
+	{
+	    vec_st(vfiller, 0, (uint32_t *) d);
+
+	    d += 16;
+	    w -= 16;
+	}
+
+	while (w >= 4)
+	{
+	    *(uint32_t *)d = filler;
+
+	    w -= 4;
+	    d += 4;
+	}
+
+	if (w >= 2)
+	{
+	    *(uint16_t *)d = filler;
+	    w -= 2;
+	    d += 2;
+	}
+
+	if (w >= 1)
+	{
+	    *(uint8_t *)d = filler;
+	    w -= 1;
+	    d += 1;
+	}
+    }
+
+    return TRUE;
+}
+
+static void
+vmx_composite_src_x888_8888 (pixman_implementation_t *imp,
+			      pixman_composite_info_t *info)
+{
+    PIXMAN_COMPOSITE_ARGS (info);
+    uint32_t    *dst_line, *dst;
+    uint32_t    *src_line, *src;
+    int32_t w;
+    int dst_stride, src_stride;
+
+    PIXMAN_IMAGE_GET_LINE (
+	dest_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
+    PIXMAN_IMAGE_GET_LINE (
+	src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
+
+    while (height--)
+    {
+	dst = dst_line;
+	dst_line += dst_stride;
+	src = src_line;
+	src_line += src_stride;
+	w = width;
+
+	while (w && (uintptr_t)dst & 15)
+	{
+	    *dst++ = *src++ | 0xff000000;
+	    w--;
+	}
+
+	while (w >= 16)
+	{
+	    vector unsigned int vmx_src1, vmx_src2, vmx_src3, vmx_src4;
+
+	    vmx_src1 = load_128_unaligned (src);
+	    vmx_src2 = load_128_unaligned (src + 4);
+	    vmx_src3 = load_128_unaligned (src + 8);
+	    vmx_src4 = load_128_unaligned (src + 12);
+
+	    save_128_aligned (dst, vec_or (vmx_src1, mask_ff000000));
+	    save_128_aligned (dst + 4, vec_or (vmx_src2, mask_ff000000));
+	    save_128_aligned (dst + 8, vec_or (vmx_src3, mask_ff000000));
+	    save_128_aligned (dst + 12, vec_or (vmx_src4, mask_ff000000));
+
+	    dst += 16;
+	    src += 16;
+	    w -= 16;
+	}
+
+	while (w)
+	{
+	    *dst++ = *src++ | 0xff000000;
+	    w--;
+	}
+    }
+}
+
+static void
+vmx_composite_over_n_8888 (pixman_implementation_t *imp,
+                           pixman_composite_info_t *info)
+{
+    PIXMAN_COMPOSITE_ARGS (info);
+    uint32_t *dst_line, *dst;
+    uint32_t src, ia;
+    int      i, w, dst_stride;
+    vector unsigned int vdst, vsrc, via;
+
+    src = _pixman_image_get_solid (imp, src_image, dest_image->bits.format);
+
+    if (src == 0)
+	return;
+
+    PIXMAN_IMAGE_GET_LINE (
+	dest_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
+
+    vsrc = (vector unsigned int){src, src, src, src};
+    via = negate (splat_alpha (vsrc));
+    ia = ALPHA_8 (~src);
+
+    while (height--)
+    {
+	dst = dst_line;
+	dst_line += dst_stride;
+	w = width;
+
+	while (w && ((uintptr_t)dst & 15))
+	{
+	    uint32_t d = *dst;
+	    UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, src);
+	    *dst++ = d;
+	    w--;
+	}
+
+	for (i = w / 4; i > 0; i--)
+	{
+	    vdst = pix_multiply (load_128_aligned (dst), via);
+	    save_128_aligned (dst, pix_add (vsrc, vdst));
+	    dst += 4;
+	}
+
+	for (i = w % 4; --i >= 0;)
+	{
+	    uint32_t d = dst[i];
+	    UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, src);
+	    dst[i] = d;
+	}
+    }
+}
+
+static void
+vmx_composite_over_8888_8888 (pixman_implementation_t *imp,
+                               pixman_composite_info_t *info)
+{
+    PIXMAN_COMPOSITE_ARGS (info);
+    int dst_stride, src_stride;
+    uint32_t    *dst_line, *dst;
+    uint32_t    *src_line, *src;
+
+    PIXMAN_IMAGE_GET_LINE (
+    dest_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
+    PIXMAN_IMAGE_GET_LINE (
+    src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
+
+    dst = dst_line;
+    src = src_line;
+
+    while (height--)
+    {
+        vmx_combine_over_u (imp, op, dst, src, NULL, width);
+
+        dst += dst_stride;
+        src += src_stride;
+    }
+}
+
+static void
+vmx_composite_over_n_8888_8888_ca (pixman_implementation_t *imp,
+                                    pixman_composite_info_t *info)
+{
+    PIXMAN_COMPOSITE_ARGS (info);
+    uint32_t src, ia;
+    uint32_t    *dst_line, d;
+    uint32_t    *mask_line, m;
+    uint32_t pack_cmp;
+    int dst_stride, mask_stride;
+
+    vector unsigned int vsrc, valpha, vmask, vdest;
+
+    src = _pixman_image_get_solid (imp, src_image, dest_image->bits.format);
+
+    if (src == 0)
+	return;
+
+    PIXMAN_IMAGE_GET_LINE (
+	dest_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
+    PIXMAN_IMAGE_GET_LINE (
+	mask_image, mask_x, mask_y, uint32_t, mask_stride, mask_line, 1);
+
+    vsrc = (vector unsigned int) {src, src, src, src};
+    valpha = splat_alpha(vsrc);
+    ia = ALPHA_8 (src);
+
+    while (height--)
+    {
+	int w = width;
+	const uint32_t *pm = (uint32_t *)mask_line;
+	uint32_t *pd = (uint32_t *)dst_line;
+	uint32_t s;
+
+	dst_line += dst_stride;
+	mask_line += mask_stride;
+
+	while (w && (uintptr_t)pd & 15)
+	{
+	    s = src;
+	    m = *pm++;
+
+	    if (m)
+	    {
+		d = *pd;
+		UN8x4_MUL_UN8x4 (s, m);
+		UN8x4_MUL_UN8 (m, ia);
+		m = ~m;
+		UN8x4_MUL_UN8x4_ADD_UN8x4 (d, m, s);
+		*pd = d;
+	    }
+
+	    pd++;
+	    w--;
+	}
+
+	while (w >= 4)
+	{
+	    /* pm is NOT necessarily 16-byte aligned */
+	    vmask = load_128_unaligned (pm);
+
+	    pack_cmp = vec_all_eq(vmask, (vector unsigned int) AVV(0));
+
+	    /* if all bits in mask are zero, pack_cmp is not 0 */
+	    if (pack_cmp == 0)
+	    {
+		/* pd is 16-byte aligned */
+		vdest = in_over (vsrc, valpha, vmask, load_128_aligned (pd));
+
+		save_128_aligned(pd, vdest);
+	    }
+
+	    pd += 4;
+	    pm += 4;
+	    w -= 4;
+	}
+
+	while (w)
+	{
+	    s = src;
+	    m = *pm++;
+
+	    if (m)
+	    {
+		d = *pd;
+		UN8x4_MUL_UN8x4 (s, m);
+		UN8x4_MUL_UN8 (m, ia);
+		m = ~m;
+		UN8x4_MUL_UN8x4_ADD_UN8x4 (d, m, s);
+		*pd = d;
+	    }
+
+	    pd++;
+	    w--;
+	}
+    }
+}
+
+static void
+vmx_composite_add_8_8 (pixman_implementation_t *imp,
+            pixman_composite_info_t *info)
+{
+    PIXMAN_COMPOSITE_ARGS (info);
+    uint8_t     *dst_line, *dst;
+    uint8_t     *src_line, *src;
+    int dst_stride, src_stride;
+    int32_t w;
+    uint16_t t;
+
+    PIXMAN_IMAGE_GET_LINE (
+    src_image, src_x, src_y, uint8_t, src_stride, src_line, 1);
+    PIXMAN_IMAGE_GET_LINE (
+    dest_image, dest_x, dest_y, uint8_t, dst_stride, dst_line, 1);
+
+    while (height--)
+    {
+	dst = dst_line;
+	src = src_line;
+
+	dst_line += dst_stride;
+	src_line += src_stride;
+	w = width;
+
+	/* Small head */
+	while (w && (uintptr_t)dst & 3)
+	{
+	    t = (*dst) + (*src++);
+	    *dst++ = t | (0 - (t >> 8));
+	    w--;
+	}
+
+	vmx_combine_add_u (imp, op,
+		    (uint32_t*)dst, (uint32_t*)src, NULL, w >> 2);
+
+	/* Small tail */
+	dst += w & 0xfffc;
+	src += w & 0xfffc;
+
+	w &= 3;
+
+	while (w)
+	{
+	    t = (*dst) + (*src++);
+	    *dst++ = t | (0 - (t >> 8));
+	    w--;
+	}
+    }
+}
+
+static void
+vmx_composite_add_8888_8888 (pixman_implementation_t *imp,
+                              pixman_composite_info_t *info)
+{
+    PIXMAN_COMPOSITE_ARGS (info);
+    uint32_t    *dst_line, *dst;
+    uint32_t    *src_line, *src;
+    int dst_stride, src_stride;
+
+    PIXMAN_IMAGE_GET_LINE (
+	src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
+    PIXMAN_IMAGE_GET_LINE (
+	dest_image, dest_x, dest_y, uint32_t, dst_stride, dst_line, 1);
+
+    while (height--)
+    {
+	dst = dst_line;
+	dst_line += dst_stride;
+	src = src_line;
+	src_line += src_stride;
+
+	vmx_combine_add_u (imp, op, dst, src, NULL, width);
+    }
+}
+
+static force_inline void
+scaled_nearest_scanline_vmx_8888_8888_OVER (uint32_t*       pd,
+                                            const uint32_t* ps,
+                                            int32_t         w,
+                                            pixman_fixed_t  vx,
+                                            pixman_fixed_t  unit_x,
+                                            pixman_fixed_t  src_width_fixed,
+                                            pixman_bool_t   fully_transparent_src)
+{
+    uint32_t s, d;
+    const uint32_t* pm = NULL;
+
+    vector unsigned int vsrc, vdst;
+
+    if (fully_transparent_src)
+	return;
+
+    /* Align dst on a 16-byte boundary */
+    while (w && ((uintptr_t)pd & 15))
+    {
+	d = *pd;
+	s = combine1 (ps + pixman_fixed_to_int (vx), pm);
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+
+	*pd++ = core_combine_over_u_pixel_vmx (s, d);
+	if (pm)
+	    pm++;
+	w--;
+    }
+
+    while (w >= 4)
+    {
+	vector unsigned int tmp;
+	uint32_t tmp1, tmp2, tmp3, tmp4;
+
+	tmp1 = *(ps + pixman_fixed_to_int (vx));
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+	tmp2 = *(ps + pixman_fixed_to_int (vx));
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+	tmp3 = *(ps + pixman_fixed_to_int (vx));
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+	tmp4 = *(ps + pixman_fixed_to_int (vx));
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+
+	tmp[0] = tmp1;
+	tmp[1] = tmp2;
+	tmp[2] = tmp3;
+	tmp[3] = tmp4;
+
+	vsrc = combine4 ((const uint32_t *) &tmp, pm);
+
+	if (is_opaque (vsrc))
+	{
+	    save_128_aligned (pd, vsrc);
+	}
+	else if (!is_zero (vsrc))
+	{
+	    vdst = over(vsrc, splat_alpha(vsrc), load_128_aligned (pd));
+
+	    save_128_aligned (pd, vdst);
+	}
+
+	w -= 4;
+	pd += 4;
+	if (pm)
+	    pm += 4;
+    }
+
+    while (w)
+    {
+	d = *pd;
+	s = combine1 (ps + pixman_fixed_to_int (vx), pm);
+	vx += unit_x;
+	while (vx >= 0)
+	    vx -= src_width_fixed;
+
+	*pd++ = core_combine_over_u_pixel_vmx (s, d);
+	if (pm)
+	    pm++;
+
+	w--;
+    }
+}
+
+FAST_NEAREST_MAINLOOP (vmx_8888_8888_cover_OVER,
+		       scaled_nearest_scanline_vmx_8888_8888_OVER,
+		       uint32_t, uint32_t, COVER)
+FAST_NEAREST_MAINLOOP (vmx_8888_8888_none_OVER,
+		       scaled_nearest_scanline_vmx_8888_8888_OVER,
+		       uint32_t, uint32_t, NONE)
+FAST_NEAREST_MAINLOOP (vmx_8888_8888_pad_OVER,
+		       scaled_nearest_scanline_vmx_8888_8888_OVER,
+		       uint32_t, uint32_t, PAD)
+FAST_NEAREST_MAINLOOP (vmx_8888_8888_normal_OVER,
+		       scaled_nearest_scanline_vmx_8888_8888_OVER,
+		       uint32_t, uint32_t, NORMAL)
+
 static const pixman_fast_path_t vmx_fast_paths[] =
 {
+    PIXMAN_STD_FAST_PATH (OVER, solid,    null, a8r8g8b8, vmx_composite_over_n_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid,    null, x8r8g8b8, vmx_composite_over_n_8888),
+    PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, a8r8g8b8, vmx_composite_over_8888_8888),
+    PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, x8r8g8b8, vmx_composite_over_8888_8888),
+    PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, a8b8g8r8, vmx_composite_over_8888_8888),
+    PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, x8b8g8r8, vmx_composite_over_8888_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8r8g8b8, vmx_composite_over_n_8_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid, a8, x8r8g8b8, vmx_composite_over_n_8_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8b8g8r8, vmx_composite_over_n_8_8888),
+    PIXMAN_STD_FAST_PATH (OVER, solid, a8, x8b8g8r8, vmx_composite_over_n_8_8888),
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, a8r8g8b8, vmx_composite_over_n_8888_8888_ca),
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, x8r8g8b8, vmx_composite_over_n_8888_8888_ca),
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, a8b8g8r8, vmx_composite_over_n_8888_8888_ca),
+    PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, x8b8g8r8, vmx_composite_over_n_8888_8888_ca),
+
+    /* PIXMAN_OP_ADD */
+    PIXMAN_STD_FAST_PATH (ADD, a8, null, a8, vmx_composite_add_8_8),
+    PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, null, a8r8g8b8, vmx_composite_add_8888_8888),
+    PIXMAN_STD_FAST_PATH (ADD, a8b8g8r8, null, a8b8g8r8, vmx_composite_add_8888_8888),
+
+    /* PIXMAN_OP_SRC */
+    PIXMAN_STD_FAST_PATH (SRC, x8r8g8b8, null, a8r8g8b8, vmx_composite_src_x888_8888),
+    PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, a8b8g8r8, vmx_composite_src_x888_8888),
+
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, vmx_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, vmx_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, vmx_8888_8888),
+    SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, vmx_8888_8888),
+
     {   PIXMAN_OP_NONE	},
 };
 
+static uint32_t *
+vmx_fetch_x8r8g8b8 (pixman_iter_t *iter, const uint32_t *mask)
+{
+    int w = iter->width;
+    vector unsigned int ff000000 = mask_ff000000;
+    uint32_t *dst = iter->buffer;
+    uint32_t *src = (uint32_t *)iter->bits;
+
+    iter->bits += iter->stride;
+
+    while (w && ((uintptr_t)dst) & 0x0f)
+    {
+	*dst++ = (*src++) | 0xff000000;
+	w--;
+    }
+
+    while (w >= 4)
+    {
+	save_128_aligned(dst, vec_or(load_128_unaligned(src), ff000000));
+
+	dst += 4;
+	src += 4;
+	w -= 4;
+    }
+
+    while (w)
+    {
+	*dst++ = (*src++) | 0xff000000;
+	w--;
+    }
+
+    return iter->buffer;
+}
+
+static uint32_t *
+vmx_fetch_a8 (pixman_iter_t *iter, const uint32_t *mask)
+{
+    int w = iter->width;
+    uint32_t *dst = iter->buffer;
+    uint8_t *src = iter->bits;
+    vector unsigned int vmx0, vmx1, vmx2, vmx3, vmx4, vmx5, vmx6;
+
+    iter->bits += iter->stride;
+
+    while (w && (((uintptr_t)dst) & 15))
+    {
+        *dst++ = *(src++) << 24;
+        w--;
+    }
+
+    while (w >= 16)
+    {
+	vmx0 = load_128_unaligned((uint32_t *) src);
+
+	unpack_128_2x128((vector unsigned int) AVV(0), vmx0, &vmx1, &vmx2);
+	unpack_128_2x128_16((vector unsigned int) AVV(0), vmx1, &vmx3, &vmx4);
+	unpack_128_2x128_16((vector unsigned int) AVV(0), vmx2, &vmx5, &vmx6);
+
+	save_128_aligned(dst, vmx6);
+	save_128_aligned((dst +  4), vmx5);
+	save_128_aligned((dst +  8), vmx4);
+	save_128_aligned((dst + 12), vmx3);
+
+	dst += 16;
+	src += 16;
+	w -= 16;
+    }
+
+    while (w)
+    {
+	*dst++ = *(src++) << 24;
+	w--;
+    }
+
+    return iter->buffer;
+}
+
+#define IMAGE_FLAGS							\
+    (FAST_PATH_STANDARD_FLAGS | FAST_PATH_ID_TRANSFORM |		\
+     FAST_PATH_BITS_IMAGE | FAST_PATH_SAMPLES_COVER_CLIP_NEAREST)
+
+static const pixman_iter_info_t vmx_iters[] =
+{
+    { PIXMAN_x8r8g8b8, IMAGE_FLAGS, ITER_NARROW,
+      _pixman_iter_init_bits_stride, vmx_fetch_x8r8g8b8, NULL
+    },
+    { PIXMAN_a8, IMAGE_FLAGS, ITER_NARROW,
+      _pixman_iter_init_bits_stride, vmx_fetch_a8, NULL
+    },
+    { PIXMAN_null },
+};
+
 pixman_implementation_t *
 _pixman_implementation_create_vmx (pixman_implementation_t *fallback)
 {
     pixman_implementation_t *imp = _pixman_implementation_create (fallback, vmx_fast_paths);
 
+    /* VMX constants */
+    mask_ff000000 = create_mask_32_128 (0xff000000);
+    mask_red   = create_mask_32_128 (0x00f80000);
+    mask_green = create_mask_32_128 (0x0000fc00);
+    mask_blue  = create_mask_32_128 (0x000000f8);
+    mask_565_fix_rb = create_mask_32_128 (0x00e000e0);
+    mask_565_fix_g = create_mask_32_128  (0x0000c000);
+
     /* Set up function pointers */
 
     imp->combine_32[PIXMAN_OP_OVER] = vmx_combine_over_u;
@@ -2022,5 +3151,9 @@ _pixman_implementation_create_vmx (pixman_implementation_t *fallback)
     imp->combine_32_ca[PIXMAN_OP_XOR] = vmx_combine_xor_ca;
     imp->combine_32_ca[PIXMAN_OP_ADD] = vmx_combine_add_ca;
 
+    imp->fill = vmx_fill;
+
+    imp->iter_info = vmx_iters;
+
     return imp;
 }
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman-x86.c b/source/libs/pixman/pixman-src/pixman/pixman-x86.c
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman-x86.c
rename to source/libs/pixman/pixman-src/pixman/pixman-x86.c
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman.c b/source/libs/pixman/pixman-src/pixman/pixman.c
old mode 100755
new mode 100644
similarity index 97%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman.c
rename to source/libs/pixman/pixman-src/pixman/pixman.c
index 9555ceaaf..f932eac3c
--- a/source/libs/pixman/pixman-0.32.8/pixman/pixman.c
+++ b/source/libs/pixman/pixman-src/pixman/pixman.c
@@ -325,18 +325,20 @@ _pixman_compute_composite_region32 (pixman_region32_t * region,
     return TRUE;
 }
 
-typedef struct
+typedef struct box_48_16 box_48_16_t;
+
+struct box_48_16
 {
-    pixman_fixed_48_16_t	x1;
-    pixman_fixed_48_16_t	y1;
-    pixman_fixed_48_16_t	x2;
-    pixman_fixed_48_16_t	y2;
-} box_48_16_t;
+    pixman_fixed_48_16_t        x1;
+    pixman_fixed_48_16_t        y1;
+    pixman_fixed_48_16_t        x2;
+    pixman_fixed_48_16_t        y2;
+};
 
 static pixman_bool_t
-compute_transformed_extents (pixman_transform_t *transform,
+compute_transformed_extents (pixman_transform_t   *transform,
 			     const pixman_box32_t *extents,
-			     box_48_16_t *transformed)
+			     box_48_16_t          *transformed)
 {
     pixman_fixed_48_16_t tx1, ty1, tx2, ty2;
     pixman_fixed_t x1, y1, x2, y2;
@@ -495,21 +497,12 @@ analyze_extent (pixman_image_t       *image,
     if (!compute_transformed_extents (transform, extents, &transformed))
 	return FALSE;
 
-    /* Expand the source area by a tiny bit so account of different rounding that
-     * may happen during sampling. Note that (8 * pixman_fixed_e) is very far from
-     * 0.5 so this won't cause the area computed to be overly pessimistic.
-     */
-    transformed.x1 -= 8 * pixman_fixed_e;
-    transformed.y1 -= 8 * pixman_fixed_e;
-    transformed.x2 += 8 * pixman_fixed_e;
-    transformed.y2 += 8 * pixman_fixed_e;
-
     if (image->common.type == BITS)
     {
-	if (pixman_fixed_to_int (transformed.x1) >= 0			&&
-	    pixman_fixed_to_int (transformed.y1) >= 0			&&
-	    pixman_fixed_to_int (transformed.x2) < image->bits.width	&&
-	    pixman_fixed_to_int (transformed.y2) < image->bits.height)
+	if (pixman_fixed_to_int (transformed.x1 - pixman_fixed_e) >= 0                &&
+	    pixman_fixed_to_int (transformed.y1 - pixman_fixed_e) >= 0                &&
+	    pixman_fixed_to_int (transformed.x2 - pixman_fixed_e) < image->bits.width &&
+	    pixman_fixed_to_int (transformed.y2 - pixman_fixed_e) < image->bits.height)
 	{
 	    *flags |= FAST_PATH_SAMPLES_COVER_CLIP_NEAREST;
 	}
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/pixman.h b/source/libs/pixman/pixman-src/pixman/pixman.h
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/pixman.h
rename to source/libs/pixman/pixman-src/pixman/pixman.h
diff --git a/source/libs/pixman/pixman-0.32.8/pixman/solaris-hwcap.mapfile b/source/libs/pixman/pixman-src/pixman/solaris-hwcap.mapfile
old mode 100755
new mode 100644
similarity index 100%
rename from source/libs/pixman/pixman-0.32.8/pixman/solaris-hwcap.mapfile
rename to source/libs/pixman/pixman-src/pixman/solaris-hwcap.mapfile
diff --git a/source/libs/pixman/version.ac b/source/libs/pixman/version.ac
index c0935e7a3..149bb50d1 100644
--- a/source/libs/pixman/version.ac
+++ b/source/libs/pixman/version.ac
@@ -8,4 +8,4 @@ dnl
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current pixman version
-m4_define([pixman_version], [0.32.8])
+m4_define([pixman_version], [0.34.0])
diff --git a/source/texk/README b/source/texk/README
index d039d2321..993b4e5a2 100644
--- a/source/texk/README
+++ b/source/texk/README
@@ -1,4 +1,4 @@
-$Id: README 39295 2016-01-06 05:27:06Z kakuto $
+$Id: README 39470 2016-01-23 22:38:00Z kakuto $
 Copyright 2006-2015 TeX Users Group.
 You may freely use, modify and/or distribute this file.
 
@@ -59,10 +59,10 @@ dvipos - ?
 
 dvipsk - maintained here, by us
 
-dvisvgm 1.14.1 - checked 6jan16
+dvisvgm 1.14.2 - checked 20jan16
   http://dvisvgm.bplaced.net/Downloads
 
-gregorio 4.0.1 - checked 29dec15
+gregorio 4.1.0-beta1 - checked 23jan16
   https://github.com/gregorio-project/gregorio/releases/
 
 gsftopk - from Paul Vojta's xdvi?
diff --git a/source/texk/kpathsea/ChangeLog b/source/texk/kpathsea/ChangeLog
index f43e07ec9..82b10a2ba 100644
--- a/source/texk/kpathsea/ChangeLog
+++ b/source/texk/kpathsea/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-03  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
+
+	* win32lib.[ch], mingw32.[ch]: Define a function
+	double win32_floor (double x), since floor is defined in cpascal.h.
+
 2015-12-29  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
 
 	* win32lib.h: Update (w32 only).
diff --git a/source/texk/kpathsea/mingw32.c b/source/texk/kpathsea/mingw32.c
index f6f73719b..32c23e75d 100644
--- a/source/texk/kpathsea/mingw32.c
+++ b/source/texk/kpathsea/mingw32.c
@@ -48,6 +48,12 @@ extern int __cdecl _free_osfhnd (int fd);
 static char *get_home_directory (void);
 static int _parse_root (char * name, char ** pPath);
 
+double
+win32_floor (double x)
+{
+  return floor (x);
+}
+
 void
 init_user_info (void)
 {
diff --git a/source/texk/kpathsea/mingw32.h b/source/texk/kpathsea/mingw32.h
index f05935cef..8db9c135f 100644
--- a/source/texk/kpathsea/mingw32.h
+++ b/source/texk/kpathsea/mingw32.h
@@ -72,7 +72,8 @@ extern char *quote_args(char **);
 #endif /* MAKE_KPSE_DLL */
 
 extern KPSEDLL BOOL win32_get_long_filename (char *, char *, int);
-extern KPSEDLL void texlive_gs_init(void);
+extern KPSEDLL void texlive_gs_init (void);
+extern KPSEDLL double win32_floor (double);
 
 static inline FILE *
 win32_popen (const char *command, const char *fmode)
diff --git a/source/texk/kpathsea/win32lib.c b/source/texk/kpathsea/win32lib.c
index 35a026788..4b176aab9 100644
--- a/source/texk/kpathsea/win32lib.c
+++ b/source/texk/kpathsea/win32lib.c
@@ -31,6 +31,11 @@ static int is_include_space(const char *s)
   return 0;
 }
 
+double win32_floor (double x)
+{
+  return floor (x);
+}
+
 FILE * win32_popen (const char *cmd, const char *fmode)
 {
   char mode[3];
diff --git a/source/texk/kpathsea/win32lib.h b/source/texk/kpathsea/win32lib.h
index b31ab6235..28aae28d8 100644
--- a/source/texk/kpathsea/win32lib.h
+++ b/source/texk/kpathsea/win32lib.h
@@ -255,6 +255,7 @@
 extern "C" {
 #endif
 
+extern KPSEDLL double win32_floor (double x);
 extern KPSEDLL FILE *win32_popen (const char *cmd, const char *mode);
 extern KPSEDLL int win32_pclose (FILE *f);
 extern KPSEDLL struct passwd *kpathsea_getpwnam (kpathsea kpse, char *name);
diff --git a/source/texk/web2c/cwebdir/README b/source/texk/web2c/cwebdir/README
index 1f4add6dd..e4dfc0de0 100644
--- a/source/texk/web2c/cwebdir/README
+++ b/source/texk/web2c/cwebdir/README
@@ -1,9 +1,9 @@
 % This file is part of CWEB.
 % The CWEB programs by Silvio Levy are based on programs by D. E. Knuth.
 % They are distributed WITHOUT ANY WARRANTY, express or implied.
-% This README file last updated May 2000 by Don Knuth
+% This README file last updated January 2016 by Don Knuth
 
-% Copyright (C) 1987,1990,1993,2000 Silvio Levy and Donald E. Knuth
+% Copyright (C) 1987,1990,1993,2000,2016 Silvio Levy and Donald E. Knuth
 
 % Permission is granted to make and distribute verbatim copies of this
 % document provided that the copyright notice and this permission notice
@@ -14,7 +14,13 @@
 % entire resulting derived work is given a different name and distributed
 % under the terms of a permission notice identical to this one.
 
-% Please send comments, suggestions, etc. to levy@math.berkeley.edu.
+% Please send comments, suggestions, etc. to tex-k@tug.org, and people
+% there will verify and forward bug reports.
+%
+% DEK takes no responsibility for the changefiles; they should be
+% maintained independently. His job is to correct errors in
+% ctangle.w, cweave.w, common.w, cwebmac.tex, cwebman.tex,
+% and in the files of examples/*.w, nothing more.
 
 This directory contains the following files:
 
diff --git a/source/texk/web2c/cwebdir/cwebmac.tex b/source/texk/web2c/cwebdir/cwebmac.tex
index 8890b63b4..d50987da9 100644
--- a/source/texk/web2c/cwebdir/cwebmac.tex
+++ b/source/texk/web2c/cwebdir/cwebmac.tex
@@ -1,8 +1,8 @@
 % standard macros for CWEB listings (in addition to plain.tex)
-% Version 3.67 --- July 2006
+% Version 3.68 --- January 2016
 \ifx\renewenvironment\undefined\else\endinput\fi % LaTeX will use other macros
-\xdef\fmtversion{\fmtversion+CWEB3.67}
-\chardef\cwebversion=3 \chardef\cwebrevision=67
+\xdef\fmtversion{\fmtversion+CWEB3.68}
+\chardef\cwebversion=3 \chardef\cwebrevision=68
 \newif\ifpdf
 \ifx\pdf+\pdftrue\fi
 % Uncomment the following line if you want PDF goodies to be the default
@@ -278,7 +278,8 @@
   \sfcode`;=1500 \pretolerance 200 \hyphenpenalty 50 \exhyphenpenalty 50
   \noindent{\let\*=\lapstar\bf\secstar.\quad}%
   \ifpdftex\smash{\raise\baselineskip\hbox to0pt{%
-     \let\*=\empty\pdfdest num \secstar fith}}
+%     \let\*=\empty\pdfdest num \secstar fith}} % bad space in versions < 3.68
+     \let\*=\empty\pdfdest num \secstar fith}}% changed in version 3.68
   \else\ifpdf\smash{\raise\baselineskip\hbox to0pt{%
      \let\*=\empty\special{%
        pdf: dest (\romannumeral\secstar) [ @thispage /FitH @ypos ]}}}\fi\fi}
@@ -340,7 +341,7 @@
 \def\T#1{\leavevmode % octal, hex or decimal constant
   \hbox{$\def\?{\kern.2em}%
 %    \def\$##1{\egroup_{\,\rm##1}\bgroup}% suffix to constant % versions < 3.67
-    \def\$##1{\egroup_{\rm##1}\bgroup}% suffix to constant
+    \def\$##1{\egroup_{\rm##1}\bgroup}% suffix to constant % in version 3.67
     \def\_{\cdot 10^{\aftergroup}}% power of ten (via dirty trick)
     \let\~=\oct \let\^=\hex {#1}$}}
 \def\U{\note{This code is used in section}} % xref for use of a section
@@ -457,6 +458,7 @@
 \def\fin{\par\vfill\eject % this is done when we are ending the index
   \ifpagesaved\null\vfill\eject\fi % output a null index column
   \if L\lr\else\null\vfill\eject\fi % finish the current page
+  \ifpdftex \makebookmarks \fi % added in Version 3.68
   \parfillskip 0pt plus 1fil
   \def\grouptitle{NAMES OF THE SECTIONS}
   \let\topsecno=\nullsec
@@ -470,7 +472,8 @@
   \def\Us{\note{Used in sections}} % crossref for uses of a section
   \def\I{\par\hangindent 2em}\let\*=*
   \ifacro \def\outsecname{Names of the sections} \let\Xpdf\X
-  \ifpdftex \makebookmarks \pdfdest name {NOS} fitb
+%  \ifpdftex \makebookmarks \pdfdest name {NOS} fitb % in versions < 3.68
+  \ifpdftex \pdfdest name {NOS} fitb % changed in version 3.68
     \pdfoutline goto name {NOS} count -\secno {\outsecname}
     \def\X##1:##2\X{\Xpdf##1:##2\X \firstsecno##1.%
       {\toksF={}\makeoutlinetoks##2\outlinedone\outlinedone}%
diff --git a/source/texk/web2c/lib/ChangeLog b/source/texk/web2c/lib/ChangeLog
index 32bf88532..a0ea61120 100644
--- a/source/texk/web2c/lib/ChangeLog
+++ b/source/texk/web2c/lib/ChangeLog
@@ -1,3 +1,7 @@
+2016-01-26  Akira Kakuto  <kakuto@fuk.kinidai.ac.jp>
+
+	* texmfmp.c: Improve to skip BOM (win32 only).
+
 2016-01-02  Akira Kakuto  <kakuto@fuk.kinidai.ac.jp>
 
 	* printversion.c: 2015 ---> 2016.
diff --git a/source/texk/web2c/lib/texmfmp.c b/source/texk/web2c/lib/texmfmp.c
index 75c846a33..b5242e2d3 100644
--- a/source/texk/web2c/lib/texmfmp.c
+++ b/source/texk/web2c/lib/texmfmp.c
@@ -2288,12 +2288,13 @@ input_line (FILE *f)
     long position = ftell (f);
 
     if (position == 0L) {  /* Detect and skip Byte order marks.  */
-      int k1 = getc (f);
+      int k1, k2, k3, k4;
+      k1 = getc (f);
 
       if (k1 != 0xff && k1 != 0xfe && k1 != 0xef)
         rewind (f);
       else {
-        int k2 = getc (f);
+        k2 = getc (f);
 
         if (k2 != 0xff && k2 != 0xfe && k2 != 0xbb)
           rewind (f);
@@ -2301,10 +2302,11 @@ input_line (FILE *f)
                  (k1 == 0xfe && k2 == 0xff))   /* UTF-16(BE) */
           ;
         else {
-          int k3 = getc (f);
-
-          if (k1 == 0xef && k2 == 0xbb && k3 == 0xbf) /* UTF-8 */
-            ;
+          k3 = getc (f);
+          k4 = getc (f);
+          if (k1 == 0xef && k2 == 0xbb && k3 == 0xbf &&
+              k4 >= 0 && k4 <= 0x7e) /* UTF-8 */
+            ungetc (k4, f);
           else
             rewind (f);
         }
diff --git a/source/texk/web2c/luatexdir/lang/texlang.w b/source/texk/web2c/luatexdir/lang/texlang.w
index 65cc3c163..8e0deb335 100644
--- a/source/texk/web2c/luatexdir/lang/texlang.w
+++ b/source/texk/web2c/luatexdir/lang/texlang.w
@@ -26,7 +26,7 @@
 @ Low-level helpers
 
 @ @c
-#define noVERBOSE
+#define unVERBOSE
 
 #define MAX_TEX_LANGUAGES  16384
 
@@ -795,7 +795,9 @@ static int valid_wordend(halfword s)
                   ||  type(r) == ins_node
                   ||  type(r) == adjust_node
                   ||  type(r) == penalty_node
-                  || (type(r) == kern_node && (subtype(r) == explicit || subtype(r) == acc_kern)))
+                  || (type(r) == kern_node && (subtype(r) == explicit_kern ||
+                                               subtype(r) == italic_kern   ||
+                                               subtype(r) == accent_kern   )))
         return 1;
     return 0;
 }
diff --git a/source/texk/web2c/luatexdir/lua/lpdflib.c b/source/texk/web2c/luatexdir/lua/lpdflib.c
index cb7aa5aba..210bc41a7 100644
--- a/source/texk/web2c/luatexdir/lua/lpdflib.c
+++ b/source/texk/web2c/luatexdir/lua/lpdflib.c
@@ -730,12 +730,12 @@ static int l_getmatrix(lua_State * L)
 {
     if (matrix_stack_used > 0) {
         matrix_entry *m = &matrix_stack[matrix_stack_used - 1];
-        lua_pushinteger(L, m->a);
-        lua_pushinteger(L, m->b);
-        lua_pushinteger(L, m->c);
-        lua_pushinteger(L, m->d);
-        lua_pushinteger(L, m->e);
-        lua_pushinteger(L, m->f);
+        lua_pushnumber(L, m->a);
+        lua_pushnumber(L, m->b);
+        lua_pushnumber(L, m->c);
+        lua_pushnumber(L, m->d);
+        lua_pushnumber(L, m->e);
+        lua_pushnumber(L, m->f);
     } else {
         lua_pushinteger(L, 1);
         lua_pushinteger(L, 0);
diff --git a/source/texk/web2c/luatexdir/luatex.c b/source/texk/web2c/luatexdir/luatex.c
index 23e5252dc..14d5fd2cd 100644
--- a/source/texk/web2c/luatexdir/luatex.c
+++ b/source/texk/web2c/luatexdir/luatex.c
@@ -30,7 +30,7 @@
 
 int luatex_version = 89;        /* \.{\\luatexversion}  */
 int luatex_revision = '0';      /* \.{\\luatexrevision}  */
-int luatex_date_info = 2016012800;     /* the compile date is now hardwired */
+int luatex_date_info = 2016020500;     /* the compile date is now hardwired */
 const char *luatex_version_string = "beta-0.89.0";
 const char *engine_name = my_name;     /* the name of this engine */
 
diff --git a/source/texk/web2c/luatexdir/pdf/pdfgen.w b/source/texk/web2c/luatexdir/pdf/pdfgen.w
index f14254c19..b9f34c270 100644
--- a/source/texk/web2c/luatexdir/pdf/pdfgen.w
+++ b/source/texk/web2c/luatexdir/pdf/pdfgen.w
@@ -538,6 +538,7 @@ void pdf_print_int(PDF pdf, longinteger n)
 }
 
 @ @c
+/*
 void print_pdffloat(PDF pdf, pdffloat f)
 {
     char a[24];
@@ -561,6 +562,53 @@ void print_pdffloat(PDF pdf, pdffloat f)
         pdf_puts(pdf, (a + 1));
     }
 }
+*/
+
+void print_pdffloat(PDF pdf, pdffloat f)
+{
+    int64_t m = f.m;
+    if (m == 0) {
+        pdf_out(pdf, '0');
+    } else {
+        int e = f.e;
+        if (e == 0) {
+            /* division by ten_pow[0] == 1 */
+            if (m == 1) {
+                pdf_out(pdf, '1');
+            } else {
+                char a[24];
+                snprintf(a, 23, "%i", m);
+                pdf_puts(pdf, a);
+            }
+        } else {
+            int t = ten_pow[e] ;
+            if (t == m) {
+                pdf_out(pdf, '1');
+            } else {
+                int i;
+                char a[24];
+                int l = m / t;
+                int w = snprintf(a, 23, "%i", l);
+                pdf_out_block(pdf, (const char *) a, (size_t) w);
+                if (m < 0) {
+                    l = - m % t;
+                } else {
+                    l = m % t;
+                }
+                if (l != 0) {
+                    pdf_out(pdf, '.');
+                    snprintf(a, 23, "%d", l + t);
+                    for (i = e; i > 0; i--) {
+                        if (a[i] != '0')
+                            break;
+                        a[i] = '\0';
+                    }
+                    pdf_puts(pdf, (a + 1));
+                }
+            }
+        }
+    }
+}
 
 @ print out |s| as string in PDF output
 
@@ -914,7 +962,8 @@ static void init_pdf_outputparameters(PDF pdf)
     int pk_mode;
     pdf->draftmode = fix_int(int_par(draft_mode_code), 0, 1);
     pdf->compress_level = fix_int(pdf_compress_level, 0, 9);
-    pdf->decimal_digits = fix_int(pdf_decimal_digits, 3, 6);
+    pdf->decimal_digits = fix_int(pdf_decimal_digits, 3, 5);
+/*    pdf->decimal_digits = fix_int(pdf_decimal_digits, 3, 6);*//* later, maybe (LS)*/
     pdf->gamma = fix_int(pdf_gamma, 0, 1000000);
     pdf->image_gamma = fix_int(pdf_image_gamma, 0, 1000000);
     pdf->image_hicolor = fix_int(pdf_image_hicolor, 0, 1);
diff --git a/source/texk/web2c/luatexdir/pdf/pdfpage.w b/source/texk/web2c/luatexdir/pdf/pdfpage.w
index 34bb5d1e9..90f63534d 100644
--- a/source/texk/web2c/luatexdir/pdf/pdfpage.w
+++ b/source/texk/web2c/luatexdir/pdf/pdfpage.w
@@ -105,16 +105,16 @@ boolean calc_pdfpos(pdfstructure * p, scaledpos pos)
     boolean move_pdfpos = false;
     switch (p->mode) {
         case PMODE_PAGE:
-            new.h = i32round(pos.h * p->k1);
-            new.v = i32round(pos.v * p->k1);
+            new.h = i64round(pos.h * p->k1);
+            new.v = i64round(pos.v * p->k1);
             p->cm[4].m = new.h - p->pdf.h.m;        /* cm is concatenated */
             p->cm[5].m = new.v - p->pdf.v.m;
             if (new.h != p->pdf.h.m || new.v != p->pdf.v.m)
                 move_pdfpos = true;
             break;
         case PMODE_TEXT:
-            new.h = i32round(pos.h * p->k1);
-            new.v = i32round(pos.v * p->k1);
+            new.h = i64round(pos.h * p->k1);
+            new.v = i64round(pos.v * p->k1);
             p->tm[4].m = new.h - p->pdf_bt_pos.h.m; /* Tm replaces */
             p->tm[5].m = new.v - p->pdf_bt_pos.v.m;
             if (new.h != p->pdf.h.m || new.v != p->pdf.v.m)
@@ -124,16 +124,16 @@ boolean calc_pdfpos(pdfstructure * p, scaledpos pos)
         case PMODE_CHARARRAY:
             switch (p->wmode) {
                 case WMODE_H:
-                    new.h = i32round((pos.h * p->k1 - (double) p->pdf_tj_pos.h.m) * p->k2);
-                    new.v = i32round(pos.v * p->k1);
+                    new.h = i64round((pos.h * p->k1 - (double) p->pdf_tj_pos.h.m) * p->k2);
+                    new.v = i64round(pos.v * p->k1);
                     p->tj_delta.m = -i64round((double) ((new.h - p->cw.m) / ten_pow[p->cw.e - p->tj_delta.e]));
                     p->tm[5].m = new.v - p->pdf_bt_pos.v.m;     /* p->tm[4] is meaningless */
                     if (p->tj_delta.m != 0 || new.v != p->pdf.v.m)
                         move_pdfpos = true;
                     break;
                 case WMODE_V:
-                    new.h = i32round(pos.h * p->k1);
-                    new.v = i32round(((double) p->pdf_tj_pos.v.m - pos.v * p->k1) * p->k2);
+                    new.h = i64round(pos.h * p->k1);
+                    new.v = i64round(((double) p->pdf_tj_pos.v.m - pos.v * p->k1) * p->k2);
                     p->tm[4].m = new.h - p->pdf_bt_pos.h.m;     /* p->tm[5] is meaningless */
                     p->tj_delta.m = -i64round((double) ((new.v - p->cw.m) / ten_pow[p->cw.e - p->tj_delta.e]));
                     if (p->tj_delta.m != 0 || new.h != p->pdf.h.m)
diff --git a/source/texk/web2c/luatexdir/pdf/pdfrule.w b/source/texk/web2c/luatexdir/pdf/pdfrule.w
index e4897dfb0..2f75b4c76 100644
--- a/source/texk/web2c/luatexdir/pdf/pdfrule.w
+++ b/source/texk/web2c/luatexdir/pdf/pdfrule.w
@@ -54,7 +54,7 @@ void pdf_place_rule(PDF pdf, halfword q, scaledpos size, int callback_id)
         dim.v.e = p->pdf.v.e;
         pdf_puts(pdf, "q\n");
         if (size.v <= one_bp) {
-            pos.v += i32round(0.5 * size.v);
+            pos.v += i64round(0.5 * size.v);
             pdf_set_pos_temp(pdf, pos);
             pdf_puts(pdf, "[]0 d 0 J ");
             print_pdffloat(pdf, dim.v);
@@ -62,7 +62,7 @@ void pdf_place_rule(PDF pdf, halfword q, scaledpos size, int callback_id)
             print_pdffloat(pdf, dim.h);
             pdf_puts(pdf, " 0 l S\n");
         } else if (size.h <= one_bp) {
-            pos.h += i32round(0.5 * size.h);
+            pos.h += i64round(0.5 * size.h);
             pdf_set_pos_temp(pdf, pos);
             pdf_puts(pdf, "[]0 d 0 J ");
             print_pdffloat(pdf, dim.h);
diff --git a/source/texk/web2c/luatexdir/pdf/pdftypes.h b/source/texk/web2c/luatexdir/pdf/pdftypes.h
index 8a670a527..71f843e00 100644
--- a/source/texk/web2c/luatexdir/pdf/pdftypes.h
+++ b/source/texk/web2c/luatexdir/pdf/pdftypes.h
@@ -36,7 +36,14 @@
 #  define pdfkeyprefix "PTEX"
 
 #  define i32round(a) (int) floor((a) + 0.5)
-#  define i64round(a) (int64_t) floor((a) + 0.5)
+/*#  define i64round(a) (int64_t) floor((a) + 0.5)*/
+/*#  define i64round(a) (int64_t) ( (double)(a+0.5) - ((int64_t)(a+0.5))%1  ) */
+#ifdef _WIN32
+#  define i64round(a) (int64_t) win32_floor((a) + 0.5)
+#else
+#  define i64round(a) (int64_t) lround((a))
+#endif
+
 
 #  define MAX_OBJ_COMPRESS_LEVEL 3                  /* maximum/clipping value for \pdfobjcompresslevel */
 #  define OBJSTM_UNSET -1                           /* initial value */
@@ -81,9 +88,12 @@ typedef struct {
 #  define scaled int
 
 typedef struct scaledpos_ {
-    scaled h;
-    scaled v;
-} scaledpos;
+    int64_t h;
+    int64_t v;
+ } scaledpos;
+
+
+
 
 typedef struct scaled_whd_ {
     scaled wd; /* TeX width */
diff --git a/source/texk/web2c/luatexdir/tex/commands.h b/source/texk/web2c/luatexdir/tex/commands.h
index d2a7779a0..60bfef895 100644
--- a/source/texk/web2c/luatexdir/tex/commands.h
+++ b/source/texk/web2c/luatexdir/tex/commands.h
@@ -327,13 +327,10 @@ typedef enum {
     expand_font_code,
 } normal_codes;
 
-#  define explicit 1
-#  define acc_kern 2
 #  define lp_code_base 2
 #  define rp_code_base 3
 #  define ef_code_base 4
 #  define tag_code 5
-#  define auto_kern explicit
 #  define no_lig_code 6
 
 #  define immediate_code 4      /* command modifier for \.{\\immediate} */
diff --git a/source/texk/web2c/luatexdir/tex/commands.w b/source/texk/web2c/luatexdir/tex/commands.w
index 125b203a3..53497af52 100644
--- a/source/texk/web2c/luatexdir/tex/commands.w
+++ b/source/texk/web2c/luatexdir/tex/commands.w
@@ -405,7 +405,7 @@ void initialize_commands(void)
     primitive_tex("vss", vskip_cmd, ss_code, 0);
     primitive_tex("vfilneg", vskip_cmd, fil_neg_code, 0);
     primitive_tex("mskip", mskip_cmd, mskip_code, 0);
-    primitive_tex("kern", kern_cmd, explicit, 0);
+    primitive_tex("kern", kern_cmd, explicit_kern, 0);
     primitive_tex("mkern", mkern_cmd, mu_glue, 0);
     primitive_tex("moveleft", hmove_cmd, 1, 0);
     primitive_tex("moveright", hmove_cmd, 0, 0);
diff --git a/source/texk/web2c/luatexdir/tex/linebreak.w b/source/texk/web2c/luatexdir/tex/linebreak.w
index 28ab6fa55..b2909606d 100644
--- a/source/texk/web2c/luatexdir/tex/linebreak.w
+++ b/source/texk/web2c/luatexdir/tex/linebreak.w
@@ -913,7 +913,7 @@ static void compute_break_width(int break_type, int line_break_dir, int adjust_s
             case penalty_node:
                 break;
             case kern_node:
-                if (subtype(s) != explicit)
+                if (subtype(s) != explicit_kern && subtype(s) != italic_kern)
                     return;
                 else
                     break_width[1] -= width(s);
@@ -1866,7 +1866,8 @@ void ext_do_line_break(int paragraph_dir,
                         if (prev_p != temp_head && (
                                 is_char_node(prev_p)
                              || precedes_break(prev_p)
-                             || ((type(prev_p) == kern_node) && (subtype(prev_p) != explicit))
+                             || ((type(prev_p) == kern_node) && (subtype(prev_p) != explicit_kern &&
+                                                                 subtype(prev_p) != italic_kern   ))
                             )) {
                             ext_try_break(0, unhyphenated_node, line_break_dir, adjust_spacing,
                                           par_shape_ptr, adj_demerits,
@@ -1889,7 +1890,7 @@ void ext_do_line_break(int paragraph_dir,
                     /* end mathskip code */
                     break;
                 case kern_node:
-                    if (subtype(cur_p) == explicit) {
+                    if (subtype(cur_p) == explicit_kern || subtype(cur_p) == italic_kern) {
                         kern_break();
                     } else {
                         active_width[1] += width(cur_p);
diff --git a/source/texk/web2c/luatexdir/tex/maincontrol.w b/source/texk/web2c/luatexdir/tex/maincontrol.w
index c6b30b099..ff7e7279a 100644
--- a/source/texk/web2c/luatexdir/tex/maincontrol.w
+++ b/source/texk/web2c/luatexdir/tex/maincontrol.w
@@ -25,13 +25,10 @@
 /* these will move to equivalents.h */
 
 @ @c
-#define explicit 1
-#define acc_kern 2
 #define lp_code_base 2
 #define rp_code_base 3
 #define ef_code_base 4
 #define tag_code 5
-#define auto_kern explicit
 #define no_lig_code 6
 #define gp_code_base 7
 
@@ -505,7 +502,7 @@ static void run_par_end_hmode (void) {
 
 @ @c
 static void append_italic_correction_mmode (void) {
-    tail_append(new_kern(0));
+    tail_append(new_kern(0)); /* what subtype to use */
 }
 
 @ @c
@@ -1810,7 +1807,7 @@ void append_italic_correction(void)
             return;
         f = font(p);
         tail_append(new_kern(char_italic(f, character(p))));
-        subtype(tail) = explicit;
+        subtype(tail) = italic_kern;
     }
 }
 
@@ -2035,11 +2032,11 @@ void make_accent(void)
             }
             delta = round(float_cast(w - a) / float_constant(2) + h * t - x * s);       /* real multiplication */
             r = new_kern(delta);
-            subtype(r) = acc_kern;
+            subtype(r) = accent_kern;
             couple_nodes(tail, r);
             couple_nodes(r, p);
             tail = new_kern(-a - delta);
-            subtype(tail) = acc_kern;
+            subtype(tail) = accent_kern;
             couple_nodes(p, tail);
             p = q;
 
diff --git a/source/texk/web2c/luatexdir/tex/mlist.w b/source/texk/web2c/luatexdir/tex/mlist.w
index 035ef6340..fbded2844 100644
--- a/source/texk/web2c/luatexdir/tex/mlist.w
+++ b/source/texk/web2c/luatexdir/tex/mlist.w
@@ -1567,7 +1567,7 @@ static void math_kern(pointer p, scaled m)
             f = f + unity;
         }
         width(p) = mu_mult(width(p));
-        subtype(p) = explicit;
+        subtype(p) = italic_kern;
     }
 }
 
diff --git a/source/texk/web2c/luatexdir/tex/postlinebreak.w b/source/texk/web2c/luatexdir/tex/postlinebreak.w
index 873eaf968..b78b599aa 100644
--- a/source/texk/web2c/luatexdir/tex/postlinebreak.w
+++ b/source/texk/web2c/luatexdir/tex/postlinebreak.w
@@ -174,7 +174,7 @@ void ext_post_line_break(int paragraph_dir,
                         break;
                     } else if (non_discardable(q)) {
                         break;
-                    } else if (type(q) == kern_node && subtype(q) != explicit) {
+                    } else if (type(q) == kern_node && subtype(q) != explicit_kern && subtype(q) != italic_kern) {
                         break;
                     }
                     q = vlink(q);
@@ -559,7 +559,7 @@ void ext_post_line_break(int paragraph_dir,
                 if (q == cur_break(cur_p) || is_char_node(q))
                     break;
                 if (!((type(q) == local_par_node))) {
-                    if (non_discardable(q) || (type(q) == kern_node && subtype(q) != explicit))
+                    if (non_discardable(q) || (type(q) == kern_node && subtype(q) != explicit_kern && subtype(q) != italic_kern))
                         break;
                 }
                 */
@@ -581,7 +581,7 @@ void ext_post_line_break(int paragraph_dir,
                     /* weird, in the middle somewhere */
                 } else if (non_discardable(q)) {
                     break;
-                } else if (type(q) == kern_node && subtype(q) != explicit) {
+                } else if (type(q) == kern_node && subtype(q) != explicit_kern && subtype(q) != italic_kern) {
                     break;
                 }
                 r = q;
diff --git a/source/texk/web2c/luatexdir/tex/printing.w b/source/texk/web2c/luatexdir/tex/printing.w
index baafa24a8..478d55f88 100644
--- a/source/texk/web2c/luatexdir/tex/printing.w
+++ b/source/texk/web2c/luatexdir/tex/printing.w
@@ -987,11 +987,13 @@ void short_display_n(int p, int m)
                 print(character(p));
             }
         } else {
-            if ((type(p) == glue_node) ||
-                (type(p) == disc_node) ||
-                (type(p) == penalty_node) ||
-                ((type(p) == kern_node) && (subtype(p) == explicit)))
+            if ( (type(p) == glue_node) ||
+                 (type(p) == disc_node) ||
+                 (type(p) == penalty_node) ||
+                ((type(p) == kern_node) && (subtype(p) == explicit_kern ||
+                                            subtype(p) == italic_kern   ))) {
                 incr(i);
+            }
             if (i >= m)
                 return;
             if (type(p) == disc_node) {
diff --git a/source/texk/web2c/luatexdir/tex/texnodes.h b/source/texk/web2c/luatexdir/tex/texnodes.h
index 618902b58..d5198b92f 100644
--- a/source/texk/web2c/luatexdir/tex/texnodes.h
+++ b/source/texk/web2c/luatexdir/tex/texnodes.h
@@ -177,9 +177,14 @@ typedef enum {
 #  define tlink_post_break(a) tlink(post_break_head(a))
 #  define tlink_no_break(a)   tlink(no_break_head(a))
 
+typedef enum {
+    font_kern = 0,
+    explicit_kern,  /* |subtype| of kern nodes from \.{\\kern} and \.{\\/} */
+    accent_kern,    /* |subtype| of kern nodes from accents */
+    italic_kern,
+} kern_subtypes;
+
 #  define kern_node_size       5
-#  define explicit             1             /* |subtype| of kern nodes from \.{\\kern} and \.{\\/} */
-#  define acc_kern             2             /* |subtype| of kern nodes from accents */
 #  define ex_kern(a)           vinfo((a)+3)  /* expansion factor (hz) */
 #  define synctex_tag_kern(a)  vinfo((a)+4)
 #  define synctex_line_kern(a) vlink((a)+4)
diff --git a/source/texk/web2c/luatexdir/tex/texnodes.w b/source/texk/web2c/luatexdir/tex/texnodes.w
index 0e0c92676..de7181399 100644
--- a/source/texk/web2c/luatexdir/tex/texnodes.w
+++ b/source/texk/web2c/luatexdir/tex/texnodes.w
@@ -280,7 +280,7 @@ const char *node_subtypes_penalty[] = {
     "userpenalty", NULL
 };
 const char *node_subtypes_kern[] = {
-    "fontkern", "userkern", "accentkern", NULL
+    "fontkern", "userkern", "accentkern", "italiccorrection", NULL
 };
 const char *node_subtypes_rule[] = {
     "normal", "box", "image", "empty", "user", NULL
@@ -3092,7 +3092,7 @@ void show_node_list(int p)
                     if (subtype(p) != normal)
                         print_char(' ');
                     print_scaled(width(p));
-                    if (subtype(p) == acc_kern)
+                    if (subtype(p) == accent_kern)
                         tprint(" (for accent)");
                 } else {
                     tprint_esc("mkern");
diff --git a/source/texk/web2c/luatexdir/tex/textoken.w b/source/texk/web2c/luatexdir/tex/textoken.w
index 4b14b6ec9..5b10b1cdd 100644
--- a/source/texk/web2c/luatexdir/tex/textoken.w
+++ b/source/texk/web2c/luatexdir/tex/textoken.w
@@ -238,6 +238,10 @@ including the expansion of a macro or mark.
 @c
 void print_meaning(void)
 {
+    if (cur_cmd == math_char_num_cmd && cur_chr == 0) {
+        /* \mathchar -> \Umathchar */
+        cur_chr = 1 ;
+    }
     print_cmd_chr((quarterword) cur_cmd, cur_chr);
     if (cur_cmd >= call_cmd) {
         print_char(':');
@@ -249,21 +253,21 @@ void print_meaning(void)
             print_char(':');
             print_ln();
             switch (cur_chr) {
-            case first_mark_code:
-                token_show(first_mark(0));
-                break;
-            case bot_mark_code:
-                token_show(bot_mark(0));
-                break;
-            case split_first_mark_code:
-                token_show(split_first_mark(0));
-                break;
-            case split_bot_mark_code:
-                token_show(split_bot_mark(0));
-                break;
-            default:
-                token_show(top_mark(0));
-                break;
+                case first_mark_code:
+                    token_show(first_mark(0));
+                    break;
+                case bot_mark_code:
+                    token_show(bot_mark(0));
+                    break;
+                case split_first_mark_code:
+                    token_show(split_first_mark(0));
+                    break;
+                case split_bot_mark_code:
+                    token_show(split_bot_mark(0));
+                    break;
+                default:
+                    token_show(top_mark(0));
+                    break;
             }
         }
     }
-- 
GitLab