Patent ID: 7451172

Claim:
A method, in a data processing system, for processing an instruction having denormal floating point operands, comprising: receiving an instruction having a first operand, a second operand, and a third operand; determining a first shift amount of a mantissa of the second operand based on a number of leading zeros in the mantissa of the second operand; determining 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; comparing the first shift amount to the second shift amount; determining if a negative value of the second shift amount is less than the first shift amount; and setting 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; setting 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; shifting the mantissa of the second operand by the third shift amount; and 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, 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.