Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > проблема с sse


Автор: nmn 21.11.2010, 01:19
здравствуйте

Код

__m128 *firstMatrix=(__m128*)m_data;
__m128 *secondMatrix=(__m128*)(matrix->m_data);

        for(ULONG ind=0;ind<m_rows*m_cols/4;++ind)
            firstMatrix[ind]=_mm_add_ps(firstMatrix[ind],secondMatrix[ind]);//AccessViolation error

        for(ULONG ind=m_rows*m_cols-(m_rows*m_cols%4);ind<m_rows*m_cols;++ind)
            m_data[ind]+=matrix->m_data[ind];


Код

   545:            firstMatrix[ind]=_mm_add_ps(firstMatrix[ind],secondMatrix[ind]);
00C99A80 8B 45 D4             mov         eax,dword ptr [ind]  
00C99A83 C1 E0 04             shl         eax,4  
00C99A86 03 45 E0             add         eax,dword ptr [secondMatrix]  
00C99A89 0F 28 00             movaps      xmm0,xmmword ptr [eax]  //Access Violation error!!!
00C99A8C 8B 4D D4             mov         ecx,dword ptr [ind]  
00C99A8F C1 E1 04             shl         ecx,4  
00C99A92 03 4D EC             add         ecx,dword ptr [firstMatrix]  
00C99A95 0F 28 09             movaps      xmm1,xmmword ptr [ecx]  
00C99A98 0F 58 C8             addps       xmm1,xmm0  


Код

Unhandled exception at 0x00c99a89 (MatrixCOM.dll) in test.exe: 0xC0000005: Access violation reading location 0xffffffff.


в eax находится правильный указатель на массив float

в чем проблема?

Добавлено через 1 минуту и 42 секунды
блин как только отправил, понял что массив не выровнен был smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)