From f3652429de599d5cdd5c7e25821244ad9c127e3d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 2 Nov 2018 15:32:52 -0700 Subject: Optimize qt_memfill16, with tail jump This simplifies code generation and permits the compiler to implement a tail-jump optimization. Change-Id: I343f2beed55440a7ac0bfffd15636f640116313e Reviewed-by: Allan Sandfeld Jensen --- src/gui/painting/qdrawhelper_sse2.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp index 88e3fc66fd..efcbc8c643 100644 --- a/src/gui/painting/qdrawhelper_sse2.cpp +++ b/src/gui/painting/qdrawhelper_sse2.cpp @@ -325,15 +325,16 @@ void qt_memfill16(quint16 *dest, quint16 value, qsizetype count) } const int align = (quintptr)(dest) & 0x3; - switch (align) { - case 2: *dest++ = value; --count; + if (align) { + *dest++ = value; + --count; } - const quint32 value32 = (value << 16) | value; - qt_memfill32(reinterpret_cast(dest), value32, count / 2); - if (count & 0x1) dest[count - 1] = value; + + const quint32 value32 = (value << 16) | value; + qt_memfill32(reinterpret_cast(dest), value32, count / 2); } void qt_bitmapblit32_sse2_base(QRasterBuffer *rasterBuffer, int x, int y, -- cgit v1.2.3