使用之间有什么区别:
c.eq.s $1, $2
bc1t L2
使用:
beq $1, $2, L2
如果他们做同样的事情,为什么有两种分支方式?如果他们不同,每个人的好处是什么?
谢谢
编辑:我不知道“c.eq.s”是特定于协处理器的。对于第二组代码的统一性,我只写了$ 1,$ 2而不是$ f1,$ f2。答案 0 :(得分:4)
如果数学协处理器条件位1为真,则bc1t
指令简单地分支。如果两个寄存器相等,就是这种情况。如果值相等,则等效于简单分支,beq
,但仅,如果两种情况下寄存器实际上都是相同的寄存器。
使用MIPS浮点协处理器时,$f1/$f2
指令中的寄存器应为c.eq.s
,因此两条指令不相同。除了那些在常规寄存器和协处理寄存器之间移动数据的情况之外,我从未看到在浮点指令中使用$1/$2
。
我认为只有方式以两步方式浮点条件分支。 IDT MIPS Microprocessor Family Software Reference Manual
州:
FP测试和分支指令是分开的。测试指令 比较两个FP值并相应地设置FPA条件位(C中的C. FP状态寄存器);分支指令分支该位是否为 设置或取消设置。