111 references to RegMask
Microsoft.Diagnostics.DataContractReader.Contracts (111)
Contracts\GCInfo\X86\GCArgTable.cs (21)
68private static RegMask ThreeBitEncodingToRegMask(byte val) => 710x0 => RegMask.EAX, 720x1 => RegMask.ECX, 730x2 => RegMask.EDX, 740x3 => RegMask.EBX, 750x4 => RegMask.ESP, 760x5 => RegMask.EBP, 770x6 => RegMask.ESI, 780x7 => RegMask.EDI, 82private static RegMask TwoBitEncodingToRegMask(byte val) => 850x0 => RegMask.EDI, 860x1 => RegMask.ESI, 870x2 => RegMask.EBX, 880x3 => RegMask.EBP, 236RegMask thisRegister = ((val & 0x70) >> 4) switch 2380x1 => RegMask.EDI, 2390x2 => RegMask.ESI, 2400x4 => RegMask.EBX, 393AddNewTransition(new GcTransitionRegister((int)curOffs, RegMask.ESP, Action.PUSH)); 399AddNewTransition(new GcTransitionRegister((int)curOffs, RegMask.ESP, Action.PUSH, false, false, (int)pushCount)); 424AddNewTransition(new GcTransitionRegister((int)curOffs, RegMask.ESP, Action.POP, false, false, (int)popSize));
Contracts\GCInfo\X86\GCInfo.cs (47)
59public RegMask SavedRegsMask { get; set; } = RegMask.NONE; 144RegMask savedRegs = RegMask.NONE; 149savedRegs |= RegMask.EDI; 154savedRegs |= RegMask.ESI; 159savedRegs |= RegMask.EBX; 164savedRegs |= RegMask.EBP; 439/// Converts a single-bit <see cref="RegMask"/> value to the platform-agnostic 443private static uint RegMaskToRegisterNumber(RegMask reg) 520RegMask thisRegister = RegMask.NONE; 537thisRegister = RegMask.NONE; 547if (thisRegister == RegMask.NONE) 775RegMask liveRegs = RegMask.NONE; 776RegMask liveIptrRegs = RegMask.NONE; 855const RegMask CalleeTrashedScratch = RegMask.EAX | RegMask.ECX | RegMask.EDX; 856foreach (RegMask r in EnumerateSingleRegs()) 915ref RegMask liveRegs, 916ref RegMask liveIptrRegs, 936bool isPtrPush = (regT.Register & ~RegMask.ESP) != 0; 987private static IEnumerable<RegMask> EnumerateSingleRegs() 989yield return RegMask.EAX; 990yield return RegMask.ECX; 991yield return RegMask.EDX; 992yield return RegMask.EBX; 993yield return RegMask.EBP; 994yield return RegMask.ESI; 995yield return RegMask.EDI; 1015StackBaseRegister: RegMaskToRegisterNumber((Header.EbpFrame || Header.DoubleAlign) ? RegMask.EBP : RegMask.ESP), 1075Dictionary<RegMask, uint> activeRegs = []; 1147foreach ((RegMask reg, uint beginOffset) in activeRegs) 1159private static uint RegMaskToRegNum(RegMask reg) => reg switch 1161RegMask.EAX => 0, 1162RegMask.ECX => 1, 1163RegMask.EDX => 2, 1164RegMask.EBX => 3, 1165RegMask.ESP => 4, 1166RegMask.EBP => 5, 1167RegMask.ESI => 6, 1168RegMask.EDI => 7,
Contracts\GCInfo\X86\GCTransition.cs (14)
33public RegMask Register { get; set; } 37public ThisPointerRegister(int codeOffset, RegMask reg) 69public RegMask Register { get; set; } 77public GcTransitionRegister(int codeOffset, RegMask reg, Action isLive, bool isThis = false, bool iptr = false, int pushCountOrPopSize = 1) 190public RegMask Register { get; set; } 193public CallRegister(RegMask reg, bool isByRef) 233RegMask reg = RegMask.EDI; 239RegMask reg = RegMask.ESI; 245RegMask reg = RegMask.EBX; 253RegMask reg = RegMask.EBP;
Contracts\StackWalk\Context\X86\X86Unwinder.cs (29)
40private static readonly RegMask[] registerOrder = 42RegMask.EBP, // last register to be pushed 43RegMask.EBX, 44RegMask.ESI, 45RegMask.EDI, // first register to be pushed 200foreach (RegMask regMask in registerOrder) 202if (regMask == RegMask.EBP) 280foreach (RegMask regMask in registerOrder) 289if (_updateAllRegs || regMask == RegMask.EBP) 333foreach (RegMask regMask in registerOrder) 368RegMask regsMask = RegMask.NONE; 372foreach (RegMask regMask in registerOrder) 401if (regsMask.HasFlag(RegMask.EBP)) 409if (regsMask.HasFlag(RegMask.EBX)) 414if (regsMask.HasFlag(RegMask.ESI)) 419if (regsMask.HasFlag(RegMask.EDI)) 491foreach (RegMask regMask in registerOrder.Reverse()) 493if (regMask == RegMask.EBP) continue; 574foreach (RegMask regMask in registerOrder.Reverse()) 576if (regMask == RegMask.EBP) continue; 863private static void SetRegValue(ref X86Context context, RegMask regMask, TargetPointer value) 868case RegMask.EAX: 871case RegMask.EBX: 874case RegMask.ECX: 877case RegMask.EDX: 880case RegMask.EBP: 883case RegMask.ESI: 886case RegMask.EDI: