Patent ID: 7921279

Claim:
A method for providing operand and result forwarding between differently sized operands in a superscalar processor, the method including: grouping a first set of instructions in a superscalar processor for operand forwarding, and grouping a second set of instructions for result forwarding, the first set of instructions comprising at least a first source instruction having a first operand and a first dependent instruction having a second operand, the first dependent instruction depending from the first source instruction, the first operand having a first size and the second operand having a second size, wherein the first size is different from the second size; the second set of instructions comprising at least a second source instruction having a third operand and a second dependent instruction having a fourth operand, the second dependent instruction depending from the second source instruction, the third operand having a third size and the fourth operand having a fourth size, wherein the third size is different from the fourth size; performing operand forwarding by forwarding the first operand, either whole or in part, as it is being read to the first dependent instruction prior to execution; performing result forwarding by forwarding a result of the second source instruction, either whole or in part, to the second dependent instruction, after execution; wherein the operand forwarding is performed by executing the first source instruction together with the first dependent instruction, thereby bypassing an execution stage of the first dependent instruction; wherein the result forwarding is performed by executing the second source instruction together with the second dependent instruction, thereby bypassing an execution stage of the second dependent instruction; and wherein the second dependent instruction does not generate new data in response to operand data, and does not modify operand data.