cmp4
指令型別 A
格式
(qp) cmp4.crel.ctype p1, p2 = r2, r3 register_form
(qp) cmp4.crel.ctype p1, p2 = imm8, r3 imm8_form
(qp) cmp4.crel.ctype p1, p2 = r0, r3 parallel_inequality_form
(qp) cmp4.crel.ctype p1, p2 = r3, r0 pseudo-op
說明
按照 crel 指定的十種關係之一,比較兩個源運算元中的最低有效 32 位。如果比較條件為真,則產生的布爾結果為 1,反之則為 0。此結果寫入兩個謂詞暫存器目的地 p1 與 p2。結果寫入目的地的方式由 ctype 指定的比較型別確定,如比較 (cmp) 指令中所述。
在 register_form 中,第一個運算元是 GR r2;在 imm8_form 中,第一個運算元取自符號擴充套件的 imm8 編碼欄位;在 parallel_inequality_form 中,第一個運算元必須是 GR 0。
只有比較型別是並行型別之一,且關係是不等式(>、>=、<、<=)時,才會使用 parallel_inequality_form,如比較 (cmp) 指令與並行型別比較的 64 位比較關係表格所述。
如果兩個謂詞暫存器目的地相同(p1 與 p2 指定相同的謂詞暫存器)、限定謂詞已設定或比較型別 (ctype) 為 unc,則指令都將發生“非法操作”錯誤。
在這十種關係中,並非所有都直接在硬體中實現。有一些實際上是偽操作。實現的關係以及這些偽操作如何對映到它們的資訊詳見標準與 UNC 型別比較的 64 位比較關係與並行型別比較的 64 位比較關係。