На первый взгляд тривиальная проблема при сборке: я хочу скопировать весь регистр XMM0 в XMM3. я пробовал
movdq xmm3, xmm0
но MOVDQ нельзя использовать для перемещения значений между двумя регистрами XMM. Что мне делать вместо этого?
На первый взгляд тривиальная проблема при сборке: я хочу скопировать весь регистр XMM0 в XMM3. я пробовал
movdq xmm3, xmm0
но MOVDQ нельзя использовать для перемещения значений между двумя регистрами XMM. Что мне делать вместо этого?
It's movapd
, movaps
, or movdqa
movaps xmm3, xmm0
Все они делают одно и то же, но есть одна загвоздка:
movapd
и movaps
работают в области с плавающей запятой.movdqa
работает в целочисленной областиИспользуйте тот, который соответствует вашему типу данных, чтобы избежать задержек при смене домена.
Кроме того, нет причин использовать movapd
. Вместо этого всегда используйте movaps
, потому что для кодирования movapd
требуется дополнительный байт.
mov
разные инструкции. Если вы выполняете целочисленную арифметику и используете movaps
, вы заплатите штраф, чтобы переместить значение в единицу FP, и еще один штраф, чтобы переместить его обратно на следующую целочисленную инструкцию, выданную ему.
- person Mysticial; 29.12.2011
por
, orps
и orpd
- person Mysticial; 29.12.2011