Lines Matching refs:divisor

1051   int32_t divisor = instr->divisor();
1061 int32_t mask = divisor < 0 ? -(divisor + 1) : (divisor - 1);
1084 int32_t divisor = instr->divisor();
1088 if (divisor == 0) {
1093 __ TruncatingDiv(result, dividend, Abs(divisor));
1094 __ Dmul(result, result, Operand(Abs(divisor)));
1151 int32_t divisor = instr->divisor();
1153 DCHECK(divisor == kMinInt || base::bits::IsPowerOfTwo32(Abs(divisor)));
1158 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1162 if (hdiv->CheckFlag(HValue::kCanOverflow) && divisor == -1) {
1167 divisor != 1 && divisor != -1) {
1168 int32_t mask = divisor < 0 ? -(divisor + 1) : (divisor - 1);
1173 if (divisor == -1) { // Nice shortcut, not needed for correctness.
1177 uint16_t shift = WhichPowerOf2Abs(divisor);
1189 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1195 int32_t divisor = instr->divisor();
1199 if (divisor == 0) {
1206 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1210 __ TruncatingDiv(result, dividend, Abs(divisor));
1211 if (divisor < 0) __ Subu(result, zero_reg, result);
1214 __ Dmul(scratch0(), result, Operand(divisor));
1225 Register divisor = ToRegister(instr->divisor());
1230 __ Ddiv(result, dividend, divisor);
1234 DeoptimizeIf(eq, instr, divisor, Operand(zero_reg));
1241 DeoptimizeIf(lt, instr, divisor, Operand(zero_reg));
1250 DeoptimizeIf(eq, instr, divisor, Operand(-1));
1260 __ dmod(remainder, dividend, divisor);
1282 int32_t divisor = instr->divisor();
1286 // If the divisor is 1, return the dividend.
1287 if (divisor == 1) {
1292 // If the divisor is positive, things are easy: There can be no deopts and we
1294 uint16_t shift = WhichPowerOf2Abs(divisor);
1295 if (divisor > 1) {
1300 // If the divisor is negative, we have to negate and handle edge cases.
1312 if (divisor == -1) {
1327 __ li(result, Operand(kMinInt / divisor), CONSTANT_SIZE);
1337 int32_t divisor = instr->divisor();
1341 if (divisor == 0) {
1348 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1354 if ((divisor > 0 && !hdiv->CheckFlag(HValue::kLeftCanBeNegative)) ||
1355 (divisor < 0 && !hdiv->CheckFlag(HValue::kLeftCanBePositive))) {
1356 __ TruncatingDiv(result, dividend, Abs(divisor));
1357 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1366 __ Branch(&needs_adjustment, divisor > 0 ? lt : gt,
1368 __ TruncatingDiv(result, dividend, Abs(divisor));
1369 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1372 __ Daddu(temp, dividend, Operand(divisor > 0 ? 1 : -1));
1373 __ TruncatingDiv(result, temp, Abs(divisor));
1374 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1384 Register divisor = ToRegister(instr->divisor());
1389 __ Ddiv(result, dividend, divisor);
1393 DeoptimizeIf(eq, instr, divisor, Operand(zero_reg));
1400 DeoptimizeIf(lt, instr, divisor, Operand(zero_reg));
1409 DeoptimizeIf(eq, instr, divisor, Operand(-1));
1419 __ dmod(remainder, dividend, divisor);
1422 __ Xor(remainder, remainder, Operand(divisor));