Skip to content

Conversation

@kotlarmilos
Copy link
Member

Description

This PR adds support for handling Vector64 and Vector128 values in interpreter stubs on arm64. It implements loading and returning of these types using SIMD registers d0 and q0 according to the arm64 ABI.

Changes

  • Added InterpreterStubRetVector64 and InterpreterStubRetVector128 to load return values from the interpreter frame into the appropriate reg
  • Added CallJittedMethodRetVector64 and CallJittedMethodRetVector128 to load return values from native code and store them back to the interpreter return location
  • Updated CallStubGenerator::GetReturnType to handle CORINFO_HFA_ELEM_VECTOR64 and CORINFO_HFA_ELEM_VECTOR128 as valid return types

@kotlarmilos kotlarmilos requested review from davidwrighton, janvorli and jkotas and removed request for janvorli July 15, 2025 16:24
@kotlarmilos kotlarmilos self-assigned this Jul 15, 2025
@kotlarmilos kotlarmilos added this to the 10.0.0 milestone Jul 15, 2025
@dotnet-policy-service
Copy link
Contributor

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

@kotlarmilos kotlarmilos requested review from BrzVlad and kg July 15, 2025 16:26
Copy link
Member

@janvorli janvorli left a comment

Choose a reason for hiding this comment

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

LGTM modulo adding the #ifdef FEATURE_SIMD. Thank you!

@kotlarmilos
Copy link
Member Author

/ba-g #117724

@kotlarmilos kotlarmilos merged commit f1a3a0f into dotnet:main Jul 16, 2025
92 of 98 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Aug 16, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants