Data Operand Independent Timing Instructions

ID 768547
Updated 2/28/2023
Version Latest
Public

author-image

By

The table below lists instructions that have data-independent timing. These instructions can be used in conjunction with Data Operand Independent Timing Instruction Set Architecture Guidelines to help mitigate timing side channels. Note that these data operand independent timing instructions may have variable latency for reasons unrelated to the data values (for example, loading data from memory or the encoding of the instruction). Furthermore, an instruction being included on this list does not mean that its usage is resistant to power, thermal, or frequency-based side channels. Guidance to avoid these specific types of side channels will be provided separately in the future.

 

 

Table 1: Documented Data Operand Independent Timing Instructions 
Mnemonic  Opcode
ADC  0x10
ADC  0x11
ADC  0x12
ADC  0x13
ADC  0x14
ADC  0x15
ADC  0x80
ADC  0x81
ADC  0x82
ADC  0x83
ADCX  0xf6
ADD  0x0
ADD  0x1
ADD  0x2
ADD  0x3
ADD  0x4
ADD  0x5
ADD  0x80
ADD  0x81
ADD  0x82
ADD  0x83
ADOX  0xf6
AESDEC  0xde
AESDECLAST  0xdf
AESENC  0xdc
AESENCLAST  0xdd
AESIMC  0xdb
AESKEYGENASSIST  0xdf
AND  0x20
AND  0x21
AND  0x22
AND  0x23
AND  0x24
AND  0x25
AND  0x80
AND  0x81
AND  0x82
AND  0x83
ANDN  0xf2
BT  0xa3
BT  0xba
BTC  0xba
BTC  0xbb
BTR  0xb3
BTR  0xba
BTS  0xab
BTS  0xba
CMOVB  0x42
CMOVBE  0x46
CMOVL  0x4c
CMOVLE  0x4e
CMOVNB  0x43
CMOVNBE  0x47
CMOVNL  0x4d
CMOVNLE  0x4f
CMOVNO  0x41
CMOVNP  0x4b
CMOVNS  0x49
CMOVNZ  0x45
CMOVO  0x40
CMOVP  0x4a
CMOVS  0x48
CMOVZ  0x44
CMP  0x38
CMP  0x39
CMP  0x3a
CMP  0x3b
CMP  0x3c
CMP  0x3d
CMP  0x80
CMP  0x81
CMP  0x82
CMP  0x83
DEC  0x48
DEC  0x49
DEC  0x4a
DEC  0x4b
DEC  0x4c
DEC  0x4d
DEC  0x4e
DEC  0x4f
DEC  0xfe
DEC  0xff
GF2P8AFFINEINVQB  0xcf
GF2P8AFFINEQB  0xce
GF2P8MULB  0xcf
IMUL  0x69
IMUL  0x6b
IMUL  0xaf
IMUL  0xf6
IMUL  0xf7
INC  0x40
INC  0x41
INC  0x42
INC  0x43
INC  0x44
INC  0x45
INC  0x46
INC  0x47
INC  0xfe
INC  0xff
KADDB  0x4a
KADDD  0x4a
KADDQ  0x4a
KADDW  0x4a
KANDB  0x41
KANDD  0x41
KANDNB  0x42
KANDND  0x42
KANDNQ  0x42
KANDNW  0x42
KANDQ  0x41
KANDW  0x41
KMOVB  0x90
KMOVB  0x91
KMOVB  0x92
KMOVB  0x93
KMOVD  0x90
KMOVD  0x91
KMOVD  0x92
KMOVD  0x93
KMOVQ  0x90
KMOVQ  0x91
KMOVQ  0x92
KMOVQ  0x93
KMOVW  0x90
KMOVW  0x91
KMOVW  0x92
KMOVW  0x93
KNOTB  0x44
KNOTD  0x44
KNOTQ  0x44
KNOTW  0x44
KORB  0x45
KORD  0x45
KORQ  0x45
KORTESTB  0x98
KORTESTD  0x98
KORTESTQ  0x98
KORTESTW  0x98
KORW  0x45
KSHIFTLB  0x32
KSHIFTLD  0x33
KSHIFTLQ  0x33
KSHIFTLW  0x32
KSHIFTRB  0x30
KSHIFTRD  0x31
KSHIFTRQ  0x31
KSHIFTRW  0x30
KTESTB  0x99
KTESTD  0x99
KTESTQ  0x99
KTESTW  0x99
KUNPCKBW  0x4b
KUNPCKDQ  0x4b
KUNPCKWD  0x4b
KXNORB  0x46
KXNORD  0x46
KXNORQ  0x46
KXNORW  0x46
KXORB  0x47
KXORD  0x47
KXORQ  0x47
KXORW  0x47
LDDQU  0xf0
LEA  0x8d
MOV  0x88
MOV  0x89
MOV  0x8a
MOV  0x8b
MOV  0xa0
MOV  0xa1
MOV  0xa2
MOV  0xa3
MOV  0xb0
MOV  0xb1
MOV  0xb2
MOV  0xb3
MOV  0xb4
MOV  0xb5
MOV  0xb6
MOV  0xb7
MOV  0xb8
MOV  0xb9
MOV  0xba
MOV  0xbb
MOV  0xbc
MOV  0xbd
MOV  0xbe
MOV  0xbf
MOV  0xc6
MOV  0xc7
MOVD  0x6e
MOVD  0x7e
MOVDDUP  0x12
MOVDQ2Q  0xd6
MOVDQA  0x6f
MOVDQA  0x7f
MOVDQU  0x6f
MOVDQU  0x7f
MOVNTDQ  0xe7
MOVNTDQA  0x2a
MOVQ  0x6e
MOVQ  0x7e
MOVQ  0xd6
MOVSB  0xa4
MOVSD  0xa5
MOVSHDUP  0x16
MOVSLDUP  0x12
MOVSQ  0xa5
MOVSW  0xa5
MOVSX  0xbe
MOVSX  0xbf
MOVSXD  0x63
MOVZX  0xb6
MOVZX  0xb7
MPSADBW  0x42
MUL  0xf6
MUL  0xf7
MULX  0xf6
NEG  0xf6
NEG  0xf7
NOT  0xf6
NOT  0xf7
OR  0x8
OR  0x80
OR  0x81
OR  0x82
OR  0x83
OR  0x9
OR  0xa
OR  0xb
OR  0xc
OR  0xd
PABSB  0x1c
PABSD  0x1e
PABSW  0x1d
PACKSSDW  0x6b
PACKSSWB  0x63
PACKUSDW  0x2b
PACKUSWB  0x67
PADDB  0xfc
PADDD  0xfe
PADDQ  0xd4
PADDSB  0xec
PADDSW  0xed
PADDUSB  0xdc
PADDUSW  0xdd
PADDW  0xfd
PALIGNR  0xf
PAND  0xdb
PANDN  0xdf
PAVGB  0xe0
PAVGW  0xe3
PBLENDVB  0x10
PBLENDW  0xe
PCLMULQDQ  0x44
PCMPEQB  0x74
PCMPEQD  0x76
PCMPEQQ  0x29
PCMPEQW  0x75
PCMPGTB  0x64
PCMPGTD  0x66
PCMPGTQ  0x37
PCMPGTW  0x65
PEXTRB  0x14
PEXTRD  0x16
PEXTRQ  0x16
PEXTRW  0x15
PEXTRW  0xc5
PHADDD  0x2
PHADDSW  0x3
PHADDW  0x1
PHMINPOSUW  0x41
PHSUBD  0x6
PHSUBSW  0x7
PHSUBW  0x5
PINSRB  0x20
PINSRD  0x22
PINSRQ  0x22
PINSRW  0xc4
PMADDUBSW  0x4
PMADDWD  0xf5
PMAXSB  0x3c
PMAXSW  0xee
PMAXUB  0xde
PMAXUD  0x3f
PMAXUW  0x3e
PMINSB  0x38
PMINSW  0xea
PMINUB  0xda
PMINUD  0x3b
PMINUW  0x3a
PMOVMSKB  0xd7
PMOVSXBD  0x21
PMOVSXBQ  0x22
PMOVSXBW  0x20
PMOVSXDQ  0x25
PMOVSXWD  0x23
PMOVSXWQ  0x24
PMOVZXBD  0x31
PMOVZXBQ  0x32
PMOVZXBW  0x30
PMOVZXDQ  0x35
PMOVZXWD  0x33
PMOVZXWQ  0x34
PMULDQ  0x28
PMULHRSW  0xb
PMULHUW  0xe4
PMULHW  0xe5
PMULLD  0x40
PMULLW  0xd5
PMULUDQ  0xf4
POP  0x58
POP  0x59
POP  0x5a
POP  0x5b
POP  0x5c
POP  0x5d
POP  0x5e
POP  0x5f
POP  0x8f
POR  0xeb
PSADBW  0xf6
PSHUFB  0x0
PSHUFD  0x70
PSHUFHW  0x70
PSHUFLW  0x70
PSIGNB  0x8
PSIGND  0xa
PSIGNW  0x9
PSLLD  0x72
PSLLD  0xf2
PSLLDQ  0x73
PSLLQ  0x73
PSLLQ  0xf3
PSLLW  0x71
PSLLW  0xf1
PSRAD  0x72
PSRAD  0xe2
PSRAW  0x71
PSRAW  0xe1
PSRLD  0x72
PSRLD  0xd2
PSRLDQ  0x73
PSRLQ  0x73
PSRLQ  0xd3
PSRLW  0x71
PSRLW  0xd1
PSUBB  0xf8
PSUBD  0xfa
PSUBQ  0xfb
PSUBSB  0xe8
PSUBSW  0xe9
PSUBUSB  0xd8
PSUBUSW  0xd9
PSUBW  0xf9
PTEST  0x17
PUNPCKHBW  0x68
PUNPCKHDQ  0x6a
PUNPCKHQDQ  0x6d
PUNPCKHWD  0x69
PUNPCKLBW  0x60
PUNPCKLDQ  0x62
PUNPCKLQDQ  0x6c
PUNPCKLWD  0x61
PUSH  0x50
PUSH  0x51
PUSH  0x52
PUSH  0x53
PUSH  0x54
PUSH  0x55
PUSH  0x56
PUSH  0x57
PUSH  0x68
PUSH  0x6a
PUSH  0xff
PXOR  0xef
REP_MOVSB1  0xa4
REP_MOVSD1  0xa5
REP_MOVSW1  0xa5
REP_STOSB1  0xaa
REP_STOSD1  0xab
REP_STOSW1  0xab
SAR  0xc0
SAR  0xc1
SAR  0xd0
SAR  0xd1
SAR  0xd2
SAR  0xd3
SBB  0x18
SBB  0x19
SBB  0x1a
SBB  0x1b
SBB  0x1c
SBB  0x1d
SBB  0x80
SBB  0x81
SBB  0x82
SBB  0x83
SETB  0x92
SETBE  0x96
SETL  0x9c
SETLE  0x9e
SETNB  0x93
SETNBE  0x97
SETNL  0x9d
SETNLE  0x9f
SETNO  0x91
SETNP  0x9b
SETNS  0x99
SETNZ  0x95
SETO  0x90
SETP  0x9a
SETS  0x98
SETZ  0x94
SHA1MSG1  0xc9
SHA1MSG2  0xca
SHA1NEXTE  0xc8
SHA1RNDS4  0xcc
SHA256MSG1  0xcc
SHA256MSG2  0xcd
SHA256RNDS2  0xcb
SHL  0xc0
SHL  0xc1
SHL  0xd0
SHL  0xd1
SHL  0xd2
SHL  0xd3
SHLX  0xf7
SHR  0xc0
SHR  0xc1
SHR  0xd0
SHR  0xd1
SHR  0xd2
SHR  0xd3
SHRX  0xf7
SUB  0x28
SUB  0x29
SUB  0x2a
SUB  0x2b
SUB  0x2c
SUB  0x2d
SUB  0x80
SUB  0x81
SUB  0x82
SUB  0x83
TEST  0x84
TEST  0x85
TEST  0xa8
TEST  0xa9
TEST  0xf6
TEST  0xf7
VAESDEC  0xde
VAESDECLAST  0xdf
VAESENC  0xdc
VAESENCLAST  0xdd
VAESIMC  0xdb
VAESKEYGENASSIST  0xdf
VALIGND  0x3
VALIGNQ  0x3
VBLENDMPD  0x65
VBLENDMPS  0x65
VBROADCASTF128  0x1a
VBROADCASTF32X2  0x19
VBROADCASTF32X4  0x1a
VBROADCASTF32X8  0x1b
VBROADCASTF64X2  0x1a
VBROADCASTF64X4  0x1b
VBROADCASTI128  0x5a
VBROADCASTI32X2  0x59
VBROADCASTI32X4  0x5a
VBROADCASTI32X8  0x5b
VBROADCASTI64X2  0x5a
VBROADCASTI64X4  0x5b
VBROADCASTSD  0x19
VBROADCASTSS  0x18
VCOMPRESSPD  0x8a
VCOMPRESSPS  0x8a
VDBPSADBW  0x42
VEXPANDPD  0x88
VEXPANDPS  0x88
VEXTRACTF128  0x19
VEXTRACTF32X4  0x19
VEXTRACTF32X8  0x1b
VEXTRACTF64X2  0x19
VEXTRACTF64X4  0x1b
VEXTRACTI128  0x39
VEXTRACTI32X4  0x39
VEXTRACTI32X8  0x3b
VEXTRACTI64X2  0x39
VEXTRACTI64X4  0x3b
VGF2P8AFFINEINVQB  0xcf
VGF2P8AFFINEQB  0xce
VGF2P8MULB  0xcf
VINSERTF128  0x18
VINSERTF32X4  0x18
VINSERTF32X8  0x1a
VINSERTF64X2  0x18
VINSERTF64X4  0x1a
VINSERTI128  0x38
VINSERTI32X4  0x38
VINSERTI32X8  0x3a
VINSERTI64X2  0x38
VINSERTI64X4  0x3a
VLDDQU  0xf0
VMOVD  0x6e
VMOVD  0x7e
VMOVDDUP  0x12
VMOVDQA  0x6f
VMOVDQA  0x7f
VMOVDQA32  0x6f
VMOVDQA32  0x7f
VMOVDQA64  0x6f
VMOVDQA64  0x7f
VMOVDQU  0x6f
VMOVDQU  0x7f
VMOVDQU16  0x6f
VMOVDQU16  0x7f
VMOVDQU32  0x6f
VMOVDQU32  0x7f
VMOVDQU64  0x6f
VMOVDQU64  0x7f
VMOVDQU8  0x6f
VMOVDQU8  0x7f
VMOVNTDQ  0xe7
VMOVNTDQA  0x2a
VMOVQ  0x6e
VMOVQ  0x7e
VMOVQ  0xd6
VMOVSD  0x10
VMOVSD  0x11
VMOVSHDUP  0x16
VMOVSLDUP  0x12
VMPSADBW  0x42
VPABSB  0x1c
VPABSD  0x1e
VPABSQ  0x1f
VPABSW  0x1d
VPACKSSDW  0x6b
VPACKSSWB  0x63
VPACKUSDW  0x2b
VPACKUSWB  0x67
VPADDB  0xfc
VPADDD  0xfe
VPADDQ  0xd4
VPADDSB  0xec
VPADDSW  0xed
VPADDUSB  0xdc
VPADDUSW  0xdd
VPADDW  0xfd
VPALIGNR  0xf
VPAND  0xdb
VPANDD  0xdb
VPANDN  0xdf
VPANDND  0xdf
VPANDNQ  0xdf
VPANDQ  0xdb
VPAVGB  0xe0
VPAVGW  0xe3
VPBLENDD  0x2
VPBLENDMB  0x66
VPBLENDMD  0x64
VPBLENDMQ  0x64
VPBLENDMW  0x66
VPBLENDVB  0x4c
VPBLENDW  0xe
VPBROADCASTB  0x78
VPBROADCASTB  0x7a
VPBROADCASTD  0x58
VPBROADCASTD  0x7c
VPBROADCASTMB2Q  0x2a
VPBROADCASTMW2D  0x3a
VPBROADCASTQ  0x59
VPBROADCASTQ  0x7c
VPBROADCASTW  0x79
VPBROADCASTW  0x7b
VPCLMULQDQ  0x44
VPCMPB  0x3f
VPCMPEQB  0x74
VPCMPEQD  0x76
VPCMPEQQ  0x29
VPCMPEQW  0x75
VPCMPGTB  0x64
VPCMPGTD  0x66
VPCMPGTQ  0x37
VPCMPGTW  0x65
VPCMPQ  0x1f
VPCMPUB  0x3e
VPCMPUD  0x1e
VPCMPUQ  0x1e
VPCMPUW  0x3e
VPCMPW  0x3f
VPERM2F128  0x6
VPERM2I128  0x46
VPERMD  0x36
VPERMI2D  0x76
VPERMI2PD  0x77
VPERMI2PS  0x77
VPERMI2Q  0x76
VPERMI2W  0x75
VPERMILPD  0x5
VPERMILPD  0xd
VPERMILPS  0x4
VPERMILPS  0xc
VPERMPD  0x1
VPERMPD  0x16
VPERMPS  0x16
VPERMQ  0x0
VPERMQ  0x36
VPERMT2D  0x7e
VPERMT2PD  0x7f
VPERMT2PS  0x7f
VPERMT2Q  0x7e
VPERMT2W  0x7d
VPERMW  0x8d
VPEXTRB  0x14
VPEXTRD  0x16
VPEXTRQ  0x16
VPEXTRW  0x15
VPEXTRW  0xc5
VPHADDD  0x2
VPHADDSW  0x3
VPHADDW  0x1
VPHMINPOSUW  0x41
VPHSUBD  0x6
VPHSUBSW  0x7
VPHSUBW  0x5
VPINSRB  0x20
VPINSRD  0x22
VPINSRQ  0x22
VPINSRW  0xc4
VPLZCNTD  0x44
VPLZCNTQ  0x44
VPMADD52HUQ  0xb5
VPMADD52LUQ  0xb4
VPMADDUBSW  0x4
VPMADDWD  0xf5
VPMAXSB  0x3c
VPMAXSQ  0x3d
VPMAXSW  0xee
VPMAXUB  0xde
VPMAXUD  0x3f
VPMAXUQ  0x3f
VPMAXUW  0x3e
VPMINSB  0x38
VPMINSQ  0x39
VPMINSW  0xea
VPMINUB  0xda
VPMINUD  0x3b
VPMINUQ  0x3b
VPMINUW  0x3a
VPMOVB2M  0x29
VPMOVD2M  0x39
VPMOVDB  0x31
VPMOVDW  0x33
VPMOVM2B  0x28
VPMOVM2D  0x38
VPMOVM2Q  0x38
VPMOVM2W  0x28
VPMOVMSKB  0xd7
VPMOVQ2M  0x39
VPMOVQB  0x32
VPMOVQD  0x35
VPMOVQW  0x34
VPMOVSDB  0x21
VPMOVSDW  0x23
VPMOVSQB  0x22
VPMOVSQD  0x25
VPMOVSQW  0x24
VPMOVSWB  0x20
VPMOVSXBD  0x21
VPMOVSXBQ  0x22
VPMOVSXBW  0x20
VPMOVSXDQ  0x25
VPMOVSXWD  0x23
VPMOVSXWQ  0x24
VPMOVUSDB  0x11
VPMOVUSDW  0x13
VPMOVUSQB  0x12
VPMOVUSQD  0x15
VPMOVUSQW  0x14
VPMOVUSWB  0x10
VPMOVW2M  0x29
VPMOVWB  0x30
VPMOVZXBD  0x31
VPMOVZXBQ  0x32
VPMOVZXBW  0x30
VPMOVZXDQ  0x35
VPMOVZXWD  0x33
VPMOVZXWQ  0x34
VPMULDQ  0x28
VPMULHRSW  0xb
VPMULHUW  0xe4
VPMULHW  0xe5
VPMULLD  0x40
VPMULLQ  0x40
VPMULLW  0xd5
VPMULUDQ  0xf4
VPOR  0xeb
VPORD  0xeb
VPORQ  0xeb
VPROLD  0x72
VPROLQ  0x72
VPROLVD  0x15
VPROLVQ  0x15
VPRORD  0x72
VPRORQ  0x72
VPRORVD  0x14
VPRORVQ  0x14
VPSADBW  0xf6
VPSHLDD  0x71
VPSHLDQ  0x71
VPSHLDVD  0x71
VPSHLDVQ  0x71
VPSHLDVW  0x70
VPSHLDW  0x70
VPSHRDD  0x73
VPSHRDQ  0x73
VPSHRDVD  0x73
VPSHRDVQ  0x73
VPSHRDVW  0x72
VPSHRDW  0x72
VPSHUFB  0x0
VPSHUFD  0x70
VPSHUFHW  0x70
VPSHUFLW  0x70
VPSIGNB  0x8
VPSIGND  0xa
VPSIGNW  0x9
VPSLLD  0x72
VPSLLD  0xf2
VPSLLDQ  0x73
VPSLLQ  0x73
VPSLLQ  0xf3
VPSLLVD  0x47
VPSLLVQ  0x47
VPSLLVW  0x12
VPSLLW  0x71
VPSLLW  0xf1
VPSRAD  0x72
VPSRAD  0xe2
VPSRAQ  0x72
VPSRAQ  0xe2
VPSRAVD  0x46
VPSRAVQ  0x46
VPSRAVW  0x11
VPSRAW  0x71
VPSRAW  0xe1
VPSRLD  0x72
VPSRLD  0xd2
VPSRLDQ  0x73
VPSRLQ  0x73
VPSRLQ  0xd3
VPSRLVD  0x45
VPSRLVQ  0x45
VPSRLVW  0x10
VPSRLW  0x71
VPSRLW  0xd1
VPSUBB  0xf8
VPSUBD  0xfa
VPSUBQ  0xfb
VPSUBSB  0xe8
VPSUBSW  0xe9
VPSUBUSB  0xd8
VPSUBUSW  0xd9
VPSUBW  0xf9
VPTERNLOGD  0x25
VPTERNLOGQ  0x25
VPTEST  0x17
VPTESTMB  0x26
VPTESTMD  0x27
VPTESTMQ  0x27
VPTESTMW  0x26
VPTESTNMB  0x26
VPTESTNMD  0x27
VPTESTNMQ  0x27
VPTESTNMW  0x26
VPUNPCKHBW  0x68
VPUNPCKHDQ  0x6a
VPUNPCKHQDQ  0x6d
VPUNPCKHWD  0x69
VPUNPCKLBW  0x60
VPUNPCKLDQ  0x62
VPUNPCKLQDQ  0x6c
VPUNPCKLWD  0x61
VPXOR  0xef
VPXORD  0xef
VPXORQ  0xef
VSHUFF32X4  0x23
VSHUFF64X2  0x23
VSHUFI32X4  0x43
VSHUFI64X2  0x43
VZEROALL  0x77
VZEROUPPER  0x77
XOR  0x30
XOR  0x31
XOR  0x32
XOR  0x33
XOR  0x34
XOR  0x35
XOR  0x80
XOR  0x81
XOR  0x82
XOR  0x83

 

Footnotes

  1. These REP_ instructions' latency varies based on the loop count (*CX).