ARITHMETICAL (17 instructions)
PADD (Packed ADD):
PADDB [0x0FFC]
PADDW [0x0FFD]
PADDD [0x0FFE]
src: mm, mem64
dst: mm
Add data elements of the source operand to data elements of the destination
operand, wrap the result, and write to the destination operand. Packed byte
(PADDB), packed word (PADDW), and packed doubleword (PADDD) data types are
recognised.
PADDS (Packed ADD with Saturation):
PADDSB [0x0FEC]
PADDSW [0x0FED]
src: mm, mem64
dst: mm
Add signed data elements of the source operand to signed data elements of
the destination operand, saturate the result, and write to the destination
operand. Packed byte (PADDSB) and packed word (PADDSW) data types are recognised.
PADDUS (Packed ADD Unsigned with Saturation):
PADDUSB [0x0FDC]
PADDUSW [0x0FDD]
src: mm, mem64
dst: mm
Add unsigned data elements of the source operand to unsigned data elements
of the destination operand, saturate the result, and write to the destination
operand. Packed byte (PADDUSB) and packed word (PADDUSW) data types are
recognised.
PSUB (Packed SUBtract):
PSUBB [0x0FF8]
PSUBW [0x0FF9]
PSUBD [0x0FFA]
src: mm, mem64
dst: mm
Subtract data elements of the source operand from data elements of the
destination operand, wrap the result, and write to the destination operand.
Packed byte (PSUBB), packed word (PSUBW), and packed doubleword (PSUBD) data
types are recognised.
PSUBS (Packed SUBtract with Saturation):
PSUBSB [0x0FE8]
PSUBSW [0x0FE9]
src: mm, mem64
dst: mm
Subtract signed data elements of the source operand from signed data
elements of the destination operand, saturate the result, and write to the
destination operand. Packed byte (PSUBSB) and packed word (PSUBSW) data types
are recognised.
PSUBUS (Packed SUBtract Unsigned with Saturation):
PSUBUSB [0x0FD8]
PSUBUSW [0x0FD9]
src: mm, mem64
dst: mm
Subtract unsigned data elements of the source operand from unsigned data
elements of the destination operand, saturate the result, and write to the
destination operand. Packed byte (PSUBUSB) and packed word (PSUBUSW) data
types are recognised.
PMUL (Packed MULtiply):
PMULLW [0x0FD5]
PMULHW [0x0FE5]
src: mm, mem64
dst: mm
Multiply 4 signed words of the source operand by 4 signed words of the
destination operand to produce 4 signed doublewords. Write a low-order (PMULLW)
or high-order (PMULHW) signed word of of every signed doubleword to the
destination operand.
PMADD (Packed Multiply and ADD):
PMADDWD [0x0FF5]
src: mm, mem64
dst: mm
Multiply 4 signed words of the source operand by 4 signed words of the
destination operand to produce 4 signed doublewords. Add up 2 high-order signed
doublewords and store the result in the higher doubleword of the destination
operand. Add up 2 low-order signed doublewords and store the result in the lower
doubleword of the destination operand.
LOGICAL (4 instructions)
PAND |
(Packed [source] AND [destination]) |
[0x0FDB] |
PANDN |
(Packed [source] AND Not [destination]) |
[0x0FDF] |
POR |
(Packed [source] OR [destination]) |
[0x0FEB] |
PXOR |
(Packed [source] eXclusive OR [destination]) |
[0x0FEF] |
src: mm, mem64
dst: mm
Perform bitwise logical operations on 64-bit data quanta. Results are stored
in the destination operand.
src. bit |
dst. bit |
PAND |
PANDN |
POR |
PXOR |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Copyright (c) Paul V. Bolotoff, 2005-07. All rights reserved.
A full or partial reprint without a permission received from the author is
prohibited.
Designed and maintained by Alasir Enterprises, 1999-2007
rhett from alasir.com, walter from alasir.com
|