Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 2879d6411112255da7053dfa1d94c2b71b647beb..86aa0b5d5299930646fcc78d71ca7f55cfb0f2c7 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -1435,9 +1435,14 @@ void LCodeGen::DoFlooringDivByPowerOf2I(LFlooringDivByPowerOf2I* instr) { |
Register result = ToRegister(instr->result()); |
int32_t divisor = instr->divisor(); |
+ // If the divisor is 1, return the dividend. |
+ if (divisor == 1) { |
+ __ Move(result, dividend); |
+ return; |
+ } |
+ |
// If the divisor is positive, things are easy: There can be no deopts and we |
// can simply do an arithmetic right shift. |
- if (divisor == 1) return; |
int32_t shift = WhichPowerOf2Abs(divisor); |
if (divisor > 1) { |
__ mov(result, Operand(dividend, ASR, shift)); |