CHAPTER 1 INTRODUCTION TO THE INTEL ARCHITECTURE MMXTM TECHNOLOGY | |||
1.1. | ABOUT THE INTEL ARCHITECTURE MMXTM TECHNOLOGY | 1-1 | |
1.1.1. | Single Instruction, Multiple Data (SIMD) Technique | 1-1 | |
1.1.2. | Performance Improvement | 1-2 | |
1.2. | ABOUT THIS MANUAL | 1-2 | |
1.3. | RELATED DOCUMENTATION | 1-3 | |
CHAPTER 2 INTEL ARCHITECTURE MMX TECHNOLOGY FEATURES | |||
2.1. | NEW FEATURES | 2-1 | |
2.2. | NEW DATA TYPES | 2-1 | |
2.3. | MMX Technology REGISTERS | 2-2 | |
2.4. | EXTENDED INSTRUCTION SETv | 2-3 | |
2.4.1. | Packed Data | 2-3 | |
2.4.2. | Saturation Arithmetic Vs. Wrap Around | 2-4 | |
2.4.3. | Instruction Group Overview | 2-5 | |
2.4.3.1. | ARITHMETIC INSTRUCTIONS | 2-5 | |
2.4.3.2. | COMPARISON INSTRUCTIONS | 2-6 | |
2.4.3.3. | CONVERSION INSTRUCTIONS | 2-6 | |
2.4.3.4. | LOGICAL INSTRUCTIONS | 2-6 | |
2.4.3.5. | SHIFT INSTRUCTIONS | 2-7 | |
2.4.3.6. | DATA TRANSFER INSTRUCTIONS | 2-7 | |
2.4.3.7. | EMMS (EMPTY MMX TECHNOLOGY STATE) INSTRUCTION | 2-7 | |
2.4.4. | Instruction Operand | 2-7 | |
2.5. | COMPATIBILITY | 2-8 | |
CHAPTER 3 APPLICATION PROGRAMMING MODEL | |||
3.1. | DATA FORMATS | 3-1 | |
3.1.1. | Memory Data Formats | 3-1 | |
3.1.2. | IA MMX Technology Register Data Formats | 3-2 | |
3.1.3. | IA MMX Technology Instructions and the Floating-Point Tag Word | 3-2 | |
3.2. | PREFIXES | 3-3 | |
3.3. | WRITING APPLICATIONS WITH IA MMX TECHNOLOGY CODE | 3-3 | |
3.3.1. | Detecting IA MMX Technology Existence Using the CPUID Instruction | 3-3 | |
3.3.2. | The EMMS Instruction | 3-4 | |
3.3.3. | Interfacing with IA MMX Technology Procedures and Functions | 3-5 | |
3.3.4. | Writing Code with IA MMX Technology and Floating-Point Instructions | 3-5 | |
3.3.4.1. | RECOMMENDATIONS AND GUIDELINES | 3-6 | |
3.3.5. | Multitasking Operating System Environment | 3-7 | |
3.3.5.1. | COOPERATIVE MULTITASKING OPERATING SYSTEM | 3-7 | |
3.3.5.2. | PREEMPTIVE MULTITASKING OPERATING SYSTEM | 3-7 | |
3.3.6. | Exception Handling in IA MMX Technology Application Code | 3-8 | |
3.3.7. | Register Mapping | 3-8 | |
CHAPTER 4 SYSTEM PROGRAMMING MODEL | |||
4.1. | CONTEXT SWITCHING | 4-1 | |
4.1.1. | Cooperative Multitasking Operating System | 4-1 | |
4.1.2. | Preemptive Multitasking Operating System | 4-1 | |
4.2. | EXCEPTIONS | 4-3 | |
4.3. | COMPATIBILITY WITH EXISTING SOFTWARE ENVIRONMENTS | 4-4 | |
4.3.1. | Register Aliasing | 4-4 | |
4.3.2. | The Effect of Floating-Point and MMX Technology Instructions on the Floating-Point Tag Word | 4-7 | |
4.3.2.1. | ALIASING SUMMARY | 4-8 | |
4.3.3. | Context Switch Support | 4-8 | |
4.3.4. | Floating-Point Exceptions | 4-8 | |
4.3.5. | Debugging | 4-9 | |
4.3.6. | Emulation of the Instruction Set | 4-9 | |
4.3.7. | Exception handling in Operating Systems | 4-9 | |
CHAPTER 5 INTEL ARCHITECTURE MMX TECHNOLOGY INSTRUCTION SET | |||
5.1. | INSTRUCTION SYNTAX | 5-1 | |
5.2. | INSTRUCTION FORMAT | 5-2 | |
5.3. | NOTATIONAL CONVENTIONS | 5-3 | |
5.4. | HOW TO READ THE INSTRUCTION SET PAGES | 5-4 | |
EMMS--Empty MMX Technology State | 5-8 | ||
MOVD--Move 32 Bits | 5-10 | ||
MOVQ--Move 64 Bits | 5-12 | ||
PACKSSWB /PACKSSDW--Pack with Signed Saturation | 5-14 | ||
PACKUSWB--Pack with Unsigned Saturation | 5-16 | ||
PADDB/PADDW/PADDD--Packed Add | 5-18 | ||
PADDSB/PADDSW--Packed Add with Saturation | 5-21 | ||
PADDUSB/PADDUSW--Packed Add Unsigned with Saturation | 5-23 | ||
PAND--Bitwise Logical And | 5-26 | ||
PANDN--Bitwise Logical And Not | 5-28 | ||
PCMPEQB/PCMPEQW/PCMPEQD--Packed Compare for Equal | 5-30 | ||
PCMPGTB/PCMPGTW/PCMPGTD--Packed Compare for Greater Than | 5-33 | ||
PMADDWD--Packed Multiply and Add | 5-36 | ||
PMULHW--Packed Multiply High | 5-38 | ||
PMULLW--Packed Multiply Low | 5-40 | ||
POR--Bitwise Logical Or | 5-42 | ||
PSLLW/PSLLD/PSLLQ--Packed Shift Left Logical | 5-44 | ||
PSRAW/PSRAD--Packed Shift Right Arithmetic | 5-47 | ||
PSRLW/PSRLD/PSRLQ--Packed Shift Right Logical | 5-50 | ||
PSUBB/PSUBW/PSUBD--Packed Subtract | 5-53 | ||
PSUBSB/PSUBSW--Packed Subtract with Saturation | 5-56 | ||
PSUBUSB/PSUBSW--Packed Subtract Unsigned with Saturation | 5-58 | ||
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ--Unpack High Packed Data | 5-60 | ||
PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ--Unpack Low Packed Data | 5-63 | ||
PXOR--Bitwise Logical Exclusive OR | 5-66 | ||
APPENDIX A IA MMX TECHNOLOGY INSTRUCTION SET SUMMARY | |||
APPENDIX B IA MMX TECHNOLOGY INSTRUCTION FORMATS AND ENCODINGS | |||
APPENDIX C ALPHABETICAL LIST OF IA MMX TECHNOLOGY INSTRUCTION SET MNEMONICS | |||
APPENDIX D IA MMX TECHNOLOGY INSTRUCTION SET OPCODE MAP | |||
FIGURES | |||
Figure | Title | Page | |
2-1. | Packed Data Types | 2-2 | |
2-2. | MMX Technology Register Set | 2-3 | |
3-1. | Eight Packed Bytes in Memory (at address 1000H) | 3-2 | |
4-1. | Example of FP and MMX Technology State Saving in Operating System | 4-2 | |
4-2. | Aliasing of MMX Technology to Floating-Point Registers | 4-5 | |
4-3. | Mapping of MMX Technology Registers to Floating Point Registers | 4-6 | |
5-1. | Floating Point Tag Word Format | 5-8 | |
B-1. | Key to Codes for Datatype Cross-Reference | B-3 | |
Tables | |||
Table | Title | Page | |
2-1. | Data Range Limits for Saturation | 2-4 | |
3-1. | IA MMX Technology Instruction Behavior with Prefixes Used by Application Programs | 3-3 | |
4-1. | Effect of the FP and MMX Technology Instructions on the FP Tag Word | 4-7 | |
4-2. | Effects of MMX Technology Instruction on FP State | 4-8 | |
A-1. | IA MMX Technology Instruction Set Summary, Grouped into Functional Categories | A-2 | |
B-1. | Encoding of Granularity of Data (gg) Field | B-1 | |
B-2. | Encoding of 32-bit General Purpose (reg) Field for Register-to-Register Operations | B-2 | |
B-3. | Encoding of 64-bit MMX Technology Register (mmxreg) Field | B-2 | |
B-4. | IA MMX Technology Instruction Formats and Encodings | B-3 | |
C-1. | IA MMX Technology Instruction Set Mnemonics | C-1 | |
D-1. | Opcode Map (First Byte is (0FH) | D-3 | |
D-2. | Opcodes Determined by Bits 5, 4, 3 of Mod R/M Byte | D-5 | |
Examples | |||
Example | Title | Page | |
3-1. | Partial sequence of IA MMX technology detection by CPUID | 3-4 | |
3-2. | Floating-point and MMX Technology Code | 3-7 |
Legal Stuff © 1997 Intel Corporation