У меня есть приложение, предназначенное для развертывания широкого семейства процессоров Intel от архаичных (Pentium, Pentium II) до современных (Haswell, Skylake). Он содержит специальные пути кода, предназначенные для различных расширений для набора команд x86 (SSE, AVX и т. Д.). Тем не менее, у меня есть доступ только к компьютерам, относящимся к Sandy Bridge, и не могу проверить, действительно ли приложение будет работать на старых поддерживаемых архитектурах. Хотя верно, что процессоры, которые старые вряд ли будут полезны для каких-либо целей, было бы хорошо с точки зрения качества кода знать, что функция с именем my_routine_sse2
не случайно использует инструкции из SSE3 или таких.Проверка совместимости с устаревшими процессорами Intel
Какие подходы люди обычно предпринимают, сталкиваясь с такой проблемой? Существуют ли автоматические инструменты, которые будут сканировать функции и гарантировать, что незаконных инструкций нет? Существуют ли службы (сети или другие), которые обеспечивают доступ к устаревшим компьютерным архитектурам для тестирования и отладки?
http://bochs.sourceforge.net/ –
Фактически, применение приложения под руководством Bochs, вероятно, будет слишком медленным для активного развития. Однако это может быть сделано для подтверждения выпуска. – 68ejxfcj5669
Я полагаю, что запуск Boch на современном процессоре будет, по крайней мере, столь же быстрым, как работа на устаревшем встроенном CPU (для проверки, как вы упомянули). Не уверен, хотя. –