Assembly 直接访问MIPS协处理器条件标志

Assembly 直接访问MIPS协处理器条件标志,assembly,branch,mips,spim,Assembly,Branch,Mips,Spim,我希望访问MIPS协处理器1条件标志的值 比如说 c.eq.s $f4 $f6 move $t0 condflag1 #clearly illegal 我理解以下是可能的: c.eq.s $f4 $f6 bc1f L_CondFalse li $t0 0 j L_CondEnd L_CondFalse : li $t0 1 L_CondEnd : 有什么想法吗?您可以通过使用条件移动指令(从MIPS32开始提供)来避免分支 (未测试) 另一种选择是将FCCR移入探地雷达并读取位0 cfc1

我希望访问MIPS协处理器1条件标志的值

比如说

c.eq.s $f4 $f6
move $t0 condflag1 #clearly illegal
我理解以下是可能的:

c.eq.s $f4 $f6
bc1f L_CondFalse
li $t0 0
j L_CondEnd
L_CondFalse : li $t0 1
L_CondEnd :

有什么想法吗?

您可以通过使用条件移动指令(从MIPS32开始提供)来避免分支

(未测试)

另一种选择是将FCCR移入探地雷达并读取位0

cfc1   $t0, $25  # load FCCR into t0
andi   $t0, 1    # mask the bit 0 only
FCCR在MIPS32之前不可用,因此您可能必须使用FCSR($31)

cfc1   $t0, $25  # load FCCR into t0
andi   $t0, 1    # mask the bit 0 only