Opcode PMAGW

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

Instruction: PMAGW dest, src

IF abs(src[15..0]) > abs(dest[15..0]) THEN dest[15..] <-src[15..0]
IF abs(src[31..16]) > abs(dest[31..16]) THEN dest[31..16]<-src[31..16]
IF abs(src[47..32]) > abs(dest[47..32]) THEN dest[47..32]<-src[47..32]
IF abs(src[63..56]) > abs(dest[63..56]) THEN dest[63..56]<-src[63..56]

Notes: The PMAGW instruction compares the absolute value of the
packed words in the destination operand and sets the destination words
to the value that has the larger magnitude. The PMAGW instruction
does not change the sign of the value with the larger magnitude and
it does not saturate.
The DEST must be an MMX register. The SRC can be either an MMX
register or a 64-bit memory operand.

Flags Affected: None


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:

PMAGW mm,mm/m64 0FH 52H PostByte

Copyright by InternetNightmare 2005-2006