Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index 2b12bc7d20f2017a54a0133b14b48b46ac9f5eed..f698da46d41f078aad24b2a1a1ec5eabc6acaa0b 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -2262,7 +2262,15 @@ Representation HPhi::InferredRepresentation() { |
bool int32_occurred = false; |
for (int i = 0; i < OperandCount(); ++i) { |
HValue* value = OperandAt(i); |
- if (value->IsUnknownOSRValue()) continue; |
+ if (value->IsUnknownOSRValue()) { |
+ HPhi* hint_value = HUnknownOSRValue::cast(value)->incoming_value(); |
+ if (hint_value != NULL) { |
+ Representation hint = hint_value->representation(); |
+ if (hint.IsDouble()) double_occurred = true; |
+ if (hint.IsInteger32()) int32_occurred = true; |
+ } |
+ continue; |
+ } |
if (value->representation().IsDouble()) double_occurred = true; |
if (value->representation().IsInteger32()) int32_occurred = true; |
if (value->representation().IsTagged()) { |