mulhd.

Multiply High Doubleword

mulhd. RT,RA,RB

Multiplies the contents of two registers and places the high-order 64 bits of the product into a target register.

Encoding

Binary Layout
011111
0:5
RT
6:10
RA
11:15
RB
16:20
/0010
21:30
01001
31
 
Format XO-form
Opcode 0x7C000092
Extension Base

Operands

  • RT
    Target General Purpose Register
  • RA
    Source General Purpose Register
  • RB
    Source General Purpose Register

Example

mulhd. r3, r4, r5

Registers Altered

CR0, XER

Related

More in Base

Reference

Description

For mulhd., the product of the contents of register RA and RB is computed, and the high-order 64 bits of this product are placed into register RT.

Operation

if 'mulhd.' then
    RT <- (RA) * (RB)

Programming Note

The mulhd. instruction multiplies two 64-bit integers and stores the high 64 bits of the result in a destination register. It does not affect any special registers like CR0 or XER, so developers should be cautious when relying on carry flags or overflow conditions. This instruction is commonly used in cryptographic algorithms where large integer multiplication is required without needing the lower half of the product.