Skip to content

Commit 9c59398

Browse files
authored
Add more Intel Sierra Forest instructions (#129)
Add MSRLIST and WRMSRNS Intel Sierra Forest instructions. Signed-off-by: Muyassarov, Feruzjon <feruzjon.muyassarov@intel.com>
1 parent 9e22c36 commit 9c59398

File tree

3 files changed

+109
-101
lines changed

3 files changed

+109
-101
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,9 @@ Exit Code 1
380380
| MOVDIRI | Move Doubleword as Direct Store |
381381
| MOVSB_ZL | Fast Zero-Length MOVSB |
382382
| MPX | Intel MPX (Memory Protection Extensions) |
383-
| MOVU | MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD |
383+
| MOVU | MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD |
384384
| MSRIRC | Instruction Retired Counter MSR available |
385+
| MSRLIST | Read/Write List of Model Specific Registers |
385386
| MSR_PAGEFLUSH | Page Flush MSR available |
386387
| NRIPS | Indicates support for NRIP save on VMEXIT |
387388
| NX | NX (No-Execute) bit |
@@ -448,6 +449,7 @@ Exit Code 1
448449
| VTE | AMD Virtual Transparent Encryption supported |
449450
| WAITPKG | TPAUSE, UMONITOR, UMWAIT |
450451
| WBNOINVD | Write Back and Do Not Invalidate Cache |
452+
| WRMSRNS | Non-Serializing Write to Model Specific Register |
451453
| X87 | FPU |
452454
| XGETBV1 | Supports XGETBV with ECX = 1 |
453455
| XOP | Bulldozer XOP functions |

cpuid.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ const (
173173
MOVU // AMD: MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD
174174
MPX // Intel MPX (Memory Protection Extensions)
175175
MSRIRC // Instruction Retired Counter MSR available
176+
MSRLIST // Read/Write List of Model Specific Registers
176177
MSR_PAGEFLUSH // Page Flush MSR available
177178
NRIPS // Indicates support for NRIP save on VMEXIT
178179
NX // NX (No-Execute) bit
@@ -239,6 +240,7 @@ const (
239240
VTE // AMD Virtual Transparent Encryption supported
240241
WAITPKG // TPAUSE, UMONITOR, UMWAIT
241242
WBNOINVD // Write Back and Do Not Invalidate Cache
243+
WRMSRNS // Non-Serializing Write to Model Specific Register
242244
X87 // FPU
243245
XGETBV1 // Supports XGETBV with ECX = 1
244246
XOP // Bulldozer XOP functions
@@ -1235,7 +1237,9 @@ func support() flagSet {
12351237
fs.setIf(edx&(1<<25) != 0, AMXINT8)
12361238
// eax1 = CPUID.(EAX=7, ECX=1).EAX
12371239
fs.setIf(eax1&(1<<5) != 0, AVX512BF16)
1240+
fs.setIf(eax1&(1<<19) != 0, WRMSRNS)
12381241
fs.setIf(eax1&(1<<21) != 0, AMXFP16)
1242+
fs.setIf(eax1&(1<<27) != 0, MSRLIST)
12391243
}
12401244
}
12411245

featureid_string.go

Lines changed: 102 additions & 100 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)