Opcode PMULHRIW


CPU: Cyrix with Extended MMX Instruction Set
Type of Instruction: User

Instruction: PMULHRIW dest, src

Description:
mmi[15..0] <- (dest[15..0]*src[15..0] + 00004000H)[30..15]
mmi[31..16] <- (dest[31..16]*src[31..16] + 00004000H)[30..15]
mmi[47..32] <- (dest[47..32]*src[47..32] + 00004000H)[30..15]
mmi[63..48] <- (dest[63..48]*src[63..48] + 00004000H)[30..15]

Notes: The PMULHRIW instruction are intended to give a result of the
form a 16x16 bit multiply with the LSB rounded before truncating to 16
bits.
The SRC can be either an MMX register or a 64-bit memory
operand. The destination is an MMX register, depending on the SRC.
The intent of the PMULHRIW instruction is the same as the PMULHRW
instrucction except that both sources are preserved

Flags Affected: None

Exceptions:

RM PM VM SMM Description
#GP(0) If Illegal memory operands EA in CS,DS,ES,FS,GS
#SS(0) If Illegal memory operands EA in SS
#PF(fcode) If page fault
#AC #AC If unaligned memory reference then alignment
check enabled and in ring 3.
#UD #UD #UD #UD If CR0.EM = 1
#NM #NM #NM #NM If CR0.TS = 1
#MF #MF #MF #MF If pending FPU Exception
#13 #13 If any part of the operand lies outside of the
EA space from 0 to FFFFH
++++++++++++++++++++++++++++++++++
COP & Times:

PMULHRIW mm,mm/m64 0FH 5DH PostByte


Copyright by InternetNightmare 2005-2006