Skip to content

Conversation

@filipnavara
Copy link
Member

Fixes #100507

The x86 funclet unwinding code depends on GetPushedArgSize returning the correct value when there are any arguments pushed to the stack inside the funclet code. Normally that information is not recorded for methods with EBP frames. The ABI was modified in dotnet/coreclr#10782 for x86/Linux to generate the additional information. However, it was guarded by UNIX_X86_ABI #define. This PR changes the guard to UsesFunclets() (for JIT) / FEATURE_EH_FUNCLETS (for runtime code) so the same logic can be reused.

…/FEATURE_EH_FUNCLETS instead of UNIX_X86_ABI
@dotnet-policy-service
Copy link
Contributor

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Apr 6, 2024
@filipnavara

This comment was marked as outdated.

@jkotas
Copy link
Member

jkotas commented Apr 7, 2024

@dotnet/jit-contrib Could you please review the JIT changes?

@BruceForstall BruceForstall merged commit 8e2655b into dotnet:main Apr 8, 2024
@filipnavara filipnavara deleted the win-x86-funclet-unwind branch April 8, 2024 19:17
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* Guard ABI changes necessary for funclet unwinding with UsesFunclets()/FEATURE_EH_FUNCLETS instead of UNIX_X86_ABI

* Fix the emitFullArgInfo condition.

* Update comments, add test case
@github-actions github-actions bot locked and limited conversation to collaborators May 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-x86 area-NativeAOT-coreclr community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[NativeAOT/win-x86] System.Runtime.Tests crash

3 participants