Patent ID: 7039904
Filing Date: 2006-05-02
Classification: G06F

Abstract:
1. A method of storing values in local variables used by a virtual machine, said method comprising: receiving a first sequence of bytecodes to be executed by said virtual machine, wherein said first sequence of bytecodes is selected from a defined first set of executable virtual machine instructions implemented to conform with a virtual machine specification that includes said defined first set of executable virtual machine instructions; selecting, at load time, a first-reduced instruction from a reduced set of virtual machine instructions, wherein said first-reduced instruction represents two or more different virtual machine instructions in said first sequence of virtual machine instructions, the virtual machine being arranged to execute the reduced set of virtual machine instructions that provide all of the functionality provided by said defined first set of virtual machine instructions, and at least one operation that cannot be performed by said defined first set of virtual machine instructions and wherein every one of the instructions in said defined first set of virtual machine instructions can be represented by at least one of the virtual machine instructions in the reduced-set of virtual machine instructions, and wherein said reduced-set of virtual machine instructions consists of a number of virtual machine instructions which is less than the number executable virtual machine instructions in said defined first set of virtual machine instructions; translating, at load time, in said two or more different virtual machine instructions, in said first sequence of bytecodes, in said defined first set of virtual machine instructions into said first-reduced instruction from said reduced set of virtual machine instructions; determining, after said translating, a second sequence of bytecodes that includes said first-reduced instruction, thereby representing said first sequence of bytecodes with said second sequence that includes at least said first-reduced instructions from said reduced-set of virtual machine instructions replacing said two or more different virtual machine instructions in said first sequence; determining, at load time, whether said second sequence of bytecodes includes a Getfield instruction immediately followed by an Astore instruction, wherein said Getfield and Astore instructions are selected from said reduced set of virtual machine instructions; determining, at load time, a macro instruction that represents said Getfield instruction and said Astore instruction that immediately follows said Getfield instruction; loading into said virtual machine prior to execution time, said macro instruction instead of said Getfield instruction and said Astore instruction; and executing said macro instruction to store a value into a local variable.