Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(573)

Side by Side Diff: test/unittests/interpreter/constant-array-builder-unittest.cc

Issue 1783483002: [interpreter] Add support for scalable operands. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Re-generate golden files. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/factory.h" 7 #include "src/factory.h"
8 #include "src/handles-inl.h" 8 #include "src/handles-inl.h"
9 #include "src/interpreter/constant-array-builder.h" 9 #include "src/interpreter/constant-array-builder.h"
10 #include "src/isolate.h" 10 #include "src/isolate.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 Handle<Object> object = 102 Handle<Object> object =
103 isolate()->factory()->NewNumberFromSize(2 * k8BitCapacity + i); 103 isolate()->factory()->NewNumberFromSize(2 * k8BitCapacity + i);
104 size_t index = builder.CommitReservedEntry(OperandSize::kByte, object); 104 size_t index = builder.CommitReservedEntry(OperandSize::kByte, object);
105 CHECK_EQ(static_cast<int>(index), k8BitCapacity - reserved + i); 105 CHECK_EQ(static_cast<int>(index), k8BitCapacity - reserved + i);
106 CHECK(builder.At(static_cast<int>(index))->SameValue(*object)); 106 CHECK(builder.At(static_cast<int>(index))->SameValue(*object));
107 } 107 }
108 CHECK_EQ(builder.size(), 2 * k8BitCapacity + reserved); 108 CHECK_EQ(builder.size(), 2 * k8BitCapacity + reserved);
109 } 109 }
110 } 110 }
111 111
112 112 TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithWideReservations) {
113 TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithIdx16Reservations) {
114 for (size_t reserved = 1; reserved < k8BitCapacity; reserved *= 3) { 113 for (size_t reserved = 1; reserved < k8BitCapacity; reserved *= 3) {
115 ConstantArrayBuilder builder(isolate(), zone()); 114 ConstantArrayBuilder builder(isolate(), zone());
116 for (size_t i = 0; i < k8BitCapacity; i++) { 115 for (size_t i = 0; i < k8BitCapacity; i++) {
117 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i); 116 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
118 builder.Insert(object); 117 builder.Insert(object);
119 CHECK(builder.At(i)->SameValue(*object)); 118 CHECK(builder.At(i)->SameValue(*object));
120 CHECK_EQ(builder.size(), i + 1); 119 CHECK_EQ(builder.size(), i + 1);
121 } 120 }
122 for (size_t i = 0; i < reserved; i++) { 121 for (size_t i = 0; i < reserved; i++) {
123 OperandSize operand_size = builder.CreateReservedEntry(); 122 OperandSize operand_size = builder.CreateReservedEntry();
(...skipping 30 matching lines...) Expand all
154 builder.Insert(object); 153 builder.Insert(object);
155 CHECK(builder.At(i)->SameValue(*object)); 154 CHECK(builder.At(i)->SameValue(*object));
156 } 155 }
157 Handle<FixedArray> constant_array = builder.ToFixedArray(); 156 Handle<FixedArray> constant_array = builder.ToFixedArray();
158 CHECK_EQ(constant_array->length(), kNumberOfElements); 157 CHECK_EQ(constant_array->length(), kNumberOfElements);
159 for (size_t i = 0; i < kNumberOfElements; i++) { 158 for (size_t i = 0; i < kNumberOfElements; i++) {
160 CHECK(constant_array->get(static_cast<int>(i))->SameValue(*builder.At(i))); 159 CHECK(constant_array->get(static_cast<int>(i))->SameValue(*builder.At(i)));
161 } 160 }
162 } 161 }
163 162
163 TEST_F(ConstantArrayBuilderTest, ToLargeFixedArray) {
164 ConstantArrayBuilder builder(isolate(), zone());
165 static const size_t kNumberOfElements = 37373;
166 for (size_t i = 0; i < kNumberOfElements; i++) {
167 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
168 builder.Insert(object);
169 CHECK(builder.At(i)->SameValue(*object));
170 }
171 Handle<FixedArray> constant_array = builder.ToFixedArray();
172 CHECK_EQ(constant_array->length(), kNumberOfElements);
173 for (size_t i = 0; i < kNumberOfElements; i++) {
174 CHECK(constant_array->get(static_cast<int>(i))->SameValue(*builder.At(i)));
175 }
176 }
164 177
165 TEST_F(ConstantArrayBuilderTest, GapFilledWhenLowReservationCommitted) { 178 TEST_F(ConstantArrayBuilderTest, GapFilledWhenLowReservationCommitted) {
166 ConstantArrayBuilder builder(isolate(), zone()); 179 ConstantArrayBuilder builder(isolate(), zone());
167 for (size_t i = 0; i < k8BitCapacity; i++) { 180 for (size_t i = 0; i < k8BitCapacity; i++) {
168 OperandSize operand_size = builder.CreateReservedEntry(); 181 OperandSize operand_size = builder.CreateReservedEntry();
169 CHECK(OperandSize::kByte == operand_size); 182 CHECK(OperandSize::kByte == operand_size);
170 CHECK_EQ(builder.size(), 0); 183 CHECK_EQ(builder.size(), 0);
171 } 184 }
172 for (size_t i = 0; i < k8BitCapacity; i++) { 185 for (size_t i = 0; i < k8BitCapacity; i++) {
173 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i); 186 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 Handle<Object> original = builder.At(k8BitCapacity + i); 224 Handle<Object> original = builder.At(k8BitCapacity + i);
212 CHECK(original->SameValue(*reference)); 225 CHECK(original->SameValue(*reference));
213 Handle<Object> duplicate = builder.At(i); 226 Handle<Object> duplicate = builder.At(i);
214 CHECK(duplicate->SameValue(*isolate()->factory()->the_hole_value())); 227 CHECK(duplicate->SameValue(*isolate()->factory()->the_hole_value()));
215 } 228 }
216 } 229 }
217 230
218 } // namespace interpreter 231 } // namespace interpreter
219 } // namespace internal 232 } // namespace internal
220 } // namespace v8 233 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/interpreter/bytecodes-unittest.cc ('k') | test/unittests/interpreter/interpreter-assembler-unittest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698