当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – MIPS(好奇心)更快的方式清除寄存器?

来源:互联网 收集:自由互联 发布时间:2021-06-22
在MIPS汇编中清除寄存器(= 0)的最快方法是什么? 一些例子: xor $t0, $t0, $t0and $t0, $t0, $0move $t0, $0li $t0, 0add $t0, $0, $0 哪个效率最高? 在许多MIPS实现中,这些操作都将编译为相同的指令,因为
在MIPS汇编中清除寄存器(= 0)的最快方法是什么?

一些例子:

xor    $t0, $t0, $t0
and    $t0, $t0, $0
move   $t0, $0
li     $t0, 0
add    $t0, $0, $0

哪个效率最高?

在许多MIPS实现中,这些操作都将编译为相同的指令,因为通常’mov $a,$b’是成语或$a,$b,$0和li $r,x是ori $r的简写, $0,x:

move $t0, $0
li $t0, 0

这些都将发生在同一个管道上,在架构上是等价的:

xor $t0, $t0, $t0
and $t0, $t0, $0

在我曾经使用的每个RISC实现中,添加与xor /和/ nor / etc在同一个管道上.

基本上,这对于特定芯片的实现来说都是特别的,但它们都应该是单个时钟.如果芯片出现故障,li或者x,$0,$0可能是最快的,因为它们可以最大限度地减少对其他寄存器的错误依赖性.

网友评论