case GT_MUL:
ins = INS_MUL;
break;
+#if !defined(USE_HELPERS_FOR_INT_DIV)
case GT_DIV:
ins = INS_sdiv;
break;
+#endif // !USE_HELPERS_FOR_INT_DIV
case GT_LSH:
ins = INS_SHIFT_LEFT_LOGICAL;
break;
// on float/double args.
noway_assert(tree->OperIs(GT_DIV) || !varTypeIsFloating(tree));
+#if defined(USE_HELPERS_FOR_INT_DIV)
+ noway_assert(!varTypeIsIntOrI(tree));
+#endif // USE_HELPERS_FOR_INT_DIV
+
var_types targetType = tree->TypeGet();
regNumber targetReg = tree->gtRegNum;
emitter* emit = getEmitter();
}
__fallthrough;
+#if !defined(USE_HELPERS_FOR_INT_DIV)
case INS_sdiv:
case INS_udiv:
+#endif // !USE_HELPERS_FOR_INT_DIV
+
assert(insDoesNotSetFlags(flags));
fmt = IF_T2_C5;
sf = INS_FLAGS_NOT_SET;
const var_types type = divMod->TypeGet();
assert((type == TYP_INT) || (type == TYP_LONG));
+#if defined(USE_HELPERS_FOR_INT_DIV)
+ unreached();
+#endif // USE_HELPERS_FOR_INT_DIV
+
if (dividend->IsCnsIntOrI())
{
// We shouldn't see a divmod with constant operands here but if we do then it's likely