Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit f6b82fe

Browse files
author
Sergey Andreenko
committed
fix the bug
1 parent 8e9c59d commit f6b82fe

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

src/jit/compiler.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5143,11 +5143,13 @@ class Compiler
51435143

51445144
bool fgIsBigOffset(size_t offset);
51455145

5146+
#if defined(LEGACY_BACKEND)
51465147
// The following are used when morphing special cases of integer div/mod operations and also by codegen
51475148
bool fgIsSignedDivOptimizable(GenTree* divisor);
51485149
bool fgIsUnsignedDivOptimizable(GenTree* divisor);
51495150
bool fgIsSignedModOptimizable(GenTree* divisor);
51505151
bool fgIsUnsignedModOptimizable(GenTree* divisor);
5152+
#endif // LEGACY_BACKEND
51515153

51525154
bool fgNeedReturnSpillTemp();
51535155

src/jit/compiler.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3134,6 +3134,8 @@ inline bool Compiler::fgIsBigOffset(size_t offset)
31343134
return (offset > compMaxUncheckedOffsetForNullObject);
31353135
}
31363136

3137+
#if defined(LEGACY_BACKEND)
3138+
31373139
/***********************************************************************************
31383140
*
31393141
* Returns true if back-end will do other than integer division which currently occurs only
@@ -3218,6 +3220,8 @@ inline bool Compiler::fgIsUnsignedModOptimizable(GenTree* divisor)
32183220
return false;
32193221
}
32203222

3223+
#endif // LEGACY_BACKEND
3224+
32213225
/*
32223226
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
32233227
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

src/jit/morph.cpp

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11834,7 +11834,11 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac)
1183411834
}
1183511835

1183611836
#if USE_HELPERS_FOR_INT_DIV
11837-
if (typ == TYP_INT && !fgIsSignedDivOptimizable(op2))
11837+
if (typ == TYP_INT
11838+
#if defined(LEGACY_BACKEND)
11839+
&& !fgIsSignedDivOptimizable(op2)
11840+
#endif // LEGACY_BACKEND
11841+
)
1183811842
{
1183911843
helper = CORINFO_HELP_DIV;
1184011844
goto USE_HELPER_FOR_ARITH;
@@ -11859,7 +11863,11 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac)
1185911863
goto USE_HELPER_FOR_ARITH;
1186011864
}
1186111865
#if USE_HELPERS_FOR_INT_DIV
11862-
if (typ == TYP_INT && !fgIsUnsignedDivOptimizable(op2))
11866+
if (typ == TYP_INT
11867+
#if defined(LEGACY_BACKEND)
11868+
&& !fgIsUnsignedDivOptimizable(op2)
11869+
#endif // LEGACY_BACKEND
11870+
)
1186311871
{
1186411872
helper = CORINFO_HELP_UDIV;
1186511873
goto USE_HELPER_FOR_ARITH;
@@ -11974,12 +11982,20 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac)
1197411982
#if USE_HELPERS_FOR_INT_DIV
1197511983
if (typ == TYP_INT)
1197611984
{
11977-
if (oper == GT_UMOD && !fgIsUnsignedModOptimizable(op2))
11985+
if (oper == GT_UMOD
11986+
#if defined(LEGACY_BACKEND)
11987+
&& !fgIsUnsignedModOptimizable(op2)
11988+
#endif // LEGACY_BACKEND
11989+
)
1197811990
{
1197911991
helper = CORINFO_HELP_UMOD;
1198011992
goto USE_HELPER_FOR_ARITH;
1198111993
}
11982-
else if (oper == GT_MOD && !fgIsSignedModOptimizable(op2))
11994+
else if (oper == GT_MOD
11995+
#if defined(LEGACY_BACKEND)
11996+
&& !fgIsSignedModOptimizable(op2)
11997+
#endif // LEGACY_BACKEND
11998+
)
1198311999
{
1198412000
helper = CORINFO_HELP_MOD;
1198512001
goto USE_HELPER_FOR_ARITH;

0 commit comments

Comments
 (0)