Add missing interpreter HFA helpers#120985
Merged
janvorli merged 3 commits intodotnet:mainfrom Oct 23, 2025
Merged
Conversation
There are missing helpers for 2, 3 and 4 vector64 and vector128 HFA in the interpreter call stubs. This change implements them.
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds missing interpreter HFA (Homogeneous Floating-point Aggregate) helpers for ARM64 to support returning 2, 3, and 4 element Vector64 and Vector128 structures. Previously, only single-element vector returns were implemented for the interpreter call stubs.
Key Changes:
- Added new return type enum values for multi-element Vector64/Vector128 HFAs
- Implemented corresponding interpreter stub functions and jitted method call helpers
- Extended return type detection logic to map HFA sizes to appropriate return types
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/coreclr/vm/callstubgenerator.h | Adds enum values for 2/3/4 element Vector64 and Vector128 return types |
| src/coreclr/vm/callstubgenerator.cpp | Adds function declarations, switch case handlers, and size-based return type detection for new HFA types |
| src/coreclr/vm/arm64/asmhelpers.asm | Implements ARM64 assembly stubs for new interpreter and jitted method return type handlers (Windows syntax) |
| src/coreclr/vm/arm64/asmhelpers.S | Implements ARM64 assembly stubs for new interpreter and jitted method return type handlers (Unix syntax) |
davidwrighton
approved these changes
Oct 22, 2025
kg
reviewed
Oct 23, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There are missing helpers for 2, 3 and 4 vector64 and vector128 HFA in the interpreter call stubs.
This change implements them.