浮動小数点比較(単精度)を行います。(Floating-point Compare (Single))
[指定形式]
- | cmpf.s imm4, reg1, reg2, cc#3 |
imm4に指定できるものを次に示します。
[機能]
- | “cmpf.s imm4, reg1, reg2, cc#3”の形式 |
reg2で指定されるレジスタにある単精度浮動小数点形式の内容を,比較条件imm4により,reg1で指定されるレジスタにある単精度浮動小数点形式の内容と比較します。結果(真ならば1,偽ならば0)をcc#3で指定されるFPSRレジスタのコンディション・ビット(CC(7:0)ビット:ビット31〜24)にセットします。cc#3が省略された場合はCC0ビット(ビット24)にセットします。
- | “cmpfcnd.s reg1, reg2”の形式 |
cmpfcnd.sにより対応するcmpf.s命令が生成され(「表 5.51 cmpfcnd.s命令一覧」を参照),“cmpf.s imm4, reg1, reg2, cc#3”の形式に展開されます。reg2で指定されるレジスタにある単精度浮動小数点形式の内容を,比較条件により,reg1で指定されるレジスタにある単精度浮動小数点形式の内容と比較します。結果(真ならば1,偽ならば0)をcc#3で指定されるFPSRレジスタのコンディション・ビット(CC(7:0)ビット:ビット31〜24)にセットします。cc#3が省略された場合はCC0ビット(ビット24)にセットします。
[詳細説明]
- | “cmpf.s imm4, reg1, reg2, cc#3”の形式の命令に対し,アセンブラでは,機械語命令のcmpf.s命令が1つ生成されます。 |
- | “cmpfcnd.s reg1, reg2”の形式の命令に対し,アセンブラでは,対応するcmpf.s命令が生成され(「表 5.51 cmpfcnd.s命令一覧」参照),“cmpf.s imm4, reg1, reg2, cc#3”の形式に展開されます。 |
|
|
|
|
cmpff.s
|
FALSE
|
常に偽
|
cmpf.s 0x0
|
cmpfun.s
|
Unordered
|
reg1, reg2の少なくとも一方が非数
|
cmpf.s 0x1
|
cmpfeq.s
|
reg2 = reg1
|
いずれも非数ではなく,かつ等しい
|
cmpf.s 0x2
|
cmpfueq.s
|
reg2 ?= reg1
|
少なくとも一方が非数か,等しい
|
cmpf.s 0x3
|
cmpfolt.s
|
reg2 < reg1
|
いずれも非数ではなく,かつより小さい
|
cmpf.s 0x4
|
cmpfult.s
|
reg2 ?< reg1
|
少なくとも一方が非数か,より小さい
|
cmpf.s 0x5
|
cmpfole.s
|
reg2 ≦ reg1
|
いずれも非数ではなく,かつより小さいか,等しい
|
cmpf.s 0x6
|
cmpfule.s
|
reg2 ?≦ reg1
|
少なくとも一方が非数か,より小さいか,等しい
|
cmpf.s 0x7
|
cmpfsf.s
|
FALSE
|
常に偽
|
cmpf.s 0x8
|
cmpfngle.s
|
Unordered
|
reg1, reg2の少なくとも一方が非数
|
cmpf.s 0x9
|
cmpfseq.s
|
reg2 = reg1
|
いずれも非数ではなく,かつ等しい
|
cmpf.s 0xA
|
cmpfngl.s
|
reg2 ?= reg1
|
少なくとも一方が非数か,等しい
|
cmpf.s 0xB
|
cmpflt.s
|
reg2 < reg1
|
いずれも非数ではなく,かつより小さい
|
cmpf.s 0xC
|
cmpfnge.s
|
reg2 ?< reg1
|
少なくとも一方が非数か,より小さい
|
cmpf.s 0xD
|
cmpfle.s
|
reg2 ≦ reg1
|
いずれも非数ではなく,かつより小さいか,等しい
|
cmpf.s 0xE
|
cmpfngt.s
|
reg2 ?≦ reg1
|
少なくとも一方が非数か,より小さいか,等しい
|
cmpf.s 0xF
|
[注意事項]
- | cmpf.s命令のimm4に4ビットの範囲を越える絶対値式を指定した場合,次のメッセージを出力し,指定した値の下位4ビットを用いてアセンブルを続行します。 |
W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。
|