[發明專利]跨指令集調用函數的方法和電子設備有效
| 申請號: | 201110399449.6 | 申請日: | 2011-12-05 |
| 公開(公告)號: | CN103135964A | 公開(公告)日: | 2013-06-05 |
| 發明(設計)人: | 李佳 | 申請(專利權)人: | 聯想(北京)有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 北京市柳沈律師事務所 11105 | 代理人: | 安之斐 |
| 地址: | 100085*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 指令 調用 函數 方法 電子設備 | ||
1.一種跨指令集調用函數的方法,應用于電子設備,其中所述電子設備包括具有第一處理器架構的處理器,所述方法包括:
設置針對所述第一處理器架構的第一指令集的第一堆棧;
構造具有第二處理器架構的虛擬機;
設置針對所述第二處理器架構的第二指令集的第二堆棧;
根據所述第一處理器架構和所述第二處理器架構,確定并存儲所述第一堆棧和所述第二堆棧之間的對應關系;以及
通過所述第二堆棧,根據所述第一堆棧和所述第二堆棧之間的對應關系調用所述第二指令集中的第二函數。
2.如權利1所述的方法,其中所述設置針對所述第二處理器架構的第二指令集的第二堆棧包括:
通過所述處理器設置針對所述第二處理器架構的第二指令集的第二堆棧。
3.如權利1所述的方法,在通過所述第二堆棧,根據所述第一堆棧和所述第二堆棧之間的對應關系調用所述第二指令集中的第二函數之前,所述方法還包括:
通過所述處理器在所述第一處理器架構的環境下運行第一函數;
確定所述第一函數需要調用在所述第二處理器架構的環境下的第二函數;以及
將所述第一函數需要傳入所述第二函數的第一參數壓入所述第一堆棧,并觸發調用指令。
4.如權利3所述的方法,其中所述將所述第一函數需要傳入所述第二函數的第一參數壓入所述第一堆棧包括:
將所述第一函數需要傳入所述第二函數的第一參數壓入所述第一堆棧;以及
保持所述第一堆棧的第一堆棧指針所指向的地址為第一參數被壓入所述第一堆棧之前,該第一堆棧指針所指向的地址。
5.如權利3所述的方法,所述通過所述第二堆棧,根據所述第一堆棧和所述第二堆棧之間的對應關系調用所述第二指令集中的第二函數包括:
分析所述第一參數的個數與類型;
響應于所述調用指令,根據所述第一堆棧和所述第二堆棧之間的對應關系和所述第一參數的個數與類型,將所述第一參數放入所述第二堆棧中。
6.如權利5所述的方法,所述通過所述第二堆棧,根據所述第一堆棧和所述第二堆棧之間應關系調用所述第二指令集中的第二函數還包括:
所述虛擬機從所述第二堆棧中獲得所述第一參數,并代入所述第二函數中;
所述虛擬機執行所述第二函數,并獲得運算結果。
7.如權利6所述的方法,在通過所述第二堆棧,根據所述第一堆棧和所述第二堆棧之間的對應關系調用所述第二指令集中的第二函數之后,所述方法還包括:
所述虛擬機將所述運算結果放入所述第二堆棧中,
根據所述第一堆棧和所述第二堆棧之間的對應關系,將所述運算結果放入所述第一堆棧中;以及
所述處理器在所述第一處理器架構的環境下根據所述運算結果繼續運行所述第一函數。
8.如權利7所述的方法,其中
所述根據所述第一堆棧和所述第二堆棧之間的對應關系,將所述運算結果放入所述第一堆棧中包括:
根據所述第一堆棧和所述第二堆棧之間的對應關系,將所述運算結果放入所述第一堆棧,以及
修改所述第一堆棧指針,其中修改后的該第一堆棧指針所指向所述運算結果被存儲的地址;
所述處理器在所述第一處理器架構的環境下根據所述運算結果繼續運行所述第一函數包括:
根據所述修改后的該第一堆棧指針獲得所述運行結果,以及
所述處理器在所述第一處理器架構的環境下根據所述運算結果繼續運行所述第一函數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于聯想(北京)有限公司,未經聯想(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110399449.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:鍋爐余熱換熱裝置
- 下一篇:一種微孔發泡PP塑料制品的注塑成型工藝





