mulhw (Multiply High Word) instruction
Purpose
Computes the most significant 32 bits of the 64-bit product of two 32-bit integers.
Note: The mulhw instruction is supported only in the PowerPC® architecture.
Syntax
Bits | Value |
---|---|
0 - 5 | 31 |
6 - 10 | RT |
11 - 15 | RA |
16 - 20 | RB |
21 | / |
22 - 30 | 75 |
31 | Rc |
Description
The mulhw instruction multiplies the contents of general-purpose register (GPR) RA and GPR RB and places the most significant 32 bits of the 64-bit product in the target GPR RT. Both the operands and the product are interpreted as signed integers.
The mulhw instruction has two syntax forms. Each syntax form has a different effect on Condition Register Field 0.
Item | Description | |
---|---|---|
Syntax Form | Record Bit (Rc) | Condition Register Field 0 |
mulhw | 0 | None |
mulhw. | 1 | LT,GT,EQ,SO |
If the syntax form sets the Record (Rc) bit to 1, then the Less Than (LT) zero, Greater Than (GT) zero and Equal To (EQ) zero bits in Condition Register Field 0 reflect the result placed in GPR RT, and the Summary Overflow (SO) bit is copied from the XER to the SO bit in Condition Register Field 0.
Parameters
Item | Description |
---|---|
RT | Specifies target general-purpose register where the result of operation is stored. |
RA | Specifies source general-purpose register for EA calculation. |
RB | Specifies source general-purpose register for EA calculation. |
Examples
- The following code multiplies the contents
of GPR 4 by the contents of GPR 10 and stores the result in GPR 6:
# Assume GPR 4 contains 0x0000 0003. # Assume GPR 10 contains 0x0000 0002. mulhw 6,4,10 # GPR 6 now contains 0x0000 0000.
- The following code multiplies the contents
of GPR 4 by the contents of GPR 10, stores the result in GPR 6, and
sets Condition Register Field 0 to reflect the result of the operation:
# Assume GPR 4 contains 0x0000 4500. # Assume GPR 10 contains 0x8000 7000. # Assume XER(SO) = 0. mulhw. 6,4,10 # GPR 6 now contains 0xFFFF DD80. # Condition Register Field 0 now contains 0x4.