
6
-4
0
P
R
E
L
IM
IN
A
R
Y
C
P
U
In
s
tr
u
cti
o
n
S
e
t
S
u
m
a
r
y
PCMPGTW Pack Compare Greater Than Word
MMX Register 2 to MMX Register1
Memory with MMX Register
2
3
0F65 [11 mm1 mm2]
0F65 [mod mm r/m]
MMX reg 1 [word] <--FFFFh-- if MMX reg 1 [word] > MMX reg 2 [word]
MMX reg 1 [word]<--0000h-- if MMX reg 1 [word] NOT > MMX reg 2 [word]
MMX reg [word] <--FFFFh-- if memory[word] > MMX reg [word]
MMX reg [word] <--0000h-- if memory[word] NOT > MMX reg [word]
1/1
PMADDWD Packed Multiply and Add
MMX Register 2 to MMX Register 1
Memory to MMX Register
2
6
0FF5 [11 mm1 mm2]
0FF5 [mod mm r/m]
MMX reg 1 [dword] <--add-- [dword]<---- MMX reg 1 [sign word]*MMX reg 2[sign word]
MMX reg 1 [dword] <--add-- [dword] <---- memory[sign word] * Memory[sign word]
2/1
PMULHW Packed Multiply High
MMX Register 2 to MMX Register1
Memory to MMX Register
3
0
0FE5 [11 mm1 mm2]
0FE5 [mod mm r/m]
MMX reg 1 [word] <--upper bits-- MMX reg 1 [sign word] * MMX reg 2 [sign word]
MMX reg 1 [word] <--upper bits-- memory [sign word] * Memory [sign word]
2/1
PMULLW Packed Multiply Low
MMX Register 2 to MMX Register1
Memory to MMX Register
3
1
0FD5 [11 mm1 mm2]
0FD5 [mod mm r/m]
MMX reg 1 [word] <--lower bits-- MMX reg 1 [sign word] * MMX reg 2 [sign word]
MMX reg 1 [word] <--lower bits-- memory [sign word] * Memory [sign word]
2/1
POR Bitwise OR
MMX Register 2 to MMX Register1
Memory to MMX Register
3
6
0FEB [11 mm1 mm2]
0FEB [mod mm r/m]
MMX Reg 1 [qword] <--logic OR-- MMX Reg 1 [qword], MMX Reg 2 [qword]
MMX Reg [qword] <--logic OR-- MMX Reg [qword], memory[qword]
1/1
PSLLD Packed Shift Left Logical Dword
MMX Register 1 by MMX Register 2
MMX Register by Memory
MMX Register by Immediate
3
7
0FF2 [11 mm1 mm2]
0FF2 [mod mm r/m]
0F72 [11 110 mm] #
MMX reg 1 [dword] <--shift left, shifting in zeroes by MMX reg 2 [dword]--
MMX reg [dword] <--shift left, shifting in zeroes by memory[dword]--
MMX reg [dword] <--shift left, shifting in zeroes by [im byte]--
1/1
PSLLQ Packed Shift Left Logical Qword
MMX Register 1 by MMX Register 2
MMX Register by Memory
MMX Register by Immediate
3
8
0FF3 [11 mm1 mm2]
0FF3 [mod mm r/m]
0F73 [11 110 mm] #
MMX reg 1 [qword] <--shift left, shifting in zeroes by MMX reg 2 [qword]--
MMX reg [qword] <--shift left, shifting in zeroes by[qword]--
MMX reg [qword] <--shift left, shifting in zeroes by[im byte]--
1/1
PSLLW Packed Shift Left Logical Word
MMX Register 1 by MMX Register 2
MMX Register by Memory
MMX Register by Immediate
3
9
0FF1 [11 mm1 mm2]
0FF1 [mod mm r/m]
0F71 [11 110mm] #
MMX reg 1 [word] <--shift left, shifting in zeroes by MMX reg 2 [word]--
MMX reg [word] <--shift left, shifting in zeroes by memory[word]--
MMX reg [word] <--shift left, shifting in zeroes by[im byte]--
1/1
PSRAD Packed Shift Right Arithmetic Dword
MMX Register 1 by MMX Register 2
MMX Register by Memory
MMX Register by Immediate
4
0
0FE2 [11 mm1 mm2]
0FE2 [mod mm r/m]
0F72 [11 100 mm] #
MMX reg 1 [dword] <--arith shift right, shifting in zeroes by MMX reg 2 [dword--]
MMX reg [dword] <--arith shift right, shifting in zeroes by memory[dword]--
MMX reg [dword] <--arith shift right, shifting in zeroes by [im byte]--
1/1
Table 6-25. M II Processor MMX Instruction Set Clock Count Summary (Continued)
MMX INSTRUCTIONS
OPCODE
OPERATION
CLOCK
COUNT
LATENCY/
THROUGHPUT