diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-06-05 18:43:34 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-06-06 09:41:17 +0200 |
commit | 9769275688aec7a53b55b66bde961b18c32c6d51 (patch) | |
tree | 2b947f7ccfa0f43980e63ec373ceccb7215f78a0 /Source/JavaScriptCore/assembler/MacroAssembler.cpp | |
parent | 43d40815e5ed44a3dbc89380ae4b8975c4f86cb7 (diff) | |
download | qtwebkit-9769275688aec7a53b55b66bde961b18c32c6d51.tar.gz |
Make PNGImageDecoder::rowAvailable auto-vectorizable
https://bugs.webkit.org/show_bug.cgi?id=116151
Reviewed by Benjamin Poulain.
Changed the main loops under PNGImageDecoder::rowAvailable so that they
avoid branches and non-sequential table look ups.
Together with automatic vectorization by the compiler this provides around
4x speed-up with AVX or 2x speed-up on generic x64. Shaving off 12-40% on
PNG decoding in general.
* platform/graphics/Color.cpp:
(WebCore::premultipliedARGBFromColor):
* platform/graphics/Color.h:
(WebCore::fastDivideBy255):
* platform/graphics/filters/FEBlend.cpp:
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::setPixelRGB):
(WebCore::setPixelRGBA):
(WebCore::setPixelRGBA_Premultiplied):
(WebCore::PNGImageDecoder::rowAvailable):
Change-Id: Ic3d6cefda505ebceb37165d0a7aeb3cd2fe3e2c9
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/assembler/MacroAssembler.cpp')
0 files changed, 0 insertions, 0 deletions