浮動小数点比較(単精度)を行います。(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 : イミーディエトの値が指定可能な値の範囲を越えています。
|