AMD64 Architecture Programmer’s Manual, Volume 4: 128 Bit And 256 Media Instructions Apm4
User Manual:
Open the PDF directly: View PDF
Page Count: 1047 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- AMD64 ArchitectureProgrammer’s Manual Volume 4: 128-Bit and 256-Bit Media Instructions
- Contents
- Figures
- Tables
- Revision History
- Preface
- 1 Introduction
- 2 Instruction Reference
- ADDPD VADDPD
- ADDPS VADDPS
- ADDSD VADDSD
- ADDSS VADDSS
- ADDSUBPD VADDSUBPD
- ADDSUBPS VADDSUBPS
- AESDEC VAESDEC
- AESDECLAST VAESDECLAST
- AESENC VAESENC
- AESENCLAST VAESENCLAST
- AESIMC VAESIMC
- AESKEYGENASSIST VAESKEYGENASSIST
- ANDNPD VANDNPD
- ANDNPS VANDNPS
- ANDPD VANDPD
- ANDPS VANDPS
- BLENDPD VBLENDPD
- BLENDPS VBLENDPS
- BLENDVPD VBLENDVPD
- BLENDVPS VBLENDVPS
- CMPPD VCMPPD
- CMPPS VCMPPS
- CMPSD VCMPSD
- CMPSS VCMPSS
- COMISD VCOMISD
- COMISS VCOMISS
- CVTDQ2PD VCVTDQ2PD
- CVTDQ2PS VCVTDQ2PS
- CVTPD2DQ VCVTPD2DQ
- CVTPD2PS VCVTPD2PS
- CVTPS2DQ VCVTPS2DQ
- CVTPS2PD VCVTPS2PD
- CVTSD2SI VCVTSD2SI
- CVTSD2SS VCVTSD2SS
- CVTSI2SD VCVTSI2SD
- CVTSI2SS VCVTSI2SS
- CVTSS2SD VCVTSS2SD
- CVTSS2SI VCVTSS2SI
- CVTTPD2DQ VCVTTPD2DQ
- CVTTPS2DQ VCVTTPS2DQ
- CVTTSD2SI VCVTTSD2SI
- CVTTSS2SI VCVTTSS2SI
- DIVPD VDIVPD
- DIVPS VDIVPS
- DIVSD VDIVSD
- DIVSS VDIVSS
- DPPD VDPPD
- DPPS VDPPS
- EXTRACTPS VEXTRACTPS
- EXTRQ
- HADDPD VHADDPD
- HADDPS VHADDPS
- HSUBPD VHSUBPD
- HSUBPS VHSUBPS
- INSERTPS VINSERTPS
- INSERTQ
- LDDQU VLDDQU
- LDMXCSR VLDMXCSR
- MASKMOVDQU VMASKMOVDQU
- MAXPD VMAXPD
- MAXPS VMAXPS
- MAXSD VMAXSD
- MAXSS VMAXSS
- MINPD VMINPD
- MINPS VMINPS
- MINSD VMINSD
- MINSS VMINSS
- MOVAPD VMOVAPD
- MOVAPS VMOVAPS
- MOVD VMOVD
- MOVDDUP VMOVDDUP
- MOVDQA VMOVDQA
- MOVDQU VMOVDQU
- MOVHLPS VMOVHLPS
- MOVHPD VMOVHPD
- MOVHPS VMOVHPS
- MOVLHPS VMOVLHPS
- MOVLPD VMOVLPD
- MOVLPS VMOVLPS
- MOVMSKPD VMOVMSKPD
- MOVMSKPS VMOVMSKPS
- MOVNTDQ VMOVNTDQ
- MOVNTDQA VMOVNTDQA
- MOVNTPD VMOVNTPD
- MOVNTPS VMOVNTPS
- MOVNTSD
- MOVNTSS
- MOVQ VMOVQ
- MOVSD VMOVSD
- MOVSHDUP VMOVSHDUP
- MOVSLDUP VMOVSLDUP
- MOVSS VMOVSS
- MOVUPD VMOVUPD
- MOVUPS VMOVUPS
- MPSADBW VMPSADBW
- MULPD VMULPD
- MULPS VMULPS
- MULSD VMULSD
- MULSS VMULSS
- ORPD VORPD
- ORPS VORPS
- PABSB VPABSB
- PABSD VPABSD
- PABSW VPABSW
- PACKSSDW VPACKSSDW
- PACKSSWB VPACKSSWB
- PACKUSDW VPACKUSDW
- PACKUSWB VPACKUSWB
- PADDB VPADDB
- PADDD VPADDD
- PADDQ VPADDQ
- PADDSB VPADDSB
- PADDSW VPADDSW
- PADDUSB VPADDUSB
- PADDUSW VPADDUSW
- PADDW VPADDW
- PALIGNR VPALIGNR
- PAND VPAND
- PANDN VPANDN
- PAVGB VPAVGB
- PAVGW VPAVGW
- PBLENDVB VPBLENDVB
- PBLENDW VPBLENDW
- PCLMULQDQ VPCLMULQDQ
- PCMPEQB VPCMPEQB
- PCMPEQD VPCMPEQD
- PCMPEQQ VPCMPEQQ
- PCMPEQW VPCMPEQW
- PCMPESTRI VPCMPESTRI
- PCMPESTRM VPCMPESTRM
- PCMPGTB VPCMPGTB
- PCMPGTD VPCMPGTD
- PCMPGTQ VPCMPGTQ
- PCMPGTW VPCMPGTW
- PCMPISTRI VPCMPISTRI
- PCMPISTRM VPCMPISTRM
- PEXTRB VPEXTRB
- PEXTRD VPEXTRD
- PEXTRQ VPEXTRQ
- PEXTRW VPEXTRW
- PHADDD VPHADDD
- PHADDSW VPHADDSW
- PHADDW VPHADDW
- PHMINPOSUW VPHMINPOSUW
- PHSUBD VPHSUBD
- PHSUBSW VPHSUBSW
- PHSUBW VPHSUBW
- PINSRB VPINSRB
- PINSRD VPINSRD
- PINSRQ VPINSRQ
- PINSRW VPINSRW
- PMADDUBSW VPMADDUBSW
- PMADDWD VPMADDWD
- PMAXSB VPMAXSB
- PMAXSD VPMAXSD
- PMAXSW VPMAXSW
- PMAXUB VPMAXUB
- PMAXUD VPMAXUD
- PMAXUW VPMAXUW
- PMINSB VPMINSB
- PMINSD VPMINSD
- PMINSW VPMINSW
- PMINUB VPMINUB
- PMINUD VPMINUD
- PMINUW VPMINUW
- PMOVMSKB VPMOVMSKB
- PMOVSXBD VPMOVSXBD
- PMOVSXBQ VPMOVSXBQ
- PMOVSXBW VPMOVSXBW
- PMOVSXDQ VPMOVSXDQ
- PMOVSXWD VPMOVSXWD
- PMOVSXWQ VPMOVSXWQ
- PMOVZXBD VPMOVZXBD
- PMOVZXBQ VPMOVZXBQ
- PMOVZXBW VPMOVZXBW
- PMOVZXDQ VPMOVZXDQ
- PMOVZXWD VPMOVZXWD
- PMOVZXWQ VPMOVZXWQ
- PMULDQ VPMULDQ
- PMULHRSW VPMULHRSW
- PMULHUW VPMULHUW
- PMULHW VPMULHW
- PMULLD VPMULLD
- PMULLW VPMULLW
- PMULUDQ VPMULUDQ
- POR VPOR
- PSADBW VPSADBW
- PSHUFB VPSHUFB
- PSHUFD VPSHUFD
- PSHUFHW VPSHUFHW
- PSHUFLW VPSHUFLW
- PSIGNB VPSIGNB
- PSIGND VPSIGND
- PSIGNW VPSIGNW
- PSLLD VPSLLD
- PSLLDQ VPSLLDQ
- PSLLQ VPSLLQ
- PSLLW VPSLLW
- PSRAD VPSRAD
- PSRAW VPSRAW
- PSRLD VPSRLD
- PSRLDQ VPSRLDQ
- PSRLQ VPSRLQ
- PSRLW VPSRLW
- PSUBB VPSUBB
- PSUBD VPSUBD
- PSUBQ VPSUBQ
- PSUBSB VPSUBSB
- PSUBSW VPSUBSW
- PSUBUSB VPSUBUSB
- PSUBUSW VPSUBUSW
- PSUBW VPSUBW
- PTEST VPTEST
- PUNPCKHBW VPUNPCKHBW
- PUNPCKHDQ VPUNPCKHDQ
- PUNPCKHQDQ VPUNPCKHQDQ
- PUNPCKHWD VPUNPCKHWD
- PUNPCKLBW VPUNPCKLBW
- PUNPCKLDQ VPUNPCKLDQ
- PUNPCKLQDQ VPUNPCKLQDQ
- PUNPCKLWD VPUNPCKLWD
- PXOR VPXOR
- RCPPS VRCPPS
- RCPSS VRCPSS
- ROUNDPD VROUNDPD
- ROUNDPS VROUNDPS
- ROUNDSD VROUNDSD
- ROUNDSS VROUNDSS
- RSQRTPS VRSQRTPS
- RSQRTSS VRSQRTSS
- SHA1RNDS4
- SHA1NEXTE
- SHA1MSG1
- SHA1MSG2
- SHA256RNDS2
- SHA256MSG1
- SHA256MSG2
- SHUFPD VSHUFPD
- SHUFPS VSHUFPS
- SQRTPD VSQRTPD
- SQRTPS VSQRTPS
- SQRTSD VSQRTSD
- SQRTSS VSQRTSS
- STMXCSR VSTMXCSR
- SUBPD VSUBPD
- SUBPS VSUBPS
- SUBSD VSUBSD
- SUBSS VSUBSS
- UCOMISD VUCOMISD
- UCOMISS VUCOMISS
- UNPCKHPD VUNPCKHPD
- UNPCKHPS VUNPCKHPS
- UNPCKLPD VUNPCKLPD
- UNPCKLPS VUNPCKLPS
- VBROADCASTF128
- VBROADCASTI128
- VBROADCASTSD
- VBROADCASTSS
- VCVTPH2PS
- VCVTPS2PH
- VEXTRACTF128
- VEXTRACTI128
- VFMADDPD VFMADD132PD VFMADD213PD VFMADD231PD
- VFMADDPS VFMADD132PS VFMADD213PS VFMADD231PS
- VFMADDSD VFMADD132SD VFMADD213SD VFMADD231SD
- VFMADDSS VFMADD132SS VFMADD213SS VFMADD231SS
- VFMADDSUBPD VFMADDSUB132PD VFMADDSUB213PD VFMADDSUB231PD
- VFMADDSUBPS VFMADDSUB132PS VFMADDSUB213PS VFMADDSUB231PS
- VFMSUBADDPD VFMSUBADD132PD VFMSUBADD213PD VFMSUBADD231PD
- VFMSUBADDPS VFMSUBADD132PS VFMSUBADD213PS VFMSUBADD231PS
- VFMSUBPD VFMSUB132PD VFMSUB213PD VFMSUB231PD
- VFMSUBPS VFMSUB132PS VFMSUB213PS VFMSUB231PS
- VFMSUBSD VFMSUB132SD VFMSUB213SD VFMSUB231SD
- VFMSUBSS VFMSUB132SS VFMSUB213SS VFMSUB231SS
- VFNMADDPD VFNMADD132PD VFNMADD213PD VFNMADD231PD
- VFNMADDPS VFNMADD132PS VFNMADD213PS VFNMADD231PS
- VFNMADDSD VFNMADD132SD VFNMADD213SD VFNMADD231SD
- VFNMADDSS VFNMADD132SS VFNMADD213SS VFNMADD231SS
- VFNMSUBPD VFNMSUB132PD VFNMSUB213PD VFNMSUB231PD
- VFNMSUBPS VFNMSUB132PS VFNMSUB213PS VFNMSUB231PS
- VFNMSUBSD VFNMSUB132SD VFNMSUB213SD VFNMSUB231SD
- VFNMSUBSS VFNMSUB132SS VFNMSUB213SS VFNMSUB231SS
- VFRCZPD
- VFRCZPS
- VFRCZSD
- VFRCZSS
- VGATHERDPD
- VGATHERDPS
- VGATHERQPD
- VGATHERQPS
- VINSERTF128
- VINSERTI128
- VMASKMOVPD
- VMASKMOVPS
- VPBLENDD
- VPBROADCASTB
- VPBROADCASTD
- VPBROADCASTQ
- VPBROADCASTW
- VPCMOV
- VPCOMB
- VPCOMD
- VPCOMQ
- VPCOMUB
- VPCOMUD
- VPCOMUQ
- VPCOMUW
- VPCOMW
- VPERM2F128
- VPERM2I128
- VPERMD
- VPERMIL2PD
- VPERMIL2PS
- VPERMILPD
- VPERMILPS
- VPERMPD
- VPERMPS
- VPERMQ
- VPGATHERDD
- VPGATHERDQ
- VPGATHERQD
- VPGATHERQQ
- VPHADDBD
- VPHADDBQ
- VPHADDBW
- VPHADDDQ
- VPHADDUBD
- VPHADDUBQ
- VPHADDUBW
- VPHADDUDQ
- VPHADDUWD
- VPHADDUWQ
- VPHADDWD
- VPHADDWQ
- VPHSUBBW
- VPHSUBDQ
- VPHSUBWD
- VPMACSDD
- VPMACSDQH
- VPMACSDQL
- VPMACSSDD
- VPMACSSDQH
- VPMACSSDQL
- VPMACSSWD
- VPMACSSWW
- VPMACSWD
- VPMACSWW
- VPMADCSSWD
- VPMADCSWD
- VPMASKMOVD
- VPMASKMOVQ
- VPPERM
- VPROTB
- VPROTD
- VPROTQ
- VPROTW
- VPSHAB
- VPSHAD
- VPSHAQ
- VPSHAW
- VPSHLB
- VPSHLD
- VPSHLQ
- VPSHLW
- VPSLLVD
- VPSLLVQ
- VPSRAVD
- VPSRLVD
- VPSRLVQ
- VTESTPD
- VTESTPS
- VZEROALL
- VZEROUPPER
- XGETBV
- XORPD VXORPD
- XORPS VXORPS
- XRSTOR
- XRSTORS
- XSAVE
- XSAVEC
- XSAVEOPT
- XSAVES
- XSETBV
- 3 Exception Summary
- Appendix A AES Instructions
- A.1 AES Overview
- A.2 Coding Conventions
- A.3 AES Data Structures
- A.4 Algebraic Preliminaries
- A.5 AES Operations
- A.6 Initializing the Sbox and InvSBox Matrices
- A.7 Encryption and Decryption
- A.8 The Cipher Function
- A.9 The InvCipher Function
- A.10 An Alternative Decryption Procedure
- A.11 Computation of GFInv with Euclidean Greatest Common Divisor
- Index