Skip to content

Synchronize GCInfoDecoder and GCInfoDumper with dotnet/runtime#5672

Merged
jkotas merged 1 commit intodotnet:mainfrom
jkotas:gcinfo-fixes
Dec 22, 2025
Merged

Synchronize GCInfoDecoder and GCInfoDumper with dotnet/runtime#5672
jkotas merged 1 commit intodotnet:mainfrom
jkotas:gcinfo-fixes

Conversation

@jkotas
Copy link
Member

@jkotas jkotas commented Dec 21, 2025

The makes !gcinfo work correctly against current main

@jkotas jkotas requested a review from a team as a code owner December 21, 2025 05:06
Copilot AI review requested due to automatic review settings December 21, 2025 05:06
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

This PR synchronizes the GCInfoDecoder and GCInfoDumper implementations with the dotnet/runtime repository, incorporating format version improvements and cross-platform enhancements.

Key Changes:

  • Updated safe point offset handling to only apply -1 adjustment for version < 4 formats
  • Added support for RISC-V compressed instructions (2-byte) in addition to standard 4-byte instructions
  • Added WebAssembly (TARGET_WASM) target support with interpreter-based GC info encoding

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/shared/vm/gcinfodecoder.cpp Refactored interruptibility logic, deduplicated IsScratchStackSlot implementations across platforms, updated PSP_SYM to only decode for version < 4, added FEATURE_INTERPRETER support, and fixed template instantiations for WASM
src/shared/inc/gcinfotypes.h Removed unused IsValidReturnRegister function, updated RISCV64 instruction normalization from 4-byte to 2-byte granularity, added TARGET_WASM configuration, and reorganized conditional compilation blocks
src/shared/inc/gcinfodecoder.h Added comments marking PSP_SYM flags as unused in v4+, changed __forceinline to FORCEINLINE for portability, added HasStackBaseRegister method, and added InterpreterGcInfoDecoder typedef
src/shared/inc/gcdecoder.cpp Fixed revPInvokeOffset to use proper XOR operation instead of incorrect ternary operator
src/shared/gcinfo/gcinfodumper.cpp Updated safe point offset handling to conditionally increment based on version < 4 check

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jkotas jkotas merged commit 991476e into dotnet:main Dec 22, 2025
19 checks passed
@jkotas jkotas deleted the gcinfo-fixes branch December 22, 2025 14:00
@github-actions github-actions bot locked and limited conversation to collaborators Jan 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants