summaryrefslogtreecommitdiff
path: root/src/jit/gentree.h
diff options
context:
space:
mode:
authormikedn <onemihaid@hotmail.com>2017-10-19 04:34:55 +0300
committerBruce Forstall <brucefo@microsoft.com>2017-10-18 18:34:55 -0700
commitd5d5e53844ce49906a1e083d1a2e15c8fd5749d6 (patch)
tree7a748388ffa03bf9a939d580fd289560366499b1 /src/jit/gentree.h
parent344e2e7b535e3406a1eccaf8627609e803e37c63 (diff)
downloadcoreclr-d5d5e53844ce49906a1e083d1a2e15c8fd5749d6.tar.gz
coreclr-d5d5e53844ce49906a1e083d1a2e15c8fd5749d6.tar.bz2
coreclr-d5d5e53844ce49906a1e083d1a2e15c8fd5749d6.zip
Ifdef out legacy uses of GT_ASG_op (#14384)
* Ifdef out legacy uses of GT_ASG_op GT_ASG_op nodes are only generated when the legacy backend is used. * Address feedback * Cleanup gtOverflow/gtOverflowEx
Diffstat (limited to 'src/jit/gentree.h')
-rw-r--r--src/jit/gentree.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/jit/gentree.h b/src/jit/gentree.h
index 344363449d..ed68bf89b1 100644
--- a/src/jit/gentree.h
+++ b/src/jit/gentree.h
@@ -105,7 +105,9 @@ enum genTreeKinds
GTK_BINOP = 0x0008, // binary operator
GTK_RELOP = 0x0010, // comparison operator
GTK_LOGOP = 0x0020, // logical operator
+#ifdef LEGACY_BACKEND
GTK_ASGOP = 0x0040, // assignment operator
+#endif
GTK_KINDMASK = 0x007F, // operator kind mask
@@ -1513,7 +1515,11 @@ public:
static bool OperIsAssignment(genTreeOps gtOper)
{
+#ifdef LEGACY_BACKEND
return (OperKind(gtOper) & GTK_ASGOP) != 0;
+#else
+ return gtOper == GT_ASG;
+#endif
}
bool OperIsAssignment() const
@@ -1521,6 +1527,22 @@ public:
return OperIsAssignment(gtOper);
}
+ static bool OperMayOverflow(genTreeOps gtOper)
+ {
+ return ((gtOper == GT_ADD) || (gtOper == GT_SUB) || (gtOper == GT_MUL) || (gtOper == GT_CAST)
+#ifdef LEGACY_BACKEND
+ || (gtOper == GT_ASG_ADD) || (gtOper == GT_ASG_SUB)
+#elif !defined(_TARGET_64BIT_)
+ || (gtOper == GT_ADD_HI) || (gtOper == GT_SUB_HI)
+#endif
+ );
+ }
+
+ bool OperMayOverflow() const
+ {
+ return OperMayOverflow(gtOper);
+ }
+
static bool OperIsIndir(genTreeOps gtOper)
{
return gtOper == GT_IND || gtOper == GT_STOREIND || gtOper == GT_NULLCHECK || OperIsBlk(gtOper);
@@ -1651,9 +1673,11 @@ public:
return OperIsBoundsCheck(OperGet());
}
+#ifdef LEGACY_BACKEND
// Requires that "op" is an op= operator. Returns
// the corresponding "op".
static genTreeOps OpAsgToOper(genTreeOps op);
+#endif
#ifdef DEBUG
bool NullOp1Legal() const
@@ -6006,6 +6030,7 @@ inline bool GenTree::RequiresNonNullOp2(genTreeOps oper)
case GT_ROR:
case GT_INDEX:
case GT_ASG:
+#ifdef LEGACY_BACKEND
case GT_ASG_ADD:
case GT_ASG_SUB:
case GT_ASG_MUL:
@@ -6019,6 +6044,7 @@ inline bool GenTree::RequiresNonNullOp2(genTreeOps oper)
case GT_ASG_LSH:
case GT_ASG_RSH:
case GT_ASG_RSZ:
+#endif
case GT_EQ:
case GT_NE:
case GT_LT: