mulhwu
Multiply High Word Unsigned - 7C 00 00 16
mulhwu

Instruction Syntax

Mnemonic Format Flags
mulhwu rD,rA,rB OE = 0, Rc = 0
mulhwu. rD,rA,rB OE = 0, Rc = 1
mulhwuo rD,rA,rB OE = 1, Rc = 0
mulhwuo. rD,rA,rB OE = 1, Rc = 1

Instruction Encoding

0
1
1
1
1
1
D
D
D
D
D
A
A
A
A
A
B
B
B
B
B
OE
0
0
0
0
0
0
0
1
0
Rc

Field Bits Description
Primary Opcode 0-5 011111 (0x1F)
rD 6-10 Destination register
rA 11-15 Source register A
rB 16-20 Source register B
OE 21 Overflow Exception
XO 22-29 22 (Extended opcode)
Rc 30-31 Record Condition Register

Operation

rD ← (rA × rB)[32:63]

The contents of registers rA and rB are multiplied as unsigned 32-bit integers, and the high-order 32 bits of the 64-bit result are placed into rD.

Note: The mulhwu instruction performs unsigned multiplication and returns the high-order word of the result. This is useful for extended precision arithmetic and division algorithms with unsigned operands.

Affected Registers

Condition Register (CR0 field)

(if Rc = 1)

Note: CR0 field reflects the sign of the high-order word result.

XER (Exception Register)

(if OE = 1)

For more information on condition codes see Section 2.1.3, "Condition Register," and Section 2.1.5, "XER Register," in the PowerPC Microprocessor Family: The Programming Environments manual.

Examples

Basic Unsigned High Word Multiplication

mulhwu r3, r1, r2     # r3 = high 32 bits of (r1 * r2) unsigned
mulhwu. r3, r1, r2    # Same as above, but also sets condition register

Extended Precision Arithmetic

# Calculate high word of 64-bit unsigned multiplication
lwz r4, 0(r10)        # Load first operand
lwz r5, 4(r10)        # Load second operand  
mulhwu r6, r4, r5     # Get high word of unsigned product

Division Algorithm Support

# Part of unsigned division algorithm using high word
mulhwu r7, r8, r9     # Get high word for unsigned division step
# Use result in subsequent division operations

Overflow Detection

mulhwuo r3, r1, r2    # Multiply with overflow exception enabled
# If overflow occurs, an exception is raised

Related Instructions

mulhw, mulli, mullw

Back to Index