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/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 13631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13642 } | 13642 } |
13643 | 13643 |
13644 | 13644 |
13645 void Code::ClearInlineCaches(Code::Kind kind) { | 13645 void Code::ClearInlineCaches(Code::Kind kind) { |
13646 ClearInlineCaches(&kind); | 13646 ClearInlineCaches(&kind); |
13647 } | 13647 } |
13648 | 13648 |
13649 | 13649 |
13650 void Code::ClearInlineCaches(Code::Kind* kind) { | 13650 void Code::ClearInlineCaches(Code::Kind* kind) { |
13651 int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET) | | 13651 int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET) | |
13652 RelocInfo::ModeMask(RelocInfo::CONSTRUCT_CALL) | | |
13653 RelocInfo::ModeMask(RelocInfo::CODE_TARGET_WITH_ID); | 13652 RelocInfo::ModeMask(RelocInfo::CODE_TARGET_WITH_ID); |
13654 for (RelocIterator it(this, mask); !it.done(); it.next()) { | 13653 for (RelocIterator it(this, mask); !it.done(); it.next()) { |
13655 RelocInfo* info = it.rinfo(); | 13654 RelocInfo* info = it.rinfo(); |
13656 Code* target(Code::GetCodeFromTargetAddress(info->target_address())); | 13655 Code* target(Code::GetCodeFromTargetAddress(info->target_address())); |
13657 if (target->is_inline_cache_stub()) { | 13656 if (target->is_inline_cache_stub()) { |
13658 if (kind == NULL || *kind == target->kind()) { | 13657 if (kind == NULL || *kind == target->kind()) { |
13659 IC::Clear(this->GetIsolate(), info->pc(), | 13658 IC::Clear(this->GetIsolate(), info->pc(), |
13660 info->host()->constant_pool()); | 13659 info->host()->constant_pool()); |
13661 } | 13660 } |
13662 } | 13661 } |
(...skipping 5326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18989 if (cell->value() != *new_value) { | 18988 if (cell->value() != *new_value) { |
18990 cell->set_value(*new_value); | 18989 cell->set_value(*new_value); |
18991 Isolate* isolate = cell->GetIsolate(); | 18990 Isolate* isolate = cell->GetIsolate(); |
18992 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 18991 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
18993 isolate, DependentCode::kPropertyCellChangedGroup); | 18992 isolate, DependentCode::kPropertyCellChangedGroup); |
18994 } | 18993 } |
18995 } | 18994 } |
18996 | 18995 |
18997 } // namespace internal | 18996 } // namespace internal |
18998 } // namespace v8 | 18997 } // namespace v8 |
OLD | NEW |