On terça-feira, 10 de dezembro de 2013 12:01:24, Rex Dieter wrote: > So, for this to be workable, we'd need a canonical list of libraries that > want/need SSE2 optimizations.
Right now, there's code in QtCore and QtGui that does SSE2-specific optimisations. I'd recommend it also for any libraries that do heavy floating point work (QtQml and especially QtQuick), since we're also adding the -mfpmath=sse option. > While on the topic, and looking at qtdeclarative's JIT on i686, > https://bugreports.qt-project.org/browse/QTBUG-35430 > > would a similar workaround suffice for libQt5Qml? build a normal sse2/jit > enabled version and stuff into LIBDIR/sse2 dir, and a non-sse2/jit into > LIBDIR? There's no JIT without SSE2[*] . Your options are SSE JIT or no JIT only. The question is whether the support for JIT or no JIT is present in the library. Let's see... qv8engine.cpp, added in 4662e632e4f92b335483b91cd1f3576d6d82146f: #ifdef Q_PROCESSOR_X86_32 if (!(qCpuFeatures() & SSE2)) { qFatal("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer"); } #endif Well, that answers it. Right now, the interpreted version is not compiled into the i486 binaries. It can probably be fixed in qv4global_p.h: #if defined(Q_PROCESSOR_X86) #define V4_ENABLE_JIT #elif defined(Q_PROCESSOR_X86_64) #define V4_ENABLE_JIT We can change that to: #if defined(__SSE2__) #define V4_ENABLE_JIT [*] note that it's technically SSE support; SSE2 added the integer operations to SSE, which isn't what QtQuick needs. However, I removed the ability to check for SSE without SSE2 in Qt 5.0 and I bet that Erik, Simon and Lars didn't pay attention to which instructions they were using either. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development