Skip to content

Commit 149c77b

Browse files
Max CharlambCopilot
andcommitted
Address review feedback: fix docs, remove dead code, use helper
- Fix BaseRegister XML doc: describe as stack base kind (0/1/2), not a CPU register number - Use RegMaskToRegisterNumber helper in x86 GetHeader instead of hard-coded register numbers - Remove unused GetStackBaseRegister/GetSizeOfStackParameterArea public methods from GcInfoDecoder (callers use GetHeader) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent badd398 commit 149c77b

3 files changed

Lines changed: 2 additions & 14 deletions

File tree

  • src/native/managed/cdac

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Contracts/IGCInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public readonly record struct GCInfoHeader(
4141
/// <param name="IsRegister">True if the slot is a CPU register; false if it is a stack location.</param>
4242
/// <param name="RegisterNumber">Register number (meaningful only when IsRegister is true).</param>
4343
/// <param name="SpOffset">Stack offset from the base (meaningful only when IsRegister is false).</param>
44-
/// <param name="BaseRegister">Stack base register (meaningful only when IsRegister is false).</param>
44+
/// <param name="BaseRegister">Stack base kind: 0 = CALLER_SP_REL, 1 = SP_REL, 2 = FRAMEREG_REL (meaningful only when IsRegister is false).</param>
4545
/// <param name="GcFlags">GC slot flags: 0x1 = interior pointer, 0x2 = pinned, 0x4 = untracked.</param>
4646
/// <param name="BeginOffset">Code offset where the slot becomes live.</param>
4747
/// <param name="EndOffset">Code offset where the slot becomes dead (exclusive).</param>

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/GCInfo/GCInfoDecoder.cs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -555,18 +555,6 @@ public uint GetCodeLength()
555555
return _codeLength;
556556
}
557557

558-
public uint GetStackBaseRegister()
559-
{
560-
EnsureDecodedTo(DecodePoints.ReversePInvoke);
561-
return _stackBaseRegister;
562-
}
563-
564-
public uint GetSizeOfStackParameterArea()
565-
{
566-
EnsureDecodedTo(DecodePoints.ReversePInvoke);
567-
return _fixedStackParameterScratchArea;
568-
}
569-
570558
public IReadOnlyList<InterruptibleRange> GetInterruptibleRanges()
571559
{
572560
EnsureDecodedTo(DecodePoints.InterruptibleRanges);

src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/GCInfo/X86/GCInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,7 @@ GCInfoHeader IGCInfoDecoder.GetHeader()
821821
Version: _gcInfoVersion,
822822
CodeSize: MethodSize,
823823
PrologSize: Header.PrologSize,
824-
StackBaseRegister: (Header.EbpFrame || Header.DoubleAlign) ? 5u : 4u, // EBP=5, ESP=4
824+
StackBaseRegister: RegMaskToRegisterNumber((Header.EbpFrame || Header.DoubleAlign) ? RegMask.EBP : RegMask.ESP),
825825
SizeOfStackParameterArea: 0, // x86 doesn't encode an outgoing scratch area
826826
IsVarArg: Header.VarArgs,
827827
WantsReportOnlyLeaf: true,

0 commit comments

Comments
 (0)