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