想飞的蜗牛 发表于 2007-11-15 21:26

关于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 编辑 ]

想飞的蜗牛 发表于 2007-11-16 20:10

:shock: 晕哦
没有人么
呵呵 我开始的时候看漏了最后两句
问题解决了
页: [1]
查看完整版本: 关于sparc的寄存器窗口的trap问题