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