Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index c9de436d68bf3fdab66df6d5d33e20329fc76c7a..51a9b62fb25b1fda34be603146569fc310595329 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -2096,9 +2096,8 @@ LInstruction* LChunkBuilder::DoConstant(HConstant* instr) { |
} else if (r.IsInteger32()) { |
return DefineAsRegister(new(zone()) LConstantI); |
} else if (r.IsDouble()) { |
- double value = instr->DoubleValue(); |
- bool value_is_zero = bit_cast<uint64_t, double>(value) == 0; |
- LOperand* temp = value_is_zero ? NULL : TempRegister(); |
+ uint64_t const bits = instr->DoubleValueAsBits(); |
+ LOperand* temp = bits ? TempRegister() : nullptr; |
return DefineAsRegister(new(zone()) LConstantD(temp)); |
} else if (r.IsExternal()) { |
return DefineAsRegister(new(zone()) LConstantE); |