Использование новых регистров sse xmm8 - xmm15 - PullRequest
0 голосов
/ 17 июня 2011

Мой вопрос короткий.Можно ли использовать новые sse-регистры из встроенного ассемблера Visual Studio 2010?Если да, то как и какие еще условия должны быть выполнены?Например, я не знаю, доступны ли новые регистры в режимах x86 и x64.

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

Встроенная сборка не допускается при компиляции для платформы x64 в Visual Studio (начиная с VS 2005).

Я бы порекомендовал использовать intrinsics вместо . Он заставляет компилятор обрабатывать регистры процессора для вас и выполняет некоторое переупорядочение команд (оптимизатор получает возможность обрабатывать код, чего не происходит при встроенной сборке).

2 голосов
/ 20 июня 2011

Относительно вашего второго вопроса:

Я не знаю, например, если новый регистры доступны в обоих x86 и x64 режимы.

«Новые» регистры xmm8 - xmm15 доступны только для в 64-битном режиме.

Обратите внимание, однако, на ситуацию с новыми регистрами AVX (для процессоров и ОС, которые поддерживают AVX, например, Sandy Bridge CPU + Win7 SP1):

ymm0 - ymm7 доступны как в 32-битном, так и в 64-битном режиме.

ymm8 - ymm15 доступны только в 64-битном режиме.

...