Skip to content

[GR-23177] Port CRC stubs#13439

Merged
graalvmbot merged 1 commit intomasterfrom
yz/GR-23177
Apr 30, 2026
Merged

[GR-23177] Port CRC stubs#13439
graalvmbot merged 1 commit intomasterfrom
yz/GR-23177

Conversation

@graalvmbot
Copy link
Copy Markdown
Collaborator

This change moves CRC32/CRC32C intrinsic handling out of HotSpot-specific foreign-call plumbing and into standard Graal replacement plugins and generated intrinsic stubs. It adds Graal nodes for CRC32 byte-array/direct-buffer updates, CRC32C updates, and CRC table materialization, then wires those nodes through HotSpot and Native Image stub registration.

The port includes AMD64 and AArch64 LIR implementations for CRC32 and CRC32C update-byte operations. AMD64 also gets shared AVX512 CRC helper code, while SVM feature registration handles the required CPU feature sets for baseline and runtime-checked variants.

Details

  • Adds CRC32UpdateBytesNode, CRC32CUpdateBytesNode, and CRC32TableNode.
  • Registers CRC plugins in StandardGraphBuilderPlugins.
  • Removes old HotSpot CRC32/CRC32C foreign-call plugin wiring.
  • Links CRC generated stubs for HotSpot and SVM.
  • Adds AMD64 and AArch64 LIR paths for CRC32/CRC32C update-byte stubs.
  • Adds SVM stub feature registration and CPU feature lookup support.
  • Updates native method substitution handling to honor conditional plugin applicability.
  • Expands CRC32 and CRC32C tests to verify graph ownership, CPU feature gating, byte-array execution, and direct-buffer execution.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Apr 29, 2026
@graalvmbot graalvmbot merged commit 150fede into master Apr 30, 2026
3 checks passed
@graalvmbot graalvmbot deleted the yz/GR-23177 branch April 30, 2026 05:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants