Itanium Architecture for Software Developers

INTEGER MULTIPLICATION

During our examination of the integer arithmetic in Chapter 6, we indicated that the floating-point unit performs the integer multiplication operation. Integer multiplication is performed on data resident in the floating-point registers with an instruction known as the fixed-point multiply ( xmpy) instruction. Just like floating-point division, the integer division operation must be performed in software.

Table 9.20 shows the formats of the xmpy instruction. This instruction treats the values in source operand registers f3 and f4 as either 64-bit signed or unsigned integers. That is, the sign and exponent fields of the data in the floating-point registers are ignored. These 64-bit numbers are multiplied to produce a 128-bit product; however, only the upper or lower 64 bits of the result are placed in destination operand register f1. For example, the following instruction multiplies the unsigned 64-bit numbers in Fr 5 and Fr 6 and places the upper 64-bits of this product in Fr 10.

(p0) xmpy.hu f10=f5,f6
Table 9.20: Integer Multiply Instruction Formats

Mnemonic

Operation

Format

xmpy

Floating-point multiply

(qp) xmpy.l f1=f3,f4

(qp) xmpy.lu f1=f3,f4

(qp) xmpy.h f1=f3,f4

(qp) xmpy.hu f1=f3,f4

xma

Fixed-point multiply add

(qp) xma.l f1=f3,f4,f2

(qp) xma.lu f1=f3,f4,f2

(qp) xma.h f1=f3,f4,f2

(qp) xma.hu f1=f3,f4,f2

This result is expressed as an integer in floating-point register format. Therefore, the exponent field of Fr 10 is set to the integer-biased exponent value...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Camera Lenses and Video Lenses
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.