Skip to content

Commit 2b01ddf

Browse files
author
H. Peter Anvin
committed
x86/insns.dat: non-vector instructions from ISE 319433-046 2022-09
Additional nonvector instructions from the Intel Instruction Set Extensions document 319433-046 September 2022. Signed-off-by: H. Peter Anvin <[email protected]>
1 parent a3fd34a commit 2b01ddf

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

x86/iflags.ph

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ if_("AMXINT8", "AMX 8-bit integer multiplication");
100100
if_("FRED", "Flexible Return and Exception Delivery (FRED)");
101101
if_("RAOINT", "Remote atomic operations (RAO-INT)");
102102
if_("UINTR", "User interrupts");
103+
if_("CMPCCXADD", "CMPccXADD instructions");
104+
if_("PREFETCHI", "PREFETCHI0 and PREFETCHI1");
105+
if_("WRMSRNS", "WRMSRNS");
106+
if_("MSRLIST", "RDMSRLIST and WRMSRLIST");
103107

104108
# Put these last to minimize their relevance
105109
if_("OBSOLETE", "Instruction removed from architecture");

x86/insns.dat

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1636,10 +1636,12 @@ XRSTORS64 mem [m: o64 np 0f c7 /3] LONG,FUTURE
16361636
; These instructions are not SSE-specific; they are
16371637
;# Generic memory operations
16381638
; and work even if CR4.OSFXFR == 0
1639-
PREFETCHNTA mem8 [m: 0f 18 /0] KATMAI
1640-
PREFETCHT0 mem8 [m: 0f 18 /1] KATMAI
1641-
PREFETCHT1 mem8 [m: 0f 18 /2] KATMAI
1642-
PREFETCHT2 mem8 [m: 0f 18 /3] KATMAI
1639+
PREFETCHNTA mem8 [m: 0f 18 /0] KATMAI,SB
1640+
PREFETCHT0 mem8 [m: 0f 18 /1] KATMAI,SB
1641+
PREFETCHT1 mem8 [m: 0f 18 /2] KATMAI,SB
1642+
PREFETCHT2 mem8 [m: 0f 18 /3] KATMAI,SB
1643+
PREFETCHIT0 mem8 [m: 0f 18 /7] FUTURE,PREFETCHI,SB
1644+
PREFETCHIT1 mem8 [m: 0f 18 /6] FUTURE,PREFETCHI,SB
16431645
SFENCE void [ np 0f ae f8] KATMAI
16441646

16451647
;# New MMX instructions introduced in Katmai
@@ -6305,6 +6307,31 @@ VSUBPH zmmreg|mask|z,zmmreg*,zmmrm512|b16|er [rvm:fv: evex.nds.512.np.map5.w0 5
63056307
VSUBSH xmmreg|mask|z,xmmreg*,xmmrm16|er [rvm:t1s: evex.nds.lig.f3.map5.w0 5c /r] AVX512FP16,FUTURE
63066308
VUCOMISH xmmreg,xmmrm16|sae [rm:t1s: evex.lig.np.map5.w0 2e /r] AVX512FP16,FUTURE
63076309

6310+
;# RAO-INT weakly ordered atomic operations
6311+
AADD mem32,reg32 [mr: norexw np 0f 38 fc /r ] RAOINT,FUTURE,SD
6312+
AADD mem64,reg64 [mr: o64 np 0f 38 fc /r ] RAOINT,FUTURE,SQ,LONG
6313+
AAND mem32,reg32 [mr: norexw 66 0f 38 fc /r ] RAOINT,FUTURE,SD
6314+
AAND mem64,reg64 [mr: o64 66 0f 38 fc /r ] RAOINT,FUTURE,SQ,LONG
6315+
AXOR mem32,reg32 [mr: norexw f3 0f 38 fc /r ] RAOINT,FUTURE,SD
6316+
AXOR mem64,reg64 [mr: o64 f3 0f 38 fc /r ] RAOINT,FUTURE,SQ,LONG
6317+
6318+
;# User interrupts
6319+
CLUI void [ f3 0f 01 ee ] UINTR,FUTURE,LONG
6320+
SENDUIPI reg64 [m: o64nw f3 0f c7 /6 ] UINTR,FUTURE,LONG
6321+
STUI void [ f3 0f 01 ef ] UINTR,FUTURE,LONG
6322+
TESTUI void [ f3 0f 01 ed ] UINTR,FUTURE,LONG
6323+
UIRET void [ f3 0f 01 ec ] UINTR,FUTURE,LONG
6324+
6325+
6326+
;# Compare, exchange and add conditional
6327+
CMPccXADD mem32,reg32,reg32 [mrv: vex.128.66.0f38.w0 e0+c /r] CMPCCXADD,FUTURE,LONG,SD
6328+
CMPccXADD mem64,reg64,reg64 [mrv: vex.128.66.0f38.w1 e0+c /r] CMPCCXADD,FUTURE,LONG,SQ
6329+
6330+
;# WRMSRNS and MSRLIST instructions
6331+
WRMSRNS void [ np 0f 01 c6 ] WRMSRNS,FUTURE,PRIV,LONG
6332+
RDMSRLIST void [ f2 0f 01 c6 ] MSRLIST,FUTURE,PRIV,LONG
6333+
WRMSRLIST void [ f3 0f 01 c6 ] MSRLIST,FUTURE,PRIV,LONG
6334+
63086335
;# Systematic names for the hinting nop instructions
63096336
; These should be last in the file
63106337
HINT_NOP0 rm16 [m: o16 0f 18 /0] P6,UNDOC

0 commit comments

Comments
 (0)