all: VAES instructions (#358)

Adds "Vector Advanced Encryption Standard" instruction set.

These are added via the `opcodesextra` mechanism #345, since they're missing
from the opcodes database.

Contributed by @vsivsi. Extracted from #349 with minor tweaks.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
This commit is contained in:
Michael McLoughlin
2023-01-07 21:55:36 -08:00
committed by GitHub
parent 92f38ce96d
commit 0569748e19
7 changed files with 1087 additions and 642 deletions

View File

@@ -7467,6 +7467,18 @@ func TestVAESDECValidFormsNoError(t *testing.T) {
if _, err := VAESDEC(opxmm, opxmm, opxmm); err != nil {
t.Fatal(err)
}
if _, err := VAESDEC(opm256, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESDEC(opymm, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESDEC(opm512, opzmm, opzmm); err != nil {
t.Fatal(err)
}
if _, err := VAESDEC(opzmm, opzmm, opzmm); err != nil {
t.Fatal(err)
}
}
func TestVAESDECLASTValidFormsNoError(t *testing.T) {
@@ -7476,6 +7488,18 @@ func TestVAESDECLASTValidFormsNoError(t *testing.T) {
if _, err := VAESDECLAST(opxmm, opxmm, opxmm); err != nil {
t.Fatal(err)
}
if _, err := VAESDECLAST(opm256, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESDECLAST(opymm, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESDECLAST(opm512, opzmm, opzmm); err != nil {
t.Fatal(err)
}
if _, err := VAESDECLAST(opzmm, opzmm, opzmm); err != nil {
t.Fatal(err)
}
}
func TestVAESENCValidFormsNoError(t *testing.T) {
@@ -7485,6 +7509,18 @@ func TestVAESENCValidFormsNoError(t *testing.T) {
if _, err := VAESENC(opxmm, opxmm, opxmm); err != nil {
t.Fatal(err)
}
if _, err := VAESENC(opm256, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESENC(opymm, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESENC(opm512, opzmm, opzmm); err != nil {
t.Fatal(err)
}
if _, err := VAESENC(opzmm, opzmm, opzmm); err != nil {
t.Fatal(err)
}
}
func TestVAESENCLASTValidFormsNoError(t *testing.T) {
@@ -7494,6 +7530,18 @@ func TestVAESENCLASTValidFormsNoError(t *testing.T) {
if _, err := VAESENCLAST(opxmm, opxmm, opxmm); err != nil {
t.Fatal(err)
}
if _, err := VAESENCLAST(opm256, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESENCLAST(opymm, opymm, opymm); err != nil {
t.Fatal(err)
}
if _, err := VAESENCLAST(opm512, opzmm, opzmm); err != nil {
t.Fatal(err)
}
if _, err := VAESENCLAST(opzmm, opzmm, opzmm); err != nil {
t.Fatal(err)
}
}
func TestVAESIMCValidFormsNoError(t *testing.T) {