Patent ID: 8260837

Claim:
A system for processing an instruction having denormal floating point operands, comprising: a multiplier; first, second and third input lines for inputting a first operand, a second operand, and a third operand of the instruction; an alignment shifter coupled to the second input line; an exponent calculator coupled to the first, second and third input lines, wherein the exponent calculator receives an exponent portion of the first operand, the second operand, and the third operand via the first, second and third input lines; a compare/select unit coupled to the exponent calculator; and a leading zero counter coupled to the second input line and to the compare/select unit, wherein the alignment shifter receives the mantissa of the second operand via the second input line, and wherein: the leading zero counter determines a first shift amount of the mantissa of the second operand based on a number of leading zeros in the mantissa of the second operand, the exponent calculator determines a second shift amount of the mantissa of the second operand based on exponents of the first operand, the second operand, and the third operand, the compare/select unit compares the first shift amount to the second shift amount, the compare/select unit determines if a negative value of the second shift amount is less than the first shift amount, the compare/select unit sets the third shift amount equal to the second shift amount if the negative value of the second shift amount is less than the first shift amount, the compare/select unit sets the third shift amount equal to the first shift amount if the negative value of the second shift amount is not less than the first shift amount, and the alignment shifter shifts the mantissa of the second operand by the third shift amount and the shifted mantissa of the second operand is normalized to generate a normalized result for the instruction, wherein generating a normalized result for the instruction based on the shifted mantissa of the second operand and a product of the first and third operands comprises: generating an intermediate result based on the shifted mantissa of the second operand and the product of the first and third operands; generating a normalize shift amount based on the third shift amount, wherein the normalize shift amount is the sum of the third shift amount and the number of leading zeros of the mantissa of the second operand; and normalizing the intermediate result based on the normalize shift amount.