| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent eeafb26 commit 80f2b67
6 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11,7 +11,7 @@ | |||
| 11 | 11 | #define V8_MAJOR_VERSION 7 | |
| 12 | 12 | #define V8_MINOR_VERSION 8 | |
| 13 | 13 | #define V8_BUILD_NUMBER 279 | |
| 14 | - #define V8_PATCH_LEVEL 12 | ||
| 14 | + #define V8_PATCH_LEVEL 14 | ||
| 15 | 15 | ||
| 16 | 16 | // Use 1 for candidates and 0 otherwise. | |
| 17 | 17 | // (Boolean macro values are not supported by all preprocessors.) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3397,10 +3397,6 @@ void Heap::NotifyObjectLayoutChange(HeapObject object, int size, | |||
| 3397 | 3397 | ->RegisterObjectWithInvalidatedSlots<OLD_TO_OLD>(object, size); | |
| 3398 | 3398 | } | |
| 3399 | 3399 | } | |
| 3400 | - if (MayContainRecordedSlots(object)) { | ||
| 3401 | - MemoryChunk::FromHeapObject(object) | ||
| 3402 | - ->RegisterObjectWithInvalidatedSlots<OLD_TO_NEW>(object, size); | ||
| 3403 | - } | ||
| 3404 | 3400 | #ifdef VERIFY_HEAP | |
| 3405 | 3401 | if (FLAG_verify_heap) { | |
| 3406 | 3402 | DCHECK(pending_layout_change_object_.is_null()); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3419,18 +3419,7 @@ class RememberedSetUpdatingItem : public UpdatingItem { | |||
| 3419 | 3419 | SlotSet::PREFREE_EMPTY_BUCKETS); | |
| 3420 | 3420 | } | |
| 3421 | 3421 | ||
| 3422 | - if (chunk_->invalidated_slots<OLD_TO_NEW>() != nullptr) { | ||
| 3423 | - #ifdef DEBUG | ||
| 3424 | - for (auto object_size : *chunk_->invalidated_slots<OLD_TO_NEW>()) { | ||
| 3425 | - HeapObject object = object_size.first; | ||
| 3426 | - int size = object_size.second; | ||
| 3427 | - DCHECK_LE(object.SizeFromMap(object.map()), size); | ||
| 3428 | - } | ||
| 3429 | - #endif | ||
| 3430 | - // The invalidated slots are not needed after old-to-new slots were | ||
| 3431 | - // processed. | ||
| 3432 | - chunk_->ReleaseInvalidatedSlots<OLD_TO_NEW>(); | ||
| 3433 | - } | ||
| 3422 | + DCHECK_NULL(chunk_->invalidated_slots<OLD_TO_NEW>()); | ||
| 3434 | 3423 | ||
| 3435 | 3424 | if ((updating_mode_ == RememberedSetUpdatingMode::ALL) && | |
| 3436 | 3425 | (chunk_->slot_set<OLD_TO_OLD, AccessMode::NON_ATOMIC>() != nullptr)) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -439,18 +439,7 @@ void Scavenger::ScavengePage(MemoryChunk* page) { | |||
| 439 | 439 | }, | |
| 440 | 440 | SlotSet::KEEP_EMPTY_BUCKETS); | |
| 441 | 441 | ||
| 442 | - if (page->invalidated_slots<OLD_TO_NEW>() != nullptr) { | ||
| 443 | - #ifdef DEBUG | ||
| 444 | - for (auto object_size : *page->invalidated_slots<OLD_TO_NEW>()) { | ||
| 445 | - HeapObject object = object_size.first; | ||
| 446 | - int size = object_size.second; | ||
| 447 | - DCHECK_LE(object.SizeFromMap(object.map()), size); | ||
| 448 | - } | ||
| 449 | - #endif | ||
| 450 | - // The invalidated slots are not needed after old-to-new slots were | ||
| 451 | - // processed. | ||
| 452 | - page->ReleaseInvalidatedSlots<OLD_TO_NEW>(); | ||
| 453 | - } | ||
| 442 | + DCHECK_NULL(page->invalidated_slots<OLD_TO_NEW>()); | ||
| 454 | 443 | ||
| 455 | 444 | RememberedSet<OLD_TO_NEW>::IterateTyped( | |
| 456 | 445 | page, [=](SlotType type, Address addr) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,6 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | 5 | #include "src/ic/ic.h" | |
| 6 | 6 | ||
| 7 | + #include "include/v8config.h" | ||
| 7 | 8 | #include "src/api/api-arguments-inl.h" | |
| 8 | 9 | #include "src/api/api.h" | |
| 9 | 10 | #include "src/ast/ast.h" | |
@@ -651,6 +652,10 @@ void IC::PatchCache(Handle<Name> name, const MaybeObjectHandle& handler) { | |||
| 651 | 652 | } | |
| 652 | 653 | } | |
| 653 | 654 | ||
| 655 | + #if defined(__clang__) && defined(V8_OS_WIN) | ||
| 656 | + // Force function alignment to work around CPU bug: https://crbug.com/968683 | ||
| 657 | + __attribute__((__aligned__(32))) | ||
| 658 | + #endif | ||
| 654 | 659 | void LoadIC::UpdateCaches(LookupIterator* lookup) { | |
| 655 | 660 | Handle<Object> code; | |
| 656 | 661 | if (lookup->state() == LookupIterator::ACCESS_CHECK) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,6 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | 5 | #include "src/objects/lookup.h" | |
| 6 | 6 | ||
| 7 | + #include "include/v8config.h" | ||
| 7 | 8 | #include "src/deoptimizer/deoptimizer.h" | |
| 8 | 9 | #include "src/execution/isolate-inl.h" | |
| 9 | 10 | #include "src/execution/protectors-inl.h" | |
@@ -978,7 +979,12 @@ Handle<Map> LookupIterator::GetFieldOwnerMap() const { | |||
| 978 | 979 | isolate_); | |
| 979 | 980 | } | |
| 980 | 981 | ||
| 981 | - FieldIndex LookupIterator::GetFieldIndex() const { | ||
| 982 | + #if defined(__clang__) && defined(V8_OS_WIN) | ||
| 983 | + // Force function alignment to work around CPU bug: https://crbug.com/968683 | ||
| 984 | + __attribute__((__aligned__(32))) | ||
| 985 | + #endif | ||
| 986 | + FieldIndex | ||
| 987 | + LookupIterator::GetFieldIndex() const { | ||
| 982 | 988 | DCHECK(has_property_); | |
| 983 | 989 | DCHECK(holder_->HasFastProperties(isolate_)); | |
| 984 | 990 | DCHECK_EQ(kField, property_details_.location()); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments