Claims
- 1. A method of compiling instructions for a processor, said processor being a very-long-instruction-word processor, wherein said processor comprises:
- a plurality of input registers, each respective one thereof being capable of supplying a respective one of a plurality of input data of M bits wide; and
- a destination register capable of storing output data of M bits wide; and
- wherein the method comprises:
- determining a set of operations for being executed in parallel by the processor on the plurality of input data, the set of operations include at least one multimedia-specific operation;
- determining that at least a specific one of the input data comprises specific multiple operand data, each N bits wide, wherein N is smaller than M;
- determining that the specific multiple operand data be supplied via a specific one of the input registers; and
- determining that a result per operation involving any of the N bit wide operand data be stored in the destination register as an N bit wide output data.
- 2. The method of claim 1, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and the determining the set of operations comprises:
- adding the first and third operand data to produce a first result of N bits and adding the second and fourth operand data to produce a second result of N bits;
- clipping each respective result into a specified range to produce respective clipped results, each clipped result being N bits; and
- storing together the respective clipped results in said destination register.
- 3. The method of claim 1, wherein said specific one of the input data comprises two operand data of N bits each; and the determining the set of operations comprises:
- computing an absolute value of each of the two operand data, each computation producing a respective absolute value of N bits;
- clipping each respective absolute value into a specified range to produce respective clipped results, each clipped result being N bits; and
- storing the respective clipped results together in said destination register.
- 4. The method of claim 1, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and the determining the set of operations comprises:
- multiplying the first and third operand data to produce a first product and multiplying the second and fourth operand data to produce a second product, the first and second products each comprising N bits;
- clipping each respective product into a specified range to produce respective clipped results, each clipped result comprising N bits; and
- storing the respective clipped results together in said destination register.
- 5. The method of claim 1, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and the determining the set of operations comprises:
- subtracting the first operand data from the third operand data to produce a first difference and subtracting the second operand data from the fourth operand data to produce a second difference, the first and second differences each comprising N bits;
- clipping the first difference and the second difference into a specified range to produce respective clipped results, each clipped result comprising N bits; and
- storing the respective clipped results together in said destination register.
- 6. A computer program for execution on a computer with a processor, said processor being a very-long-instruction-word processor, wherein said processor comprises:
- a plurality of input registers, each respective one thereof being capable of supplying a respective one of a plurality of input data of M bits wide; and
- a destination register capable of storing output data of M bits wide;
- at least a specific one of the input data comprising specific multiple operand data, each N bits wide, wherein N is smaller than M; and
- wherein the program comprises instructions for a set of operations for execution in parallel by the processor on the plurality of input data, the set of operations include at least one multimedia-specific operation, the instructions comprising:
- loading the specific multiple operand data, each N bits wide, in a specific one of the input registers; and storing a result per operation involving any of the N bit wide operand data in the destination register as an N bit wide output data, clipped results, each clipped result being N bits; and
- storing together the respective clipped results in said destination register.
- 7. The computer program of claim 6, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and wherein the instructions further comprise:
- adding the first and third operand data to produce a first result of N bits and adding the second and fourth operand data to produce a second result of N bits;
- clipping each respective result into a specified range to produce respective clipped results, each clipped result being N bits; and
- storing together the respective clipped results in said destination register.
- 8. The computer program of claim 6, wherein said specific one of the input data comprises two operand data of N bits each; and wherein the instructions further comprise:
- computing an absolute value of each of the two operand data, each computation producing a respective absolute value of N bits;
- clipping each respective absolute value into a specified range to produce respective clipped results, each clipped result being N bits; and
- storing the respective clipped results together in said destination register.
- 9. The computer program of claim 6, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and wherein the instructions further comprise:
- multiplying the first and third operand data to produce a first product and multiplying the second and fourth operand data to produce a second product, the first and second products each comprising N bits;
- clipping each respective product into a specified range to produce respective clipped results, each clipped result comprising N bits; and
- storing the respective clipped results together in said destination register.
- 10. The computer program of claim 6, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and wherein the instructions further comprise:
- subtracting the first operand data from the third operand data to produce a first difference and subtracting the second operand data from the fourth operand data to produce a second difference, the first and second differences each comprising N bits;
- clipping the first difference and the second difference into a specified range to produce respective clipped results, each clipped result comprising N bits; and
- storing the respective clipped results together in said destination register.
- 11. A method of executing a computer program on a processor, said processor being a very-long-instruction-word processor, wherein said processor comprises:
- a plurality of input registers, each respective one thereof being capable of supplying a respective one of a plurality of input data of M bits wide; and
- a destination register capable of storing output data of M bits wide;
- wherein at least a specific one of the input data comprises specific multiple operand data, each N bits wide, wherein N is smaller than M; and
- the processor is capable of executing a set of operations in parallel on the plurality of input data, the set of operations include at least one multimedia-specific operation;
- the method comprising:
- loading the specific multiple operand data, each N bits wide, in a specific one of the input registers; and
- storing a result per operation involving any of the N bit wide operand data in the destination register as an N bit wide output data.
- 12. The method of claim 11, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and wherein the method further comprises:
- adding the first and third operand data to produce a first result of N bits and adding the second and fourth operand data to produce a second result of N bits;
- clipping each respective result into a specified range to produce respective clipped results, each clipped result being N bits; and
- storing together the respective clipped results in said destination register.
- 13. The method of claim 11, wherein said specific one of the input data comprises two operand data of N bits each; and wherein the instructions further comprise:
- computing an absolute value of each of the two operand data, each computation producing a respective absolute value of N bits;
- clipping each respective absolute value into a specified range to produce respective clipped results, each clipped result being N bits; and
- storing the respective clipped results together in said destination register.
- 14. The method of claim 11, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and wherein the method further comprises:
- multiplying the first and third operand data to produce a first product and multiplying the second and fourth operand data to produce a second product, the first and second products each comprising N bits;
- clipping each respective product into a specified range to produce respective clipped results, each clipped result comprising N bits; and
- storing the respective clipped results together in said destination register.
- 15. The method of claim 11, wherein said specific one of the input data comprises first and second operand data of N bits each, and another of said input data comprises third and fourth operand data of N bits each; and wherein the method further comprises:
- subtracting the first operand data from the third operand data to produce a first difference and subtracting the second operand data from the fourth operand data to produce a second difference, the first and second differences each comprising N bits;
- clipping the first difference and the second difference into a specified range to produce respective clipped results, each clipped result comprising N bits; and
- storing the respective clipped results together in said destination register.
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application 60/003,140 filed Sep. 1, 1995, and U.S. Provisional Application No. 60/004,642 filed Sep. 29, 1995.
US Referenced Citations (6)