| 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.h" | 5 #include "src/hydrogen.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 1837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1848 result, HObjectAccess::ForJSArrayOffset(JSRegExpResult::kIndexOffset), | 1848 result, HObjectAccess::ForJSArrayOffset(JSRegExpResult::kIndexOffset), |
| 1849 index); | 1849 index); |
| 1850 Add<HStoreNamedField>( | 1850 Add<HStoreNamedField>( |
| 1851 result, HObjectAccess::ForJSArrayOffset(JSRegExpResult::kInputOffset), | 1851 result, HObjectAccess::ForJSArrayOffset(JSRegExpResult::kInputOffset), |
| 1852 input); | 1852 input); |
| 1853 | 1853 |
| 1854 // Allocate and initialize the elements header. | 1854 // Allocate and initialize the elements header. |
| 1855 HAllocate* elements = BuildAllocateElements(elements_kind, size); | 1855 HAllocate* elements = BuildAllocateElements(elements_kind, size); |
| 1856 BuildInitializeElementsHeader(elements, elements_kind, length); | 1856 BuildInitializeElementsHeader(elements, elements_kind, length); |
| 1857 | 1857 |
| 1858 HConstant* size_in_bytes_upper_bound = EstablishElementsAllocationSize( | 1858 if (!elements->has_size_upper_bound()) { |
| 1859 elements_kind, max_length->Integer32Value()); | 1859 HConstant* size_in_bytes_upper_bound = EstablishElementsAllocationSize( |
| 1860 elements->set_size_upper_bound(size_in_bytes_upper_bound); | 1860 elements_kind, max_length->Integer32Value()); |
| 1861 elements->set_size_upper_bound(size_in_bytes_upper_bound); |
| 1862 } |
| 1861 | 1863 |
| 1862 Add<HStoreNamedField>( | 1864 Add<HStoreNamedField>( |
| 1863 result, HObjectAccess::ForJSArrayOffset(JSArray::kElementsOffset), | 1865 result, HObjectAccess::ForJSArrayOffset(JSArray::kElementsOffset), |
| 1864 elements); | 1866 elements); |
| 1865 | 1867 |
| 1866 // Initialize the elements contents with undefined. | 1868 // Initialize the elements contents with undefined. |
| 1867 BuildFillElementsWithValue( | 1869 BuildFillElementsWithValue( |
| 1868 elements, elements_kind, graph()->GetConstant0(), length, | 1870 elements, elements_kind, graph()->GetConstant0(), length, |
| 1869 graph()->GetConstantUndefined()); | 1871 graph()->GetConstantUndefined()); |
| 1870 | 1872 |
| (...skipping 10622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12493 if (ShouldProduceTraceOutput()) { | 12495 if (ShouldProduceTraceOutput()) { |
| 12494 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 12496 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 12495 } | 12497 } |
| 12496 | 12498 |
| 12497 #ifdef DEBUG | 12499 #ifdef DEBUG |
| 12498 graph_->Verify(false); // No full verify. | 12500 graph_->Verify(false); // No full verify. |
| 12499 #endif | 12501 #endif |
| 12500 } | 12502 } |
| 12501 | 12503 |
| 12502 } } // namespace v8::internal | 12504 } } // namespace v8::internal |
| OLD | NEW |