Home | History | Annotate | Download | only in ppc

Lines Matching full:divisor

927   int32_t divisor = instr->divisor();
937 int32_t shift = WhichPowerOf2Abs(divisor);
970 int32_t divisor = instr->divisor();
974 if (divisor == 0) {
979 __ TruncatingDiv(result, dividend, Abs(divisor));
980 __ mov(ip, Operand(Abs(divisor)));
1053 int32_t divisor = instr->divisor();
1055 DCHECK(divisor == kMinInt || base::bits::IsPowerOfTwo32(Abs(divisor)));
1060 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1065 if (hdiv->CheckFlag(HValue::kCanOverflow) && divisor == -1) {
1071 int32_t shift = WhichPowerOf2Abs(divisor);
1079 if (divisor == -1) { // Nice shortcut, not needed for correctness.
1095 if (divisor < 0) __ neg(result, result);
1101 int32_t divisor = instr->divisor();
1105 if (divisor == 0) {
1112 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1117 __ TruncatingDiv(result, dividend, Abs(divisor));
1118 if (divisor < 0) __ neg(result, result);
1122 __ mov(ip, Operand(divisor));
1134 const Register divisor = ToRegister(instr->divisor());
1139 DCHECK(!divisor.is(result));
1146 __ divw(result, dividend, divisor, SetOE, SetRC);
1150 __ cmpwi(divisor, Operand::Zero());
1159 __ cmpwi(divisor, Operand::Zero());
1184 __ mullw(scratch, divisor, result);
1195 int32_t divisor = instr->divisor();
1198 // If the divisor is positive, things are easy: There can be no deopts and we
1200 int32_t shift = WhichPowerOf2Abs(divisor);
1201 if (divisor > 0) {
1208 // If the divisor is negative, we have to negate and handle edge cases.
1211 if (divisor == -1 && can_overflow) {
1241 if (divisor == -1) {
1251 __ mov(result, Operand(kMinInt / divisor));
1259 int32_t divisor = instr->divisor();
1263 if (divisor == 0) {
1270 if (hdiv->CheckFlag(HValue::kBailoutOnMinusZero) && divisor < 0) {
1277 if ((divisor > 0 && !hdiv->CheckFlag(HValue::kLeftCanBeNegative)) ||
1278 (divisor < 0 && !hdiv->CheckFlag(HValue::kLeftCanBePositive))) {
1279 __ TruncatingDiv(result, dividend, Abs(divisor));
1280 if (divisor < 0) __ neg(result, result);
1290 __ b(divisor > 0 ? lt : gt, &needs_adjustment);
1291 __ TruncatingDiv(result, dividend, Abs(divisor));
1292 if (divisor < 0) __ neg(result, result);
1295 __ addi(temp, dividend, Operand(divisor > 0 ? 1 : -1));
1296 __ TruncatingDiv(result, temp, Abs(divisor));
1297 if (divisor < 0) __ neg(result, result);
1307 const Register divisor = ToRegister(instr->divisor());
1312 DCHECK(!divisor.is(result));
1319 __ divw(result, dividend, divisor, SetOE, SetRC);
1323 __ cmpwi(divisor, Operand::Zero());
1332 __ cmpwi(divisor, Operand::Zero());
1358 __ xor_(scratch, dividend, divisor);
1362 __ xor_(scratch, dividend, divisor, SetRC);
1367 __ mullw(scratch, divisor, result);