计算机编程中的MIPS、浮点数处理与数组操作
1 MIPS处理器的协处理器条件位
MIPS处理器的协处理器有一个条件位,可在FPU(浮点运算单元)中设置,并在CPU中检查。早期的MIPS只有一个条件位(称为FCC0),后期的有8个(称为FCC7 - FCC0),这些位位于FCCR寄存器中。
以下是一段优化的GCC 4.4.5代码示例:
d_max:
; set FPU condition bit if $f14<$f12 (b<a):
c.lt.d $f14, $f12
or $at, $zero ; NOP
; jump to locret_14 if condition bit is set
bc1t locret_14
; this instruction is always executed (set return value to "a"):
mov.d $f0, $f12
; branch delay slot
; this instruction is executed only if branch was not taken
; (i.e., if b>=a)
; set return value to "b":
mov.d $f0, $f14
locret_14:
jr $ra
or $at, $zero ; branch delay slot, NOP
-
C.LT.D:比较两个双精度值,根据比较结果设置或清除FCC0条件位。 -
BC1T:检查FCC0位,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



