mulhdu

Multiply High Doubleword Unsigned

mulhdu RT, RA, RB

Multiplies two 64-bit integers and returns the upper 64 bits of the 128-bit result (Unsigned).

Details

Multiplies two 64-bit unsigned integers (RA and RB) and stores the upper 64 bits of the 128-bit unsigned result in RT. The overflow flag is not set as the full 128-bit product is well-defined for unsigned multiplication. If Rc=1, CR0 is updated based on the result.

Pseudocode Operation

prod ← (RA) *u (RB); RT ← prod[64:127]; if Rc then CR0 ← (RT < 0, RT > 0, RT = 0, SO)

Programming Note

When Rc=1 (dot form), CR0 is updated with the signed comparison of the result against zero (LT, GT, EQ) and the current SO bit from XER.

Example

mulhdu r3, r4, r5

Encoding

Binary Layout
31
0
RT
6
RA
11
RB
16
OE
21
9
22
Rc
31
 
Format XO-form
Opcode 0x7C000012
Extension Base
Registers Altered CR0

Operands

  • RT
    Target
  • RA
    Src A
  • RB
    Src B