Remove QT_MEMCPY_USHORT macro and just use memcpy

Compilers can optimize memcpy, so don't try to be too smart.

Change-Id: Iba4b5c183776497d8ee1fffd156455b50de65182
Patch-By: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
bb10
Thiago Macieira 2018-11-05 12:53:28 -08:00
parent 87d6a631b7
commit 2b8b878f5a
2 changed files with 5 additions and 33 deletions

View File

@ -187,19 +187,11 @@ void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
#endif
if (const_alpha == 256) {
if (w <= 64) {
while (h--) {
QT_MEMCPY_USHORT(dst, src, w);
dst += dbpl;
src += sbpl;
}
} else {
int length = w << 1;
while (h--) {
memcpy(dst, src, length);
dst += dbpl;
src += sbpl;
}
int length = w << 1;
while (h--) {
memcpy(dst, src, length);
dst += dbpl;
src += sbpl;
}
} else if (const_alpha != 0) {
quint16 *d = (quint16 *) dst;

View File

@ -944,26 +944,6 @@ inline void qt_rectfill(T *dest, T value,
}
}
#define QT_MEMCPY_USHORT(dest, src, length) \
do { \
/* Duff's device */ \
ushort *_d = (ushort*)(dest); \
const ushort *_s = (const ushort*)(src); \
int n = ((length) + 7) / 8; \
switch ((length) & 0x07) \
{ \
case 0: do { *_d++ = *_s++; Q_FALLTHROUGH(); \
case 7: *_d++ = *_s++; Q_FALLTHROUGH(); \
case 6: *_d++ = *_s++; Q_FALLTHROUGH(); \
case 5: *_d++ = *_s++; Q_FALLTHROUGH(); \
case 4: *_d++ = *_s++; Q_FALLTHROUGH(); \
case 3: *_d++ = *_s++; Q_FALLTHROUGH(); \
case 2: *_d++ = *_s++; Q_FALLTHROUGH(); \
case 1: *_d++ = *_s++; \
} while (--n > 0); \
} \
} while (false)
inline ushort qConvertRgb32To16(uint c)
{
return (((c) >> 3) & 0x001f)