关于sparc的寄存器窗口的trap问题
本来想发到solaris区的,后来才发现还有这个版块呵呵那么好的版都隐藏的那么深。发现这里人气不太旺,不知道是不是位置的问题:lol:
不知道有没有人对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 编辑 ] :shock: 晕哦
没有人么
呵呵 我开始的时候看漏了最后两句
问题解决了
页:
[1]