Volume 2A Instruction Set Reference A-M (794101), страница 9
Текст из файла (страница 9)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-4B.1.4.3Encoding of Operand Size (w) Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5B.1.4.4Sign-Extend (s) Bit . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5B.1.4.5Segment Register (sreg) Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-6B.1.4.6Special-Purpose Register (eee) Field . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-6B.1.4.7Condition Test (tttn) Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7B.1.4.8Direction (d) Bit . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-8B.1.5Other Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9B.2GENERAL-PURPOSE INSTRUCTION FORMATS AND ENCODINGS FOR NON-64-BIT MODES B9B.2.1General Purpose Instruction Formats and Encodings for 64-Bit Mode. .
. . . . . . . . . . . .B-24B.3PENTIUM® PROCESSOR FAMILY INSTRUCTION FORMATS AND ENCODINGS . . . . . . . . . . B-53B.464-BIT MODE INSTRUCTION ENCODINGS FOR SIMD INSTRUCTION EXTENSIONS . . . . . . B-54B.5MMX INSTRUCTION FORMATS AND ENCODINGS . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . B-55B.5.1Granularity Field (gg) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-55B.5.2MMX Technology and General-Purpose Register Fields (mmxreg and reg). . . . . . . . .
.B-55B.5.3MMX Instruction Formats and Encodings Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-55B.6PROCESSOR EXTENDED STATE INSTRUCTION FORMATS AND ENCODINGS. . . . . . . . . . . B-59B.7P6 FAMILY INSTRUCTION FORMATS AND ENCODINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-59B.8SSE INSTRUCTION FORMATS AND ENCODINGS . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-60B.9SSE2 INSTRUCTION FORMATS AND ENCODINGS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-69B.9.1Granularity Field (gg) . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-70Vol. 2A xvCONTENTSPAGEB.10B.11B.12B.13B.14B.15B.16B.17SSE3 FORMATS AND ENCODINGS TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-87SSSE3 FORMATS AND ENCODING TABLE . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-89SPECIAL ENCODINGS FOR 64-BIT MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-93SSE4.1 FORMATS AND ENCODING TABLE. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . B-97SSE4.2 FORMATS AND ENCODING TABLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-105FLOATING-POINT INSTRUCTION FORMATS AND ENCODINGS . . . . . . . . . . . . . . . . . . . . . . B-107VMX INSTRUCTIONS . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-113SMX INSTRUCTIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-115APPENDIX CINTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTSC.1SIMPLE INTRINSICS. . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2C.2COMPOSITE INTRINSICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. C-16FIGURESFigure 1-1.Figure 1-2.Figure 2-1.Figure 2-2.Figure 2-3.Figure 2-4.Figure 2-5.Figure 2-6.Figure 2-7.Figure 3-1.Figure 3-2.Figure 3-3.Figure 3-4.Figure 3-5.Figure 3-6.Figure 3-7.Figure 3-8.Figure 3-9.Figure 3-10.Figure 3-11.Figure 3-12.Figure 3-13.Figure 3-14.Figure 3-15.Figure 3-16.Figure 4-1.Figure 4-2.Figure 4-3.Figure 4-4.Figure 4-5.Figure 4-6.xvi Vol. 2ABit and Byte Order . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5Syntax for CPUID, CR, and MSR Data Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8Intel 64 and IA-32 Architectures Instruction Format . . . . .
. . . . . . . . . . . . . . . . . . . . . . 2-1Table Interpretation of ModR/M Byte (C8H) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5Prefix Ordering in 64-bit Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 2-9Memory Addressing Without an SIB Byte; REX.X Not Used . . . . . . . . . . . . . . . . . . . . 2-11Register-Register Addressing (No Memory Operand); REX.X Not Used . . . . . . . . . 2-11Memory Addressing With a SIB Byte . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 2-12Register Operand Coded in Opcode Byte; REX.X & REX.R Not Used . . . . . . . . . . . . 2-12Bit Offset for BIT[RAX, 21] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11Memory Bit Indexing . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12ADDSUBPD—Packed Double-FP Add/Subtract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-46ADDSUBPS—Packed Single-FP Add/Subtract . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 3-50Version Information Returned by CPUID in EAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-202Feature Information Returned in the ECX Register. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-204Feature Information Returned in the EDX Register . . . .
. . . . . . . . . . . . . . . . . . . . . . 3-207Determination of Support for the Processor Brand String . . . . . . . . . . . . . . . . . . . . 3-217Algorithm for Extracting Maximum Processor Frequency . . . . . . . . . . . . . . . . . . . . .
3-219HADDPD—Packed Double-FP Horizontal Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-486HADDPS—Packed Single-FP Horizontal Add. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-491HSUBPD—Packed Double-FP Horizontal Subtract .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-496HSUBPS—Packed Single-FP Horizontal Subtract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-501MOVDDUP—Move One Double-FP and Duplicate . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 3-684MOVSHDUP—Move Packed Single-FP High and Duplicate . . . . . . . . . . . . . . . . . . . . . 3-745MOVSLDUP—Move Packed Single-FP Low and Duplicate . . . . . . . . . . . . . . . . . . . . . 3-748Operation of PCMPSTRx and PCMPESTRx . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7Operation of the PACKSSDW Instruction Using 64-bit Operands . . . . . . . . . . . . . . . 4-36PMADDWD Execution Model Using 64-bit Operands . . . . . . . . . . . . . . . . . . . . . . . .
. . 4-143PMULHUW and PMULHW Instruction Operation Using 64-bit Operands. . . . . . . . 4-198PMULLU Instruction Operation Using 64-bit Operands . . . . . . . . . . . . . . . . . . . . . . . 4-209PSADBW Instruction Operation Using 64-bit Operands . . . . . . . . . . . . . . . . . . . . . . . 4-239CONTENTSPAGEFigure 4-7.Figure 4-8.Figure 4-9.Figure 4-10.Figure 4-11.Figure 4-12.Figure 4-13.Figure 4-14.Figure 4-15.Figure 4-16.Figure 4-17.Figure 4-18.Figure 4-19.Figure 4-20.Figure 5-1.Figure 5-2.Figure A-1.Figure B-1.PSHUB with 64-Bit Operands . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-243PSHUFD Instruction Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-246PSLLW, PSLLD, and PSLLQ Instruction Operation Using 64-bit Operand . . . . . . . 4-267PSRAW and PSRAD Instruction Operation Using a 64-bit Operand . . . . .
. . . . . . . 4-273PSRLW, PSRLD, and PSRLQ Instruction Operation Using 64-bit Operand . . . . . . 4-280PUNPCKHBW Instruction Operation Using 64-bit Operands . . . . . . . . . . . . . . . . . . 4-304PUNPCKLBW Instruction Operation Using 64-bit Operands. . . . . . . . . . .
. . . . . . . . 4-310Bit Control Fields of Immediate Byte for ROUNDxx Instruction . . . . . . . . . . . . . . . 4-372SHUFPD Shuffle Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-429SHUFPS Shuffle Operation . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-432UNPCKHPD Instruction High Unpack and Interleave Operation . . . . . . . . . . . . . . . 4-509UNPCKHPS Instruction High Unpack and Interleave Operation . . . . . . . . . . . . . . . 4-512UNPCKLPD Instruction Low Unpack and Interleave Operation . . .
. . . . . . . . . . . . . 4-515UNPCKLPS Instruction Low Unpack and Interleave Operation . . . . . . . . . . . . . . . . 4-518INVEPT Descriptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 5-4INVVPID Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8ModR/M Byte nnn Field (Bits 5, 4, and 3). . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .A-20General Machine Instruction Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1TABLESTable 2-1.Table 2-2.Table 2-3.Table 2-4.Table 2-5.Table 2-6.Table 2-7.Table 3-1.Table 3-2.Table 3-3.Table 3-4.Table 3-5.Table 3-6.Table 3-7.Table 3-8.Table 3-9.Table 3-10.Table 3-11.Table 3-12.Table 3-13.Table 3-14.Table 3-15.Table 3-16.Table 3-17.Table 3-18.Table 3-19.16-Bit Addressing Forms with the ModR/M Byte .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-632-Bit Addressing Forms with the ModR/M Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-732-Bit Addressing Forms with the SIB Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 2-8REX Prefix Fields [BITS: 0100WRXB] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-11Special Cases of REX Encodings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .