簡體   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