вторник, 19 мая 2015 г.

FlylinkDC++ и старые процессоры

Всем привет.
32 битная версия FlylinkDC++ собирается в VC++2013 с оптимизацией (/arch:SSE)
недавно прилетело 10 дампов падения от одного пользователя у которого XP
стоит на системе с CPU  который не умеет movss (< Pentium III ? )

крах произошел на простой инициализации переменной
float saturation = 0.0f;
оптимизатор это превратил в команду аcсемблера:
movss       xmm2,dword ptr ds:[0B9D9F8h] 
Как правильнее поступить?
* Отключить SSE для x86 сборки
* При старте предупреждать что процессор не поддерживается
для реализации второго я пока не знаю как гарантировать то, что до проверки на CPU 
не используются эти запрещенные SSE. и сам код проверки корректный где взять...
Кто сталкивался с подобными проблемами отпишите в комментах.





















Комментариев нет: