| OLD | NEW | 
|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/hydrogen-uint32-analysis.h" | 5 #include "src/hydrogen-uint32-analysis.h" | 
| 6 | 6 | 
| 7 namespace v8 { | 7 namespace v8 { | 
| 8 namespace internal { | 8 namespace internal { | 
| 9 | 9 | 
| 10 | 10 | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 55       // operation. | 55       // operation. | 
| 56       if (store->value() == val) { | 56       if (store->value() == val) { | 
| 57         // Clamping or a conversion to double should have beed inserted. | 57         // Clamping or a conversion to double should have beed inserted. | 
| 58         ASSERT(store->elements_kind() != EXTERNAL_UINT8_CLAMPED_ELEMENTS); | 58         ASSERT(store->elements_kind() != EXTERNAL_UINT8_CLAMPED_ELEMENTS); | 
| 59         ASSERT(store->elements_kind() != EXTERNAL_FLOAT32_ELEMENTS); | 59         ASSERT(store->elements_kind() != EXTERNAL_FLOAT32_ELEMENTS); | 
| 60         ASSERT(store->elements_kind() != EXTERNAL_FLOAT64_ELEMENTS); | 60         ASSERT(store->elements_kind() != EXTERNAL_FLOAT64_ELEMENTS); | 
| 61         return true; | 61         return true; | 
| 62       } | 62       } | 
| 63     } | 63     } | 
| 64   } else if (use->IsCompareNumericAndBranch()) { | 64   } else if (use->IsCompareNumericAndBranch()) { | 
| 65     return false;  // TODO(svenpanne/3380): Fix and re-enable! |  | 
| 66     HCompareNumericAndBranch* c = HCompareNumericAndBranch::cast(use); | 65     HCompareNumericAndBranch* c = HCompareNumericAndBranch::cast(use); | 
| 67     return IsUint32Operation(c->left()) && IsUint32Operation(c->right()); | 66     return IsUint32Operation(c->left()) && IsUint32Operation(c->right()); | 
| 68   } | 67   } | 
| 69 | 68 | 
| 70   return false; | 69   return false; | 
| 71 } | 70 } | 
| 72 | 71 | 
| 73 | 72 | 
| 74 // Iterate over all uses and verify that they are uint32 safe: either don't | 73 // Iterate over all uses and verify that they are uint32 safe: either don't | 
| 75 // distinguish between int32 and uint32 due to their bitwise nature or | 74 // distinguish between int32 and uint32 due to their bitwise nature or | 
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 232 | 231 | 
| 233   // Some phis might have been optimistically marked with kUint32 flag. | 232   // Some phis might have been optimistically marked with kUint32 flag. | 
| 234   // Remove this flag from those phis that are unsafe and propagate | 233   // Remove this flag from those phis that are unsafe and propagate | 
| 235   // this information transitively potentially clearing kUint32 flag | 234   // this information transitively potentially clearing kUint32 flag | 
| 236   // from some non-phi operations that are used as operands to unsafe phis. | 235   // from some non-phi operations that are used as operands to unsafe phis. | 
| 237   UnmarkUnsafePhis(); | 236   UnmarkUnsafePhis(); | 
| 238 } | 237 } | 
| 239 | 238 | 
| 240 | 239 | 
| 241 } }  // namespace v8::internal | 240 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|