@@ -31,16 +31,6 @@ public abstract class BaseInstruction
3131 /// <value>The operand result count.</value>
3232 public byte DefaultResultCount { get ; protected set ; }
3333
34- /// <summary>
35- /// The type of the result type
36- /// </summary>
37- public virtual BuiltInType ResultType { get ; protected set ; } = BuiltInType . None ;
38-
39- /// <summary>
40- /// The type of the secondary result type
41- /// </summary>
42- public virtual BuiltInType ResultType2 { get ; protected set ; } = BuiltInType . None ;
43-
4434 /// <summary>
4535 /// Determines flow behavior of this instruction.
4636 /// </summary>
@@ -51,103 +41,55 @@ public abstract class BaseInstruction
5141 /// </remarks>
5242 public virtual FlowControl FlowControl => FlowControl . Next ;
5343
54- /// <summary>
55- /// Gets a value indicating whether to [ignore during code generation].
56- /// </summary>
57- /// <value>
58- /// <c>true</c> if [ignore during code generation]; otherwise, <c>false</c>.
59- /// </value>
44+ public virtual bool VariableOperands => false ;
45+
46+ public virtual string Name { get ; private set ; }
47+
48+ public virtual string AlternativeName => null ;
49+
50+ public virtual string FamilyName => null ;
51+
52+ public virtual string Modifier => null ;
53+
54+ public virtual string FullName { get ; private set ; }
55+
56+ public virtual string OpcodeName { get ; private set ; }
57+
58+ #endregion Properties
59+
60+ #region Is/Has Properties
61+
6062 public virtual bool IgnoreDuringCodeGeneration => false ;
6163
62- /// <summary>
63- /// Gets a value indicating whether to [ignore instruction's basic block].
64- /// </summary>
65- /// <value>
66- /// <c>true</c> if [ignore instruction basic block]; otherwise, <c>false</c>.
67- /// </value>
6864 public virtual bool IgnoreInstructionBasicBlockTargets => false ;
6965
70- /// <summary>
71- /// Gets a value indicating whether this instance has an unspecified side effect.
72- /// </summary>
73- /// <value>
74- /// <c>true</c> if this instance has side effect; otherwise, <c>false</c>.
75- /// </value>
7666 public virtual bool HasUnspecifiedSideEffect => false ;
7767
78- /// <summary>
79- /// Gets a value indicating whether this instance has memory write side effect.
80- /// </summary>
81- /// <value>
82- /// <c>true</c> if this instance has side effect; otherwise, <c>false</c>.
83- /// </value>
8468 public virtual bool IsMemoryWrite => false ;
8569
86- /// <summary>
87- /// Gets a value indicating whether this instance has memory write side effect.
88- /// </summary>
89- /// <value>
90- /// <c>true</c> if this instance has side effect; otherwise, <c>false</c>.
91- /// </value>
9270 public virtual bool IsMemoryRead => false ;
9371
94- /// <summary>
95- /// Gets a value indicating whether this instance has IO operation side effect.
96- /// </summary>
97- /// <value>
98- /// <c>true</c> if this instance has side effect; otherwise, <c>false</c>.
99- /// </value>
10072 public virtual bool IsIOOperation => false ;
10173
102- /// <summary>
103- /// Gets a value indicating whether [variable operand count].
104- /// </summary>
105- /// <value>
106- /// <c>true</c> if [variable operand count]; otherwise, <c>false</c>.
107- /// </value>
108- public virtual bool VariableOperands => false ;
109-
110- /// <summary>
111- /// Gets a value indicating whether this <see cref="BaseInstruction"/> is commutative.
112- /// </summary>
113- /// <value>
114- /// <c>true</c> if commutative; otherwise, <c>false</c>.
115- /// </value>
11674 public virtual bool IsCommutative => false ;
11775
118- /// <summary>
119- /// Gets a value indicating whether this instance is parameter load.
120- /// </summary>
121- /// <value>
122- /// <c>true</c> if this instance is parameter load; otherwise, <c>false</c>.
123- /// </value>
12476 public virtual bool IsParameterLoad => false ;
12577
126- /// <summary>
127- /// Gets a value indicating whether this instance is parameter store.
128- /// </summary>
129- /// <value>
130- /// <c>true</c> if this instance is parameter store; otherwise, <c>false</c>.
131- /// </value>
13278 public virtual bool IsParameterStore => false ;
13379
13480 public virtual bool IsPlatformInstruction => false ;
13581
13682 public virtual bool IsIRInstruction => false ;
13783
138- public virtual string Name { get ; private set ; }
84+ public virtual bool IsPhiInstruction => false ;
13985
140- public virtual string AlternativeName => null ;
86+ public virtual bool IsIRBranchInstruction => false ;
14187
142- public virtual string FamilyName => null ;
88+ public virtual bool IsIRMoveInstruction => false ;
14389
144- public virtual string Modifier => null ;
90+ public virtual bool IsIRCompareInstruction => false ;
14591
146- public virtual string FullName { get ; private set ; }
147-
148- public virtual string OpcodeName { get ; private set ; }
149-
150- #endregion Properties
92+ #endregion Is/Has Properties
15193
15294 #region Platform Properties
15395
0 commit comments