Я пытаюсь перенести некоторый код из MMX в SSE2, и у меня при этом возникают некоторые проблемы.
Для ММХ у меня есть:
.data
align 16
onesByte qword 2 dup(0101010101010101h)
...
psubusb mm2,onesByte
psubusb mm0,onesByte
Для SSE2 у меня есть:
.data
align 16
onesByte_O oword 4 dup(0101010101010101h)
...
psubusb xmm2,onesByte_O
psubusb xmm0,onesByte_O
Что я не считаю правильным. Как правильно конвертировать oneBytes для поддержки SSE2? Спасибо!
qword 4
возможно. Таким образом, он был в 4 раза больше и с 0 в старших байтах. - person harold   schedule 07.03.2015qword
по-прежнему 64-битный, а не 128-битный, что требуется (согласно компилятору) при использовании регистров xmm для SSE2. - person Elegant   schedule 07.03.2015qword 2 dup
должно быть 128-битным как есть. Однако проблема все еще остается. Предполагая, что последнее утверждение выполняется:psubusb xmm2,onesByte
вместоonesByte_O
даетerror A2070: invalid instruction operands
. - person Elegant   schedule 07.03.2015psubusb xmm2, xmmword ptr [oneByte]
, потому что в противном случае автоматический тип будет QWord PTR - person zx485   schedule 07.03.2015