Patent ID: 7580968
Filing Date: 2009-08-25
Classification: G06F

Abstract:
1. A computer implemented method of performing a 64-bit scaled sum-of-product operation in a 32-bit environment comprising the steps of: storing a first 32-bit number in a first data register of a set of data registers; storing a second 32-bit number in a second data register of said set of data registers; storing 32 least significant bits of a 64-bit sum of products in a third data register of said set of data registers; storing 32 most significant bits of said 64-bit sum of products in a fourth data register in said set of data registers; in response to an integer multiply long instruction multiplying said first 32-bit number by said second 32-bit number producing a first product in an arithmetic logic unit, right shifting said first product by an instruction specified shift amount and storing 32 least significant bits of said shifted first product in a fifth data register of said set of data registers; in response to an add unsigned long instruction adding said shifted first product stored in said fifth data register to said 32 least significant bits of said 64-bit sum of products stored in said third data register producing a first sum in said arithmetic logic unit, setting a carry bit in said arithmetic logic unit to 1 if said adding generated a carry and to 0 if said adding did not generate a carry; in response to a QMPLY instruction multiplying said first 32-bit number by said second 32-bit number producing a second product in an arithmetic logic unit, and storing 32 most significant bits of said second product in said fifth data register of said set of data registers; and in response to a add carry long instruction shifting said second product stored in said fifth data register by said instruction specified shift amount and adding said shifted second product and said carry bit to said 32 most significant bits of said 64-bit sum of products stored in said fourth data register producing a second sum in said arithmetic logic unit, and storing said second sum in said fourth data register.