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

Side by Side Diff: src/objects-debug.cc

Issue 863633002: Use signaling NaN for holes in fixed double arrays. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Restore SSE2 Created 5 years, 11 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/disasm.h" 7 #include "src/disasm.h"
8 #include "src/disassembler.h" 8 #include "src/disassembler.h"
9 #include "src/heap/objects-visiting.h" 9 #include "src/heap/objects-visiting.h"
10 #include "src/jsregexp.h" 10 #include "src/jsregexp.h"
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 for (int i = 0; i < length(); i++) { 382 for (int i = 0; i < length(); i++) {
383 Object* e = get(i); 383 Object* e = get(i);
384 VerifyPointer(e); 384 VerifyPointer(e);
385 } 385 }
386 } 386 }
387 387
388 388
389 void FixedDoubleArray::FixedDoubleArrayVerify() { 389 void FixedDoubleArray::FixedDoubleArrayVerify() {
390 for (int i = 0; i < length(); i++) { 390 for (int i = 0; i < length(); i++) {
391 if (!is_the_hole(i)) { 391 if (!is_the_hole(i)) {
392 double value = get_scalar(i); 392 uint64_t value = get_representation(i);
393 CHECK(!std::isnan(value) || 393 CHECK((value & V8_UINT64_C(0x7FF8000000000000)) !=
394 (bit_cast<uint64_t>(value) == 394 V8_UINT64_C(0x7FF0000000000000) ||
395 bit_cast<uint64_t>(canonical_not_the_hole_nan_as_double())) || 395 (value & V8_UINT64_C(0x0007FFFFFFFFFFFF)) == V8_UINT64_C(0));
396 ((bit_cast<uint64_t>(value) & Double::kSignMask) != 0));
397 } 396 }
398 } 397 }
399 } 398 }
400 399
401 400
402 void ConstantPoolArray::ConstantPoolArrayVerify() { 401 void ConstantPoolArray::ConstantPoolArrayVerify() {
403 CHECK(IsConstantPoolArray()); 402 CHECK(IsConstantPoolArray());
404 ConstantPoolArray::Iterator code_iter(this, ConstantPoolArray::CODE_PTR); 403 ConstantPoolArray::Iterator code_iter(this, ConstantPoolArray::CODE_PTR);
405 while (!code_iter.is_finished()) { 404 while (!code_iter.is_finished()) {
406 Address code_entry = get_code_ptr_entry(code_iter.next_index()); 405 Address code_entry = get_code_ptr_entry(code_iter.next_index());
(...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after
1251 while (map != heap->roots_array_start()[i++]) { 1250 while (map != heap->roots_array_start()[i++]) {
1252 CHECK_LT(i, Heap::kStrongRootListLength); 1251 CHECK_LT(i, Heap::kStrongRootListLength);
1253 } 1252 }
1254 } 1253 }
1255 } 1254 }
1256 1255
1257 1256
1258 #endif // DEBUG 1257 #endif // DEBUG
1259 1258
1260 } } // namespace v8::internal 1259 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698