Claims
- 1. A set of virtual machine instructions suitable for execution in a virtual machine, the set of virtual machine instructions representing a number of corresponding Java Bytecode executable instructions that are also suitable for execution in the virtual machine,
wherein the set of the virtual machine instructions consists of a number of virtual machine instructions which is less than the number of the corresponding Java Bytecode executable instructions, and wherein every one of the corresponding Java Bytecode executable instructions can be represented by at least one of the virtual machine instructions in the virtual machine instruction set.
- 2. A set of virtual machine instructions as recited in claim 1, wherein the number of virtual machine instructions is about 30 to 50 percent of the number of the corresponding Java Bytecode executable instructions.
- 3. A set of virtual machine instructions as recited in claim 1, wherein two or more Java Bytecode executable instructions are represented by one virtual machine instruction.
- 4. A set of virtual machine instructions as recited in claim 1, wherein at least one of the Java Bytecode executable instructions can be represented by the two or more virtual machine instructions.
- 5. A set of virtual machine instructions as recited in claim 4, wherein the least one Java Bytecode executable instruction is a conditional data flow operation.
- 6. A set of virtual machine instructions as recited in claim 1, wherein the set includes at least one virtual machine instruction that represents at least one operation that cannot be represented by any one of the Java Bytecode executable instructions.
- 7. A set of virtual machine instructions as recited in claim 6, wherein the at least one virtual machine instruction represents a duplicate stack operation.
- 8. A set of virtual machine instructions as recited in claim 1, wherein at least one virtual machine instruction is internally represented in the virtual machine by a pair of streams.
- 9. A set of virtual machine instructions as recited in claim 8, wherein the pair of streams includes a code stream and a data stream,
wherein the code stream is suitable for containing a code portion of the at least one virtual machine instruction, and the data stream is suitable for containing a data portion of the at least one virtual machine instruction.
- 10. A method of converting a set of Java Bytecode executable instructions into a set of executable virtual machine instructions, the method comprising:
receiving one or more bytes representing a Java Bytecode instruction suitable for execution in a virtual machine; selecting a corresponding virtual machine instruction, the corresponding virtual machine instruction suitable for execution in the virtual machine and representing one or more operations that can be performed when the Java Bytecode instruction is executed; and wherein the virtual machine instruction can represent at least two or more Java Bytecode executable instructions such that operations that can be performed by executing the at least two or more Java Bytecode executable instructions can be performed by execution of the virtual machine instruction.
- 11. A method as recited in claim 10, wherein the method further comprises:
loading the virtual machine instruction into the virtual machine as an internal representation with a pair of streams.
- 12. A method as recited in claim 10, wherein the pair of streams includes a code stream and a data stream, the code stream suitable for containing a code portion of the at least one virtual machine instruction, and the data stream suitable for containing a data portion of the at least one virtual machine instruction.
- 13. A Java Bytecode instruction translator operating to convert a set of Java Bytecode executable instructions suitable for execution on a virtual machine into a set of corresponding executable virtual machine instructions,
wherein the corresponding virtual machine instructions are also suitable for execution in the virtual machine and represent operations that can be performed by execution of a number of corresponding Java Bytecode instructions, and wherein the corresponding set of the virtual machine instructions consists of a number of virtual machine instructions that is less than the number of the corresponding Java Bytecode executable instructions.
- 14. A Java Bytecode instruction translator as recited in claim 13, wherein two or more Java Bytecode executable instructions are represented by one virtual machine instruction.
- 15. A Java Bytecode instruction translator as recited in claim 13, wherein at least one of the Java Bytecode executable instructions can be represented by two or more virtual machine instructions.
- 16. A Java Bytecode instruction translator as recited in claim 15, wherein the least one Java Bytecode executable instruction is a conditional data flow operation.
- 17. A Java Bytecode instruction translator as recited in claim 13, wherein the set includes at least one virtual machine instruction that represents operations that cannot be represented by any one of the Java Bytecode executable instructions.
- 18. A Java Bytecode instruction translator as recited in claim 17, wherein the at least one virtual machine instruction represents a duplicate stack operation.
- 19. A Java Bytecode instruction translator as recited in claim 13, wherein at least one virtual machine instruction is internally represented in the virtual machine by a pair of streams.
- 20. A Java Bytecode instruction translator as recited in claim 19, wherein the pair of streams includes a code stream and a data stream,
wherein the code stream is suitable for containing a code portion of the at least one virtual machine instruction, and wherein the data stream is suitable for containing a data portion of the at least one virtual machine instruction.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. (Att.Dkt.No. SUN1P827/P6095), entitled “ENHANCED VIRTUAL MACHINE INSTRUCTIONS”, filed on an even date, and hereby incorporated herein by reference for all purposes.
[0002] This application is related to U.S. patent application Ser. No. 09/703,361 (Att.Dkt.No. SUN1P809/P5500), entitled “IMPROVED FRAMEWORKS FOR INVOKING METHODS IN VIRTUAL MACHINES”, which is hereby incorporated herein by reference for all purposes.
[0003] This application is related to U.S. patent application Ser. No. 09/703,356 (Att.Dkt.No. SUN1P810/P5510), entitled “IMPROVED METHODS AND APPARTUS FOR NUMERIC CONSTANT VALUE INLINING IN VIRTUAL MACHINES”, which is hereby incorporated herein by reference for all purposes.
[0004] This application is related to U.S. patent application Ser. No. 09/703,449 (Att.Dkt.No. SUN1P814/P5417), entitled “IMPROVED FRAMEWORKS FOR LOADING AND EXECUTION OF OBJECT-BASED PROGRAMS”, which is hereby incorporated herein by reference for all purposes.