Combining prefixes in SSE
Posted
by Nathan Fellman
on Stack Overflow
See other posts from Stack Overflow
or by Nathan Fellman
Published on 2010-03-08T20:09:34Z
Indexed on
2010/03/09
11:51 UTC
Read the original article
Hit count: 357
In SSE the prefixes 066h
(operand size override) 0F2H
(REPNE) and 0F3h
(REPE) are part of the opcode.
In non-SSE 066h
switches between 32-bit (or 64-bit) and 16-bit operation. 0F2h
and 0F3h
are used for string operations. They can be combined so that 066h
and 0F2h
(or 0F3h
) can be used in the same instruction, because this is meaningful. What is the behavior in an SSE instruction? For instance, we have (ignoring mod/rm for now):
0f 58
--> addps
66 0f 58
--> addpd
f2 0f 58
--> addsd
f3 0f 58
--> addss
But what is this?
66 f2 0f 58
And how about?
f2 66 0f 58
Not to mention the following which has two conflicting REP prefixes:
f2 f3 0f 58
What is the spec for thse?
© Stack Overflow or respective owner