Skip to content

Conversation

@janvorli
Copy link
Member

Some of the HFA tests on arm64 were failing when the HFA size was not a multiple of the interpreter stack slot size and the HFAs were passed on stack. The problem is that the call stub generator joined two stack ranges into one copy not taking into account that the previous argument ended in the middle of the interpreter stack slot.

Some of the HFA tests on arm64 were failing when the HFA size was not
a multiple of the interpreter stack slot size and the HFAs were passed
on stack. The problem is that the call stub generator joined two stack
ranges into one copy not taking into account that the previous argument
ended in the middle of the interpreter stack slot.
@janvorli janvorli added this to the 11.0.0 milestone Jan 30, 2026
@janvorli janvorli self-assigned this Jan 30, 2026
Copilot AI review requested due to automatic review settings January 30, 2026 22:24
@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.

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

Fixes incorrect stack-range merging in the interpreter call stub generator when an argument’s stack size doesn’t align to the interpreter stack slot size (notably impacting arm64 HFA args passed on stack), which was causing test failures.

Changes:

  • Add an interpreter-slot-size alignment guard before merging adjacent stack argument copy ranges.
  • Update the in-code comment to explain why certain stack ranges must not be merged.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants