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

添加之后,延迟槽消失:

作者在开发MIPSCPU过程中,遇到gcc编译器自动插入延迟槽的问题。为解决这一问题,作者在汇编文件头部添加了.setnoreorder指令,成功关闭了延迟槽特性。
最近写MIPS CPU,发现gcc编译器老是魔改跳转指令,经查得知这是一种叫做“延迟槽”的特性。
我写的是简单的单周期,用不到延迟槽。
又经过一番折腾,发现在汇编文件头添加 .set noreorder 就可以关闭延迟槽特性。
添加之前,有延迟槽

添加之后,延迟槽消失:

1546
2981
516

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