diff options
author | mikedn <onemihaid@hotmail.com> | 2017-10-19 04:34:55 +0300 |
---|---|---|
committer | Bruce Forstall <brucefo@microsoft.com> | 2017-10-18 18:34:55 -0700 |
commit | d5d5e53844ce49906a1e083d1a2e15c8fd5749d6 (patch) | |
tree | 7a748388ffa03bf9a939d580fd289560366499b1 /src/jit/gentree.h | |
parent | 344e2e7b535e3406a1eccaf8627609e803e37c63 (diff) | |
download | coreclr-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.h | 26 |
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: |