[發明專利]禁止已翻譯指令序列執行的方法、裝置和虛擬機有效
| 申請號: | 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.szxzyx.cn/pat/books/201410032331.3/1.html,轉載請聲明來源鉆瓜專利網。





