繁体   English   中英

汇编-x86_64-谓词

[英]assembly - x86_64 - predicates

我正在为x86_64和arm编写一些程序集。

我想知道x86_64是否具有定义分支谓词的某些方法。

我搜索了英特尔文档,但找不到相关信息。

我们有cmov但是它相当慢,而cmp jmp组合往往会更快。

ARM谓词是分支的替代方法 IDK“分支谓词”的含义。 也许您是说“谓词条件”?

与仅跳过一条或两条指令(如果根本无法预测)的分支相比, cmov通常是值得的。 Broadwell和Skylake将cmov作为单个uop运行,但是以前的微体系结构需要2 uops,因为它具有3个输入依赖项。 它还创建数据依赖关系而不是控制依赖关系。 分支预测在可行时可能会更好。 同样, cmov无法采用立即操作数,这在许多情况下令人沮丧。

另一个可以使用条件作为输入的指令是setcc 使用xor reg,reg / set标志/ setcc low-byte-of-reg ,以避免在读取完整寄存器时出现部分reg停顿的情况。

对于进位条件, sbb same,same会产生0或-1(用作AND掩码),或adc reg, 0会产生reg += CF

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM