Multiply 2 unsigned 64-bit values together. Place the high-order 64 bits of the result into a register.
| Bits | Value |
|---|---|
| 0-5 | 31 |
| 6-10 | D |
| 11-15 | A |
| 16-20 | B |
| 21 | 0 |
| 22-30 | 9 |
| 31 | Rc |
| POWER family | |
|---|---|
| mulhdu | RT, RA, RB (Rc=0) |
| mulhdu. | RT, RA, RB (Rc=1) |
Both the operands and the product are interpreted as unsigned integers, except that if Rc = 1 (the mulhw. instruction) the first three bits of the condition register 0 field are set by signed comparison of the result to zero.
The 64-bit operands are the contents of RA and RB. The low-order 64 bits of the 128-bit product of the operands are placed into RT.
Other registers altered:
Affected: LT, GT, EQ, SO (if Rc = 1)
Note: The setting of CR0 bits LT, GT, and EQ is mode-dependent, and reflects overflow of the 64-bit result.
This instruction may execute faster on some implementations if RB contains the operand having the smaller absolute value.
This instruction is defined only for 64-bit implementations. Using it on a 32-bit implementation will cause the system illegal instruction error handler to be invoked.