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

Side by Side Diff: src/globals.h

Issue 2694063005: [HEAP] Remove SIMD 128 bit alignment from heap. (Closed)
Patch Set: Restore deleted bounds check in deserializer. Created 3 years, 10 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
« no previous file with comments | « no previous file | src/heap/heap.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef V8_GLOBALS_H_ 5 #ifndef V8_GLOBALS_H_
6 #define V8_GLOBALS_H_ 6 #define V8_GLOBALS_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 const intptr_t kObjectAlignmentMask = kObjectAlignment - 1; 363 const intptr_t kObjectAlignmentMask = kObjectAlignment - 1;
364 364
365 // Desired alignment for pointers. 365 // Desired alignment for pointers.
366 const intptr_t kPointerAlignment = (1 << kPointerSizeLog2); 366 const intptr_t kPointerAlignment = (1 << kPointerSizeLog2);
367 const intptr_t kPointerAlignmentMask = kPointerAlignment - 1; 367 const intptr_t kPointerAlignmentMask = kPointerAlignment - 1;
368 368
369 // Desired alignment for double values. 369 // Desired alignment for double values.
370 const intptr_t kDoubleAlignment = 8; 370 const intptr_t kDoubleAlignment = 8;
371 const intptr_t kDoubleAlignmentMask = kDoubleAlignment - 1; 371 const intptr_t kDoubleAlignmentMask = kDoubleAlignment - 1;
372 372
373 // Desired alignment for 128 bit SIMD values.
374 const intptr_t kSimd128Alignment = 16;
375 const intptr_t kSimd128AlignmentMask = kSimd128Alignment - 1;
376
377 // Desired alignment for generated code is 32 bytes (to improve cache line 373 // Desired alignment for generated code is 32 bytes (to improve cache line
378 // utilization). 374 // utilization).
379 const int kCodeAlignmentBits = 5; 375 const int kCodeAlignmentBits = 5;
380 const intptr_t kCodeAlignment = 1 << kCodeAlignmentBits; 376 const intptr_t kCodeAlignment = 1 << kCodeAlignmentBits;
381 const intptr_t kCodeAlignmentMask = kCodeAlignment - 1; 377 const intptr_t kCodeAlignmentMask = kCodeAlignment - 1;
382 378
383 // The owner field of a page is tagged with the page header tag. We need that 379 // The owner field of a page is tagged with the page header tag. We need that
384 // to find out if a slot is part of a large object. If we mask out the lower 380 // to find out if a slot is part of a large object. If we mask out the lower
385 // 0xfffff bits (1M pages), go to the owner offset, and see that this field 381 // 0xfffff bits (1M pages), go to the owner offset, and see that this field
386 // is tagged with the page header tag, we can just look up the owner. 382 // is tagged with the page header tag, we can just look up the owner.
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 LO_SPACE, // Promoted large objects. 505 LO_SPACE, // Promoted large objects.
510 506
511 FIRST_SPACE = NEW_SPACE, 507 FIRST_SPACE = NEW_SPACE,
512 LAST_SPACE = LO_SPACE, 508 LAST_SPACE = LO_SPACE,
513 FIRST_PAGED_SPACE = OLD_SPACE, 509 FIRST_PAGED_SPACE = OLD_SPACE,
514 LAST_PAGED_SPACE = MAP_SPACE 510 LAST_PAGED_SPACE = MAP_SPACE
515 }; 511 };
516 const int kSpaceTagSize = 3; 512 const int kSpaceTagSize = 3;
517 const int kSpaceTagMask = (1 << kSpaceTagSize) - 1; 513 const int kSpaceTagMask = (1 << kSpaceTagSize) - 1;
518 514
519 enum AllocationAlignment { 515 enum AllocationAlignment { kWordAligned, kDoubleAligned, kDoubleUnaligned };
520 kWordAligned,
521 kDoubleAligned,
522 kDoubleUnaligned,
523 kSimd128Unaligned
524 };
525 516
526 // Possible outcomes for decisions. 517 // Possible outcomes for decisions.
527 enum class Decision : uint8_t { kUnknown, kTrue, kFalse }; 518 enum class Decision : uint8_t { kUnknown, kTrue, kFalse };
528 519
529 inline size_t hash_value(Decision decision) { 520 inline size_t hash_value(Decision decision) {
530 return static_cast<uint8_t>(decision); 521 return static_cast<uint8_t>(decision);
531 } 522 }
532 523
533 inline std::ostream& operator<<(std::ostream& os, Decision decision) { 524 inline std::ostream& operator<<(std::ostream& os, Decision decision) {
534 switch (decision) { 525 switch (decision) {
(...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 } // namespace internal 1344 } // namespace internal
1354 } // namespace v8 1345 } // namespace v8
1355 1346
1356 // Used by js-builtin-reducer to identify whether ReduceArrayIterator() is 1347 // Used by js-builtin-reducer to identify whether ReduceArrayIterator() is
1357 // reducing a JSArray method, or a JSTypedArray method. 1348 // reducing a JSArray method, or a JSTypedArray method.
1358 enum class ArrayIteratorKind { kArray, kTypedArray }; 1349 enum class ArrayIteratorKind { kArray, kTypedArray };
1359 1350
1360 namespace i = v8::internal; 1351 namespace i = v8::internal;
1361 1352
1362 #endif // V8_GLOBALS_H_ 1353 #endif // V8_GLOBALS_H_
OLDNEW
« no previous file with comments | « no previous file | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698