Home | History | Annotate | Download | only in mips64

Lines Matching full:divisor

965   int32_t divisor = instr->divisor();
975 int32_t mask = divisor < 0 ? -(divisor + 1) : (divisor - 1);
999 int32_t divisor = instr->divisor();
1003 if (divisor == 0) {
1008 __ TruncatingDiv(result, dividend, Abs(divisor));
1009 __ Dmul(result, result, Operand(Abs(divisor)));
1069 int32_t divisor = instr->divisor();
1071 DCHECK(divisor == kMinInt || base::bits::IsPowerOfTwo32(Abs(divisor)));
1076 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1081 if (hdiv->CheckFlag(HValue::kCanOverflow) && divisor == -1) {
1086 divisor != 1 && divisor != -1) {
1087 int32_t mask = divisor < 0 ? -(divisor + 1) : (divisor - 1);
1092 if (divisor == -1) { // Nice shortcut, not needed for correctness.
1096 uint16_t shift = WhichPowerOf2Abs(divisor);
1108 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1114 int32_t divisor = instr->divisor();
1118 if (divisor == 0) {
1125 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1130 __ TruncatingDiv(result, dividend, Abs(divisor));
1131 if (divisor < 0) __ Subu(result, zero_reg, result);
1134 __ Dmul(scratch0(), result, Operand(divisor));
1146 Register divisor = ToRegister(instr->divisor());
1151 __ Div(result, dividend, divisor);
1155 DeoptimizeIf(eq, instr, Deoptimizer::kDivisionByZero, divisor,
1163 DeoptimizeIf(lt, instr, Deoptimizer::kMinusZero, divisor,
1173 DeoptimizeIf(eq, instr, Deoptimizer::kOverflow, divisor, Operand(-1));
1183 __ dmod(remainder, dividend, divisor);
1206 int32_t divisor = instr->divisor();
1210 // If the divisor is 1, return the dividend.
1211 if (divisor == 1) {
1216 // If the divisor is positive, things are easy: There can be no deopts and we
1218 uint16_t shift = WhichPowerOf2Abs(divisor);
1219 if (divisor > 1) {
1224 // If the divisor is negative, we have to negate and handle edge cases.
1236 if (divisor == -1) {
1251 __ li(result, Operand(kMinInt / divisor), CONSTANT_SIZE);
1261 int32_t divisor = instr->divisor();
1265 if (divisor == 0) {
1272 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1279 if ((divisor > 0 && !hdiv->CheckFlag(HValue::kLeftCanBeNegative)) ||
1280 (divisor < 0 && !hdiv->CheckFlag(HValue::kLeftCanBePositive))) {
1281 __ TruncatingDiv(result, dividend, Abs(divisor));
1282 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1291 __ Branch(&needs_adjustment, divisor > 0 ? lt : gt,
1293 __ TruncatingDiv(result, dividend, Abs(divisor));
1294 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1297 __ Daddu(temp, dividend, Operand(divisor > 0 ? 1 : -1));
1298 __ TruncatingDiv(result, temp, Abs(divisor));
1299 if (divisor < 0) __ Dsubu(result, zero_reg, result);
1309 Register divisor = ToRegister(instr->divisor());
1314 __ Ddiv(result, dividend, divisor);
1318 DeoptimizeIf(eq, instr, Deoptimizer::kDivisionByZero, divisor,
1326 DeoptimizeIf(lt, instr, Deoptimizer::kMinusZero, divisor,
1336 DeoptimizeIf(eq, instr, Deoptimizer::kOverflow, divisor, Operand(-1));
1346 __ dmod(remainder, dividend, divisor);
1349 __ Xor(remainder, remainder, Operand(divisor));