Skip to content

internal/cpu,golang.org/x/sys/cpu: support windows/arm64 #76791

@qmuntal

Description

@qmuntal

This is a tracking issue to add support for Windows ARM64 to internal/cpu and golang.org/x/sys/cpu. They currently don't set any supported cpu flag on this platform, even when Windows provides an API to prove if a given feature is supported by the current computer: IsProcessorFeaturePresent.

This is a mapping of Go feature flags to IsProcessorFeaturePresent flags (note that some flags are taken from the published Windows headers, as learn.microsoft.com is not really up-to-date).

  • HasAES => PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
  • HasPMULL => PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
  • HasSHA1 => PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
  • HasSHA2 => PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
  • HasSHA3 => PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE
  • HasCRC32 => PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
  • HasSHA512 => PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE
  • HasATOMICS => PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
  • HasASIMDDP => PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
  • HasASIMDRDM => PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
  • HasLRCPC => PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
  • HasSM3=> PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
  • HasSVE => PF_ARM_SVE_INSTRUCTIONS_AVAILABLE
  • HasSVE2 => PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE
  • HasJSCVT => PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE

@golang/windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    LibraryProposalIssues describing a requested change to the Go standard library or x/ libraries, but not to a toolNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.compiler/runtimeIssues related to the Go compiler and/or runtime.

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions