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.

Details

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.

Pseudocode 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.

Example

mulhd. r3, r4, r5

Encoding

Binary Layout
011111
0
RT
6
RA
30
RB
31
/0010
01001
 
Format XO-form
Opcode 0x7C000093
Extension Base
Registers Altered CR0, XER

Operands

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