关于sparc的寄存器窗口的trap问题
本来想发到solaris区的,后来才发现还有这个版块
呵呵那么好的版都隐藏的那么深。发现这里人气不太旺,不知道是不是位置的问题
不知道有没有人对sparc的架构比较熟悉
我最近学习sparc架构遇到一些问题,就是对sparc的寄存器窗口吃不透
所以看处理trap的代码也不太懂,希望得到帮助
代码如下:
就是不懂最后为什么还要resotre
- window_overflow:
- /* rotate WIM on bit right, we have 8 windows */
- mov %wim,%l3
- sll %l3,7,%l4
- srl %l3,1,%l3
- or %l3,%l4,%l3
- and %l3,0xff,%l3
- /* disable WIM traps */
- mov %g0,%wim
- nop; nop; nop
- save
- std %l0, [%sp + 0]
- std %l2, [%sp + 8]
- std %l4, [%sp + 16]
- std %l6, [%sp + 24]
- std %i0, [%sp + 32]
- std %i2, [%sp + 40]
- std %i4, [%sp + 48]
- std %i6, [%sp + 56]
- //为什么还要restore!!
- restore
- mov %l3,%wim
- nop; nop; nop
- jmp %l1
- rett %l2
复制代码
[ 本帖最后由 想飞的蜗牛 于 2007-11-15 21:28 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
晕哦
没有人么
呵呵 我开始的时候看漏了最后两句
问题解决了