Commit 0edbf9e7 authored by plind44@gmail.com's avatar plind44@gmail.com

MIPS: Skip some conditional deopts for Div/Mul when all uses are truncating.

Port r15060 (8cdd204)

Original commit message:
- set "can be minus zero" flag properly so minus-zero checks are skipped
- skip "integer result?" check in division code when uses are truncating
- drive-by cleanup: consolidated computation of kCanOverflow flag for Add/Sub into range inference phase

BUG=v8:2132
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/16645007

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent c2dab39b
......@@ -1246,8 +1246,10 @@ void LCodeGen::DoDivI(LDivI* instr) {
__ bind(&left_not_min_int);
}
__ mfhi(result);
DeoptimizeIf(ne, instr->environment(), result, Operand(zero_reg));
if (!instr->hydrogen()->CheckFlag(HInstruction::kAllUsesTruncatingToInt32)) {
__ mfhi(result);
DeoptimizeIf(ne, instr->environment(), result, Operand(zero_reg));
}
__ mflo(result);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment