最近写MIPS CPU,发现gcc编译器老是魔改跳转指令,经查得知这是一种叫做“延迟槽”的特性。
我写的是简单的单周期,用不到延迟槽。
又经过一番折腾,发现在汇编文件头添加 .set noreorder
就可以关闭延迟槽特性。
添加之前,有延迟槽
添加之后,延迟槽消失:
最近写MIPS CPU,发现gcc编译器老是魔改跳转指令,经查得知这是一种叫做“延迟槽”的特性。
我写的是简单的单周期,用不到延迟槽。
又经过一番折腾,发现在汇编文件头添加 .set noreorder
就可以关闭延迟槽特性。
添加之前,有延迟槽
添加之后,延迟槽消失: