我正在阅读英特尔的软件开发人员手册。
关于奇偶校验标志有这样的说法:
如果结果的最低有效字节包含偶数个 1,则设置;否则清除。
我想知道 SIMD(特别是 SSE)指令是否会影响奇偶校验标志。例如,如果我使用 PEXTRB 指令,会设置奇偶校验标志吗?
条目PEXTRB
说
不受影响的标志
。
所以不行。
一般来说,只有主 ALU 组(and
/ or
/add
等,那个集合)和移位/旋转集合奇偶校验到任何奇偶校验(还有更多)。移动通常不会影响旗帜。SSE 指令通常不会影响标志,但有一些明显的例外。COMISS
和朋友影响平价,但方式完全不同。
如果你想要一个pextrb
ed 字节的奇偶校验,你就可以test
了。
根据可从 intertubes 轻松下载的“Intel 64 and IA-32 Architectures Software Developer's Manual vol 2”:
Flags Affected
None.