查看分支延迟槽的源代码
←
分支延迟槽
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 概述 == 分支延迟槽 (Branch delay slot),简单地说就是位于分支指令后面的一条指令,不管分支发生与否其总是被执行,而且位于分支延迟槽中的指令先于分支指令提交 (commit)。 看这个代码片段 (MIPS Linux kernel 2.6.17): <source lang=bash> 801ea9d4: 02202021 move a0,s1 801ea9d8: 27a50014 addiu a1,sp,20 801ea9dc: 0c0ce551 jal 80339544 <pcibios_resource_to_bus> 801ea9e0: 02403021 move a2,s2 801ea9e4: 8e240010 lw a0,16(s1) ... </source> MIPS ABI 规定,a0, a1, a2, a3 用于过程调用的前四个参数,则 move a2, s2 是置第 3 个参数,但是其位于函数调用指令 jal 80339544(分支指令)之后,这个 move a2, s2 所在地即为一个分支延迟槽。 分支延迟槽在 DSP 和历史较悠久的 RISC 上比较常见,如 MIPS, SPARC 等。PowerPC 和 ARM 上则没有这个概念。x86 亦没有。 <br><br>
返回到
分支延迟槽
。
个人工具
3.17.132.212
该IP地址的讨论
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面