[发明专利]禁止已翻译指令序列执行的方法、装置和虚拟机有效
申请号: | 201410032331.3 | 申请日: | 2014-01-23 |
公开(公告)号: | CN103744641A | 公开(公告)日: | 2014-04-23 |
发明(设计)人: | 傅杰;靳国杰;高翔 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 禁止 翻译 指令 序列 执行 方法 装置 虚拟机 | ||
1.一种禁止已翻译指令序列执行的方法,其特征在于,包括:
判断已翻译指令序列对应的监测语句中包括的假设条件是否成立;
若所述假设条件不成立,则从所述已翻译指令序列对应的线程控制结构中获取固定处理例程的首地址;
修改所述已翻译指令序列首部的至少一条指令为跳转到所述固定处理例程的首地址的跳转指令序列,以执行所述跳转指令序列禁止所述已翻译指令序列的执行。
2.根据权利要求1所述的方法,其特征在于,所述从所述已翻译指令序列对应的线程控制结构中获取固定处理例程的首地址之前,还包括:
在所述线程控制结构中增加一数据域;
将所述固定处理例程的首地址存储在所述数据域中;
所述从所述已翻译指令序列对应的线程控制结构中获取固定处理例程的首地址,包括:
从所述数据域中获取所述固定处理例程的首地址。
3.根据权利要求2所述的方法,其特征在于,所述从所述数据域中获取所述固定处理例程的首地址,包括:
获取所述线程控制结构的首地址;
将所述线程控制结构的首地址增加一个固定偏移量得到所述数据域对应的地址,所述固定偏移量为所述数据域在线程控制结构中对应的偏移量;
根据所述数据域对应的地址获取所述固定处理例程的首地址。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述跳转指令序列,包括加载指令和跳转指令,其中所述加载指令用于加载所述固定处理例程的首地址到临时寄存器,所述跳转指令用于跳转到所述临时寄存器中保存的固定处理例程的首地址。
5.一种禁止已翻译指令序列执行的装置,其特征在于,包括:
监测模块,用于判断已翻译指令序列对应的监测语句中包括的假设条件是否成立;
获取模块,用于若所述假设条件不成立,则从所述已翻译指令序列对应的线程控制结构中获取固定处理例程的首地址;
修改模块,用于修改所述已翻译指令序列首部的至少一条指令为跳转到所述固定处理例程的首地址的跳转指令序列,以执行所述跳转指令序列禁止所述已翻译指令序列的执行。
6.根据权利要求5所述的装置,其特征在于,还包括:
存储模块,用于在所述获取模块从所述已翻译指令序列对应的线程控制结构中获取固定处理例程的首地址之前,在所述线程控制结构中增加一数据域;以及
将所述固定处理例程的首地址存储在所述数据域中;
所述获取模块,具体用于:
从所述数据域中获取所述固定处理例程的首地址。
7.根据权利要求6所述的装置,其特征在于,所述获取模块,具体用于:
获取所述线程控制结构的首地址;
将所述线程控制结构的首地址增加一个固定偏移量得到所述数据域对应的地址,所述固定偏移量为所述数据域在线程控制结构中对应的偏移量;
根据所述数据域对应的地址获取所述固定处理例程的首地址。
8.根据权利要求5~7任一项所述的装置,其特征在于,所述跳转指令序列,包括加载指令和跳转指令,其中所述加载指令用于加载所述固定处理例程的首地址到临时寄存器,所述跳转指令用于跳转到所述临时寄存器中保存的固定处理例程的首地址。
9.一种虚拟机,其特征在于,包括如权利要求4~6任一项所述的禁止已翻译指令序列执行的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410032331.3/1.html,转载请声明来源钻瓜专利网。