Patent ID: 7487330

Claim:
In a computing system that includes dynamic compilation capability, a method for executing a computer program including controlling the execution of an instruction of the computer program, comprising the steps of: translating an instruction from a first representation to a translated representation, and setting a tag associated with the instruction in the first representation; and prior to execution of a given instruction in the first representation, examining the tag associated with the given instruction, and if such associated tag has been set, branching to the translated version of the given instruction, for further execution of the program; and if said tag has not been set, interpreting and compiling the given instruction from said first representation, for further execution of the program; wherein said examining of said tag is effected without first attempting a cache fetch, so that the time required to attempt a cache fetch is saved if said tag has not been set; looking up the address of the translated version of the instruction; and executing the translated version of the given instruction, and, upon reaching the end of such execution, determining whether a subsequent instruction is to be executed, and if so, determining whether such subsequent instruction exists in a translated version by examining a tag associated with a first representation of the subsequent instruction.