R2RDump - GcInfo for x86
x86 GcInfo headers
x86 GcSlotTable
x86 GcTransitions
Update expected xml for R2RDumpTests
Add license headers
Allow multiple GcTransitions with same codeOffset
Add index property in GcSlot, make GcSlot a class instead of struct, add missing spaces, update tests
Remove placeholder functions for parsing partially interruptible pointer tables
Implement partially interruptible GcInfo
Example GcInfo output:
CodeLength: 22 bytes
InfoHdr:
PrologSize: 7
EpilogSize: 4
EpilogCount: 1
EpilogAtEnd: yes
Callee-saved regs = EBP
EbpFrame: yes
Fully Interruptible: yes
DoubleAlign: no
Arguments Size: 0 DWORDs
Stack Frame Size: 1 DWORDs
UntrackedCnt: 1
VarPtrTableSize: 0
GenericsContext: 0
GenericsContextIsMethodDesc: 0
ReturnKind: RT_Scalar
RevPInvokeOffset: 0
Epilogs: 18
GcSlots:
-------------------------
[EBP-4]
Flags: GC_SLOT_UNTRACKED
LowBits:
-------------------------
28fc: 55 push ebp
28fd: 8b ec mov ebp, esp
28ff: 50 push eax
2900: 89 4d fc mov dword ptr [ebp - 4], ecx
2903: 8b 4d fc mov ecx, dword ptr [ebp - 4]
2906: ff 15 10 10 01 10 call dword ptr [
268505104]
reg ECX becoming live
290c: 90 nop
reg ECX becoming dead
290d: 90 nop
290e: 8b e5 mov esp, ebp
2910: 5d pop ebp
2911: c3 ret
Commit migrated from https://github.com/dotnet/coreclr/commit/
26286b460e53d03ec8b74b85f09c0754bb10605f