diff --git a/README.md b/README.md index c462227..f6726de 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ int main() |CPU|ISA| |:---:|---| -|x86|`mmx` `sse` `sse2` `sse3` `ssse3` `sse41` `sse42` `sse4a` `xop` `avx` `f16c` `fma` `fma4` `avx2` `avx512f` `avx512bw` `avx512cd` `avx512dq` `avx512vl` `avx512vnni` `avx512bf16` `avx512ifma` `avx512vbmi` `avx512vbmi2` `avx512fp16` `avx512er` `avx5124fmaps` `avx5124vnniw` `avxvnni` `avxvnniint8` `avxvnniint16` `avxifma` `amxfp16` `amxbf16` `amxint8` `amxtile` `bmi1` `bmi2` `gfni` `aesni` `vaes` `sha` `sm3` `sm4` `rdrand` `rdseed` `tsx`| +|x86|`mmx` `sse` `sse2` `sse3` `ssse3` `sse41` `sse42` `sse4a` `xop` `avx` `f16c` `fma` `fma4` `avx2` `avx512f` `avx512bw` `avx512cd` `avx512dq` `avx512vl` `avx512vnni` `avx512bf16` `avx512ifma` `avx512vbmi` `avx512vbmi2` `avx512fp16` `avx512er` `avx5124fmaps` `avx5124vnniw` `avxvnni` `avxvnniint8` `avxvnniint16` `avxifma` `amxfp16` `amxbf16` `amxint8` `amxtile` `bmi1` `bmi2` `gfni` `aesni` `vaes` `sha1` `sha256` `sha512` `sm3` `sm4` `rdrand` `rdseed` `tsx`| |arm|`half` `edsp` `neon` `vfpv4` `idiv`| |aarch64|`neon` `vfpv4` `lse` `cpuid` `asimdrdm` `asimdhp` `asimddp` `asimdfhm` `bf16` `i8mm` `frint` `jscvt` `fcma` `mte` `mte2` `sve` `sve2` `svebf16` `svei8mm` `svef32mm` `svef64mm` `sme` `smef16f16` `smef64f64` `smei64i64` `pmull` `crc32` `aes` `sha1` `sha2` `sha3` `sha512` `sm3` `sm4` `svepmull` `svebitperm` `sveaes` `svesha3` `svesm4` `amx`| |mips|`msa` `mmi` `sx` `asx` `msa2` `crypto`| diff --git a/main.c b/main.c index 226cc33..0e9383e 100644 --- a/main.c +++ b/main.c @@ -57,7 +57,9 @@ int main() PRINT_ISA_SUPPORT(gfni) PRINT_ISA_SUPPORT(aesni) PRINT_ISA_SUPPORT(vaes) - PRINT_ISA_SUPPORT(sha) + PRINT_ISA_SUPPORT(sha1) + PRINT_ISA_SUPPORT(sha256) + PRINT_ISA_SUPPORT(sha512) PRINT_ISA_SUPPORT(sm3) PRINT_ISA_SUPPORT(sm4) PRINT_ISA_SUPPORT(rdrand) diff --git a/ruapu.h b/ruapu.h index 0949520..214b5e4 100644 --- a/ruapu.h +++ b/ruapu.h @@ -230,7 +230,9 @@ RUAPU_INSTCODE(bmi2, 0xc4, 0xe2, 0x7b, 0xf6, 0xc0) // mulx eax,eax,eax RUAPU_INSTCODE(gfni, 0x66, 0x0f, 0x38, 0xcf, 0xc0) // gf2p8mulb xmm0,xmm0 RUAPU_INSTCODE(aesni, 0x66, 0x0f, 0x38, 0xdc, 0xc0) // aesenc xmm0,xmm0 RUAPU_INSTCODE(vaes, 0xc4, 0xe2, 0x7d, 0xdc, 0xc0) // vaesenc ymm0,ymm0,ymm0 -RUAPU_INSTCODE(sha, 0x0f, 0x38, 0xc9, 0xc0) // sha1msg1 xmm0,xmm0 +RUAPU_INSTCODE(sha1, 0x0f, 0x38, 0xc9, 0xc0) // sha1msg1 xmm0,xmm0 +RUAPU_INSTCODE(sha256, 0x0f, 0x38, 0xcc, 0xc0) // sha256msg1 xmm0, xmm0 +RUAPU_INSTCODE(sha512, 0xc4, 0xe2, 0x7f, 0xcd, 0xc0) // vsha512msg2 ymm0, ymm0 RUAPU_INSTCODE(sm3, 0xc4, 0xe2, 0x78, 0xda, 0xc0) // vsm3msg1 xmm0,xmm0,xmm0 RUAPU_INSTCODE(sm4, 0xc4, 0xe2, 0x7e, 0xda, 0xc0) // vsm4key4 ymm0,ymm0,ymm0 RUAPU_INSTCODE(rdrand, 0x0f, 0xc7, 0xf0) // rdrand eax @@ -452,7 +454,9 @@ RUAPU_ISAENTRY(bmi2) RUAPU_ISAENTRY(gfni) RUAPU_ISAENTRY(aesni) RUAPU_ISAENTRY(vaes) -RUAPU_ISAENTRY(sha) +RUAPU_ISAENTRY(sha1) +RUAPU_ISAENTRY(sha256) +RUAPU_ISAENTRY(sha512) RUAPU_ISAENTRY(sm3) RUAPU_ISAENTRY(sm4) RUAPU_ISAENTRY(rdrand)