mips 分支延迟时隙是否通过连续的分支传播?

发布于 2024-10-05 12:55:36 字数 241 浏览 8 评论 0原文

我正在玩分支延迟槽。在 spim 上尝试过。

j some
j a 
j b 
j c 
j d 
ori $9, $0, 13

some:
a:  
b:  
c:  
d:  

令我惊讶的是,它把 9 美元变成了 13 美元。 所以我的问题是延迟槽是否可以传播,或者这是一个垃圾消息并且不会发生在真正的 mips32 处理器上? 如果这是预期的行为,有人可以给我一些关于那里发生的事情的启发吗?

I was playing around with branch delay slots. Tried that on spim.

j some
j a 
j b 
j c 
j d 
ori $9, $0, 13

some:
a:  
b:  
c:  
d:  

For my surprise it changed the $9 to 13.
So my question is can a delay slot propagate or this is a spim thing and doesn't happen on real mips32 processors?
If this is the expected behavior can someone give me a little enlightenment on what's happening there?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

中性美 2024-10-12 12:55:36

Mips 指出,将分支指令放入分支延迟槽会导致未定义的结果。

Mips states that placing branch instruction in to a branch delay slot leads to undefined results.

秋日私语 2024-10-12 12:55:36

作为免责声明,我从未使用过真正的 MIPS 机器,但我想对另一个分支使用分支延迟槽几乎肯定会导致问题。 MIPS 等处理器上的一种常见做法是使用分支延迟槽进行无操作,例如 ori $0, $0, 0,只是为了确保不执行任何不应该执行的操作。

As a disclaimer, I've never worked with a real MIPS machine, but I imagine that using a branch delay slot for another branch will almost certainly cause problems. One common practice on processors like MIPS is to use the branch delay slot for a no-op, such as ori $0, $0, 0, just to make sure that nothing executes that isn't supposed to.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文