Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Main: сочетание _m64 и выражений с плавающей запятой может привести к неправильному коду
Замечания
Функция использует __m64 и float/double типы. Так как MMX и регистры с плавающей запятой используют одно и то же физическое пространство регистра (не может использоваться одновременно), использование __m64 и float/double типы в той же функции могут привести к повреждению данных, что может привести к возникновению исключения.
Чтобы безопасно использовать __m64 типы и типы с плавающей запятой в одной функции, каждая инструкция, использующая один из типов, должна быть разделена встроенным встроенным элементом _m_empty() (для MMX) или _m_femms() (для 3DNow!).
Example
В следующем примере создается C4730:
// C4730.cpp
// compile with: /W1
// processor: x86
#include "mmintrin.h"
void func(double)
{
}
int main(__m64 a, __m64 b)
{
__m64 m;
double f;
f = 1.0;
m = _m_paddb(a, b);
// uncomment the next line to resolve C4730
// _m_empty();
func(f * 3.0); // C4730
}