cmpf.d


浮動小数点比較(倍精度)を行います。(Floating-point Compare (Double))

[指定形式]

-

cmpf.d imm4, reg1, reg2, cc#3

-

cmpfcnd.d reg1, reg2

 

imm4に指定できるものを次に示します。

-

4ビット幅までの値を持つ絶対値式

[機能]

-

“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”の形式に展開されます。

表 5.50

cmpfcnd.d命令一覧

命令

定義

説明

命令展開

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

備考

?:Unordered(比較不能)

[注意事項]

-

cmpf.d命令のimm4に4ビットの範囲を越える絶対値式を指定した場合,次のメッセージを出力し,指定した値の下位4ビットを用いてアセンブルを続行します。

W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。