cmpf.s


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

[指定形式]

-

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

-

cmpfcnd.s reg1, reg2

 

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

-

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

[機能]

-

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

表 5.51

cmpfcnd.s命令一覧

命令

定義

説明

命令展開

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

備考

?:Unordered(比較不能)

[注意事項]

-

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

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