Lines Matching full:divisor
943 int32_t divisor = instr->divisor();
953 int32_t mask = divisor < 0 ? -(divisor + 1) : (divisor - 1);
976 int32_t divisor = instr->divisor();
979 if (divisor == 0) {
984 __ TruncatingDiv(dividend, Abs(divisor));
985 __ imull(rdx, rdx, Immediate(Abs(divisor)));
1059 int32_t divisor = instr->divisor();
1062 // If the divisor is positive, things are easy: There can be no deopts and we
1064 if (divisor == 1) return;
1065 int32_t shift = WhichPowerOf2Abs(divisor);
1066 if (divisor > 1) {
1071 // If the divisor is negative, we have to negate and handle edge cases.
1078 if (divisor == -1) {
1093 __ movl(dividend, Immediate(kMinInt / divisor));
1103 int32_t divisor = instr->divisor();
1106 if (divisor == 0) {
1113 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1120 if ((divisor > 0 && !hdiv->CheckFlag(HValue::kLeftCanBeNegative)) ||
1121 (divisor < 0 && !hdiv->CheckFlag(HValue::kLeftCanBePositive))) {
1122 __ TruncatingDiv(dividend, Abs(divisor));
1123 if (divisor < 0) __ negl(rdx);
1133 __ j(divisor > 0 ? less : greater, &needs_adjustment, Label::kNear);
1134 __ TruncatingDiv(dividend, Abs(divisor));
1135 if (divisor < 0) __ negl(rdx);
1138 __ leal(temp, Operand(dividend, divisor > 0 ? 1 : -1));
1139 __ TruncatingDiv(temp, Abs(divisor));
1140 if (divisor < 0) __ negl(rdx);
1150 Register divisor = ToRegister(instr->divisor());
1156 DCHECK(!divisor.is(rax));
1157 DCHECK(!divisor.is(rdx));
1161 __ testl(divisor, divisor);
1170 __ testl(divisor, divisor);
1180 __ cmpl(divisor, Immediate(-1));
1187 __ idivl(divisor);
1192 __ xorl(remainder, divisor);
1201 int32_t divisor = instr->divisor();
1203 DCHECK(divisor == kMinInt || base::bits::IsPowerOfTwo32(Abs(divisor)));
1208 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1213 if (hdiv->CheckFlag(HValue::kCanOverflow) && divisor == -1) {
1219 divisor != 1 && divisor != -1) {
1220 int32_t mask = divisor < 0 ? -(divisor + 1) : (divisor - 1);
1225 int32_t shift = WhichPowerOf2Abs(divisor);
1233 if (divisor < 0) __ negl(result);
1239 int32_t divisor = instr->divisor();
1242 if (divisor == 0) {
1249 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1254 __ TruncatingDiv(dividend, Abs(divisor));
1255 if (divisor < 0) __ negl(rdx);
1259 __ imull(rax, rax, Immediate(divisor));
1270 Register divisor = ToRegister(instr->divisor());
1275 DCHECK(!divisor.is(rax));
1276 DCHECK(!divisor.is(rdx));
1280 __ testl(divisor, divisor);
1289 __ testl(divisor, divisor);
1299 __ cmpl(divisor, Immediate(-1));
1306 __ idivl(divisor);