发明名称 Method and system for implementing subroutine calls and returns in binary translation sub-systems of computers
摘要 A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the correct return address after any IL call to a subroutine, the corresponding OL return address is stored in an array at a location determined by a hash function. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the correct OL return address was previously stored. This location may have been overwritten by some other OL return address. This transfer will therefore be to one of three places: 1) either back to the correct OL call site, in which case execution may continue as normal; 2) directly to a back-up return address recovery module; or 3) to an incorrect OL call site (created upon translation of some other IL subroutine call), in which case execution is transferred to the back-up recovery module. A confirmation instruction block is included in each OL call site to determine whether the transfer was to the correct or incorrect call site.
申请公布号 US6711672(B1) 申请公布日期 2004.03.23
申请号 US20000668091 申请日期 2000.09.22
申请人 VMWARE, INC. 发明人 AGESEN OLE
分类号 G06F9/40;G06F9/45;G06F9/455;(IPC1-7):G06F9/455 主分类号 G06F9/40
代理机构 代理人
主权项
地址