SPARC 彙編/控制流
外觀
< SPARC 彙編
指令
|
cmp
|
比較兩個數字(減法)。設定標誌位。
指令
|
tst
|
測試兩個數字(執行“與”操作)。設定標誌位。
指令
|
jmp
|
跳轉到指定的間接地址。將返回值儲存在 %o7 中。
指令
|
jmpl
|
執行無條件的暫存器間接跳轉。目標地址在第一個運算元中提供,然後返回值儲存到 rd 運算元中。
jmpl rs1, rd
如果返回值儲存在 %o7 中,則此操作類似於子程式呼叫。如果返回值儲存在 %g0 中,則它類似於子程式返回。
指令
|
sethi
|
設定目標暫存器的最高 22 位,將最低 10 位設定為零。
sethi const22, rd
const22 必須是常數值,不能是暫存器。
指令
|
call
|
呼叫子程式。以單個標籤作為新的目標地址。將返回值儲存在 %o7 中。不能跳轉到暫存器間接地址。
指令
|
ret
|
從子程式返回。
指令
|
retl
|
從葉子子程式返回。
指令
|
rett
|
從陷阱指令或暫存器間接控制轉移返回。
指令
|
save
|
儲存當前暫存器視窗並建立一個新視窗。如果發生暫存器視窗溢位,則引發異常。
指令
|
restore
|
恢復已儲存的暫存器視窗。
分支不會儲存返回值。
指令
|
ba
|
始終分支。無條件跳轉到目標位置。d
指令
|
bn
|
從不分支。
指令
|
be
|
指令
|
bne
|
如果兩個運算元分別相等或不相等,則分支。
指令
|
bl
|
在“小於”時分支
指令
|
ble
|
在“小於或等於”時分支
指令
|
bge
|
在“大於或等於”時分支
指令
|
bg
|
在“大於”時分支
指令
|
blu
|
指令
|
bleu
|
與 bl 和 ble 相同,但使用無符號數
指令
|
bgeu
|
指令
|
bgu
|
與 bge 和 bg 相同,但使用無符號數
指令
|
bpos
|
如果數字為正,則分支。
指令
|
bneg
|
如果數字為負,則分支。
指令
|
bcs
|
指令
|
bcc
|
如果進位位分別設定或清除,則分支。
指令
|
bvs
|
指令
|
bvc
|
如果帶符號溢位位分別設定或清除,則分支。