Patent ID: 7243350
Filing Date: 2007-07-10
Classification: G06F

Abstract:
1. A method of processing virtual machine instructions, the method comprising the acts of: identifying a subset of virtual machine instructions the processing of which is conditionally dependent upon the value of a condition control variable; fetching and processing a range of the virtual machine instructions into native instructions executable by a processor, wherein a virtual machine instruction counter is incremented after processing and dispatching to the processor for execution a virtual machine instruction of said range, and continuing until a member of said subset of the virtual machine instructions is encountered; initiating a control value retrieval process upon encountering said member, by dispatching native instructions represented by said member to the processor for execution; processing a speculative sequence of virtual machine instructions when an assumption has been made for an assumed value of a real value of the condition control variable, by: delaying further fetching and processing of the range of the virtual machine instructions until the real value of the condition control variable is received and then processing a next virtual machine instruction of the range according to the real control value, if no assumption is made for the assumed value of the real value of the condition control variable; wherein the act of processing said speculative sequence of virtual machine instructions further comprises the acts of: identifying as easily reversible virtual machine instructions that are stack manipulations including at least one of a stack push operation which is reversible by resetting a stack pointer value, and a bytcode that does not modify a state outside a virtual machine interpreter that is configured to process the easily reversible virtual machine instructions; processing each virtual machine instruction of said speculative sequence until encountering a virtual machine instruction of the speculative sequence which is not easily reversible; and suspending processing-of said speculative sequence of virtual machine instructions until the real value of the condition control variable is received, if the next virtual machine instruction of the speculative sequence is not easily reversible.