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