Index: src/hydrogen-uint32-analysis.cc |
diff --git a/src/hydrogen-uint32-analysis.cc b/src/hydrogen-uint32-analysis.cc |
index 835a198d4d8b53f42d06542806f3381116ea1869..fbd6b354ea44c24665b7f6484b6be297b4ff856d 100644 |
--- a/src/hydrogen-uint32-analysis.cc |
+++ b/src/hydrogen-uint32-analysis.cc |
@@ -36,7 +36,14 @@ bool HUint32AnalysisPhase::IsSafeUint32Use(HValue* val, HValue* use) { |
if (use->IsBitwise() || use->IsShl() || use->IsSar() || use->IsShr()) { |
return true; |
} else if (use->IsChange() || use->IsSimulate()) { |
- // Conversions and deoptimization have special support for unt32. |
+ // Conversions and deoptimization have special support for uint32. |
+ // This ASSERT guards that the conversion in question is actually |
+ // implemented. Do not extend the whitelist without adding |
+ // support to LChunkBuilder::DoChange(). |
+ ASSERT(!use->IsChange() || |
Vyacheslav Egorov (Google)
2013/10/31 10:05:36
I would make it
else if (use->IsSimulate()) {
|
+ HChange::cast(use)->to().IsDouble() || |
+ HChange::cast(use)->to().IsSmi() || |
+ HChange::cast(use)->to().IsTagged()); |
return true; |
} else if (use->IsStoreKeyed()) { |
HStoreKeyed* store = HStoreKeyed::cast(use); |