Skip to content

Add instruction set detection for SVE_AES, SVE_SHA3, SVE_SM4, SHA3, SM4#124637

Open
a74nh wants to merge 9 commits intodotnet:mainfrom
a74nh:svesets_github
Open

Add instruction set detection for SVE_AES, SVE_SHA3, SVE_SM4, SHA3, SM4#124637
a74nh wants to merge 9 commits intodotnet:mainfrom
a74nh:svesets_github

Conversation

@a74nh
Copy link
Contributor

@a74nh a74nh commented Feb 20, 2026

Mostly a copy/paste of #115117

Copilot AI review requested due to automatic review settings February 20, 2026 12:50
@github-actions github-actions bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 20, 2026
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Feb 20, 2026
@a74nh a74nh marked this pull request as draft February 20, 2026 12:51
@dotnet-policy-service
Copy link
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds end-to-end ARM64 instruction set detection and plumbing for SHA3/SM4 and SVE crypto extensions so the runtime/JIT/R2R toolchain can recognize and gate these features consistently across platforms.

Changes:

  • Extend minipal_getcpufeatures to detect SHA3/SM4 and SVE AES/SHA3/SM4 (Linux hwcaps, Apple sysctlbyname, Windows IsProcessorFeaturePresent).
  • Add new ARM64 instruction sets (including R2R IDs/implications) and propagate them through CoreCLR instruction-set enums and helpers.
  • Gate JIT enablement via new CLRConfig/JitConfig switches and wire feature bits into EE JIT compile flags.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/native/minipal/cpufeatures.h Adds new ARM64 feature-bit constants for SHA3/SM4 and SVE crypto extensions.
src/native/minipal/cpufeatures.c Detects new ARM64 capabilities via HWCAP/HWCAP2, sysctl, and Windows PF_* flags.
src/coreclr/vm/codeman.cpp Sets CPU compile flags for new instruction sets, gated by CLRConfig switches.
src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt Registers new ARM64 instruction sets, R2R bits, and ISA implications.
src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs Updates managed instruction-set enums and implication handling for new ARM64 ISAs.
src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs Maps new ARM64 instruction sets to R2R instruction set IDs.
src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs Adds new R2R instruction set enum values for ARM64 SHA3/SM4 and SVE crypto.
src/coreclr/jit/jitconfigvalues.h Introduces JIT config toggles for enabling/disabling the new ARM64 ISAs.
src/coreclr/jit/hwintrinsicarm64.cpp Adds name-to-instruction-set and Arm64-variant mapping for new ISAs.
src/coreclr/jit/hwintrinsic.cpp Extends ISA range table to include the new ARM64 instruction sets.
src/coreclr/jit/compiler.cpp Enables new ARM64 instruction sets in “enable available ISAs” flow based on JitConfig.
src/coreclr/inc/readytoruninstructionset.h Adds new R2R instruction set IDs on the native side.
src/coreclr/inc/jiteeversionguid.h Bumps JIT/EE version GUID due to instruction-set enum changes.
src/coreclr/inc/corinfoinstructionset.h Extends CORINFO instruction-set enums/validation/mappings for new ARM64 ISAs.
src/coreclr/inc/clrconfigvalues.h Adds CLRConfig switches to gate the new ARM64 ISAs.

Copilot AI review requested due to automatic review settings February 20, 2026 14:30
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.

Copilot AI review requested due to automatic review settings February 20, 2026 14:38
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated 1 comment.

@a74nh a74nh marked this pull request as ready for review February 20, 2026 16:48
@a74nh
Copy link
Contributor Author

a74nh commented Feb 20, 2026

@dotnet/arm64-contrib
This is ready now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants