Methods and systems for maintaining information for locating non-native processor instructions when executing native processor instructions
AssigneeTransmeta Corporation
InventorsJohn P. Banning, H. Peter Anvin, Guillermo J. Rozas
Life of this patent
Estimating the term…
Abstract
Methods and systems that allow recovery of the program counter or instruction pointer for a target (non-native) instruction that is translated into a host (native) instruction, and that allow recovery of other information about the translator or the target system state, are described. The program counter or instruction pointer can be recovered, for example, after an exception has been processed or incident to a rollback operation.
Claims22
A method of recovering a pointer to a non-native instruction, said method comprising:
- accessing a translation of a code sequence of non-native instructions to a code sequence of native instructions;
- executing multiple commit operations during execution of said code sequence of native instructions such that there are multiple commit points associated with said translation;
- registering a first address for a native instruction associated with the last occurring commit point of said commit points;
- registering a second address used for recovering a non-native instruction associated with the first occurring commit point of said commit points;
- performing a rollback operation to said last commit point;
- and
- restarting said translation at said first commit point.
A method of recovering a non-native instruction during execution of native instructions, said method comprising:
- accessing a translation of a code sequence of non-native instructions to a code sequence of native instructions, said code sequence of native instructions advancing from a first occurring commit point through multiple commit points to a last occurring commit point before a rollback operation;
- performing said rollback operation to return to said last commit point using a first address to locate a native instruction associated with said last commit point;
- and
- in conjunction with said rollback operation, using a second address to recover a non-native instruction associated with said first commit point to restart said translation.
A method of recovering a non-native instruction during execution of native instructions, said method comprising:
- accessing a translation of a code sequence of non-native instructions to a code sequence of native instructions, said translation producing multiple commit points when executed;
- taking an exception identified during execution of said translation;
- as a result of taking said exception, reading an address in a register, said address pointing to a native instruction having an indicator bit and a plurality of pointer bits, wherein depending on the value of said indicator bit, said pointer bits point either to a single effective instruction pointer for a non-native instruction associated with said multiple commit points or to information that can be used for recovering said effective instruction pointer.
Dependencies are inferred from the claim text.