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 : イミーディエトの値が指定可能な値の範囲を越えています。