使用有什么区别
c.eq.s $1, $2
bc1t L2
使用:
beq $1, $2, L2
如果他们做同样的事情,为什么有两种分支方式?如果它们不同,每种都有什么好处?
感谢
编辑:我不知道"c.eq.s"是特定于协处理器的。为了与第二组代码保持一致,我只写了$1,$2,而不是$f1,$f2。
如果数学协处理器条件第1位为真,则bc1t
指令简单分支。如果两个寄存器相等,则情况就是这样。如果beq
的值相等,则相当于简单地分支,但如果两种情况下寄存器实际上是相同的寄存器,则仅。
对于MIPS浮点协处理器,寄存器应为c.eq.s
指令中的$f1/$f2
,因此这两条指令将不等效。我从未见过在浮点指令中使用$1/$2
,除了在常规寄存器和协处理器寄存器之间移动数据的指令。
我认为只有的方法可以以两步方式进行浮点条件分支。IDT MIPS Microprocessor Family Software Reference Manual
状态:
FP测试和分支指令是分开的。测试说明比较两个FP值并相应地设置FPA条件位(FP状态寄存器);分支指令根据位是否为设置或取消设置。