Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emulated Type Initializers #138

Merged
merged 8 commits into from
Mar 22, 2024
Merged

Emulated Type Initializers #138

merged 8 commits into from
Mar 22, 2024

Conversation

Washi1337
Copy link
Owner

@Washi1337 Washi1337 commented Mar 20, 2024

Includes the following changes:

  • Adds RuntimeTypeManager which manages type initialization and can redirect control to a static class constructor (.cctor) if it is available.
  • Ensures call and field opcodes are first redirected to type initializers when required.
  • Ensures static fields are initialized with their initial value stored in FieldRva

This does not include special handling of beforefieldinit flagged types yet. This will have to be postponed until CIL method body verification is implemented.

@Washi1337 Washi1337 added emulation Issue related to the emulation modules of Echo. dotnet-asmresolver Issues related to the .NET back-end powered by AsmResolver labels Mar 20, 2024
@Washi1337 Washi1337 merged commit 6acf1ba into master Mar 22, 2024
1 check passed
@Washi1337 Washi1337 deleted the feature/type-initializers branch March 22, 2024 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dotnet-asmresolver Issues related to the .NET back-end powered by AsmResolver emulation Issue related to the emulation modules of Echo.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant