У меня есть этот фрагмент кода:
@combinerows:
mov esi,eax
and edi,Row1Mask
and ebx,Row2Mask
or ebx,edi
//NewQ:= (Row1 and Row1Mask) or (Row2 and Row2Mask);
//Result:= NewQ xor q;
PUNPCKDQ mm4,mm5 <-- I get an error here
//mov eax,[eax].q
movd eax,mm4
//q:= NewQ;
mov [esi].q,ebx
xor eax,ebx //Return difference.
Я получаю эту ошибку:
[Ошибка Pascal] SDIMAIN.pas(718): E2003 Необъявленный идентификатор: 'PUNPCKDQ'
Я делаю что-то не так, или Delphi 2007 не поддерживает полный набор инструкций MMX/SSE?
DB
для вставки необработанных байтов инструкции. - person Rob Kennedy   schedule 21.06.2011push ebx
наmovd mm0,ebx
медленнее, аmovq mm4,[eax]
для загрузки 2 целых чисел за один раз медленнее, чем загрузка двух целых чисел с использованиемmov ebx,[eax] + mov ecx,[eax+4]
Использование регистров mmx в качестве фиктивного стека освобождаетesp
для изящных вещей. Это действительно сработало. - person Johan   schedule 21.06.2011