Method and system for implementing subroutine calls and returns in binary translation sub-systems of computers
AssigneeVMware, Inc.
InventorOle Agesen
Life of this patent
Estimating the term…
Loading patent…
AssigneeVMware, Inc.
InventorOle Agesen
Estimating the term…
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.
A method for implementing subroutine calls and returns in a computer system comprising the following steps:
A method for implementing subroutine calls and returns in a computer system comprising the following steps:
A system for implementing subroutine calls and returns in a computer system comprising:
Dependencies are inferred from the claim text.