安騰(R) 處理器主題分支指令

br

操作 字型慣例

指令型別 B

格式

(bp) br.btype.bwh.ph.dh target25 IP_relative_form

(bp) br.btype.bwh.ph.dh b1 = target25 call_form, IP_relative_form

br.btype.bwh.ph.dh target25 counted_form, IP_relative_form

br.ph.dh target25 pseudo-op

(bp) br.btype.bwh.ph.dh b2 indirect_form

(bp) br.btype.bwh.ph.dh b1 = b2 call_form, indirect_form

br.ph.dh b2 pseudo-op


說明

對分支條件求值,根據結果執行分支,或繼續執行序列中的下一條指令。從邏輯意義上說,分支的執行跟在相同指令組中前面所有非分支指令的執行之後。在執行的分支上,執行從指令槽 0 開始。

分支可以與 IP 相對分支或間接分支。對於 IP 相對分支,彙編中的 target25 運算元指定要執行的分支的標籤。在分支指令中,它作為有符號立即數位移量 (imm21) 進行編碼,放在目標分支束與包含此指令的分支束之間 (imm21 = target25 - IP >> 4)。對於間接分支,目標地址取自 BR b2

無條件分支有兩種偽操作。它們的編碼與條件分支類似 (btype = COND),bp 欄位指定 PR 0,並帶 bwh 提示 sptk。

基本分支型別

分支型別確定如何計算分支條件,以及分支是否有其它效果(如寫入鏈接暫存器)。對於基本分支型別,分支條件只是指定的謂詞暫存器中的值(稱為分支謂詞)。

基本分支型別包括:

對於分支指令,“先寫後讀”(RAW) 與“先讀後寫”(WAR) 在相關性要求方面略有不同。對於相同指令組中的後續分支指令而言,非分支指令對 BR、PR(謂詞暫存器)及 PFS 的更改都是可見的,也就是說,這些資源可使用受限制的 RAW。譬如說,低延遲的比較分支序列就是如此。常規 RAW 要求適用於 LC、EC 應用暫存器以及 RRB。

在指令組中,如果讀取與寫入指令都出現分支,則不允許在 PR 63 上存在 WAR 相關性。例如,br.wtop 或 br.wexit 不得使用 PR[63] 作為其限定謂詞,並且 PR[63] 不得是相同指令組中 br.wtop 或 br.wexit 之前任何分支的限定謂詞。

出於相關性方面的目的,循環型分支總是會有效地寫入關聯的資源,無論它們是否執行。cloop 型別總是會有效地寫入 LC。LC 為 0 時,cloop 分支讓它保持不變,但硬體可能會按照使用相同的值重寫 LC 的辦法來實施這種行為。與此類似,br.ctop 與 br.cexit 總是有效地寫入 LC、EC、RRB 以及 PR[63];br.wtop 與 br.wexit 總是有效地寫入 EC、RRB 以及 PR[63]。

下面是各種分支提示完成符的值:“是否預測策略”提示(在完成符 (bwh) 中指明)、 順序預取提示 (ph) 以及分支快取取消提示 (dh)