5.8. 浮点搬运指令
浮点搬运指令用于在浮点寄存器之间、浮点寄存器与通用整数寄存器之间进行无条件或有条件赋值。LoongArch支持的浮点搬运指令如表4-9所示。
表4-9中,fmov用于无条件把浮点寄存器fj的值赋给浮点寄存器fd。fj和fd可以是f0~f31中的任意一个。操作数类型由指令后缀.s或.d区分,分别表示单精度浮点数和双精度浮点数。movgr2fr用于把通用寄存器rj中的数据写入浮点寄存器fd。指令名movgr2fr中,gr表示通用寄存器,fr表示浮点寄存器,2表示to。movgr2frh中的h表示high,含义是把通用寄存器低32位搬运到浮点寄存器高32位。movgr2fcsr用于写浮点控制状态寄存器,movfr2cf用于写浮点条件标志寄存器CFR。
表4-9中,fsel是唯一的有条件浮点赋值指令。如果条件标志寄存器ca的值等于0,则把浮点寄存器fj的值写入fd;否则,把浮点寄存器fk的值写入fd。