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

Filed under:
|
|
|

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

Related posts about sse

Related posts about x86