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

Side by Side Diff: runtime/vm/object.cc

Issue 1864143002: Add instruction tags to saved ICData (debug mode only). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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 | « runtime/vm/object.h ('k') | runtime/vm/raw_object.h » ('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 (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/object.h" 5 #include "vm/object.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/cpu.h" 10 #include "vm/cpu.h"
(...skipping 12192 matching lines...) Expand 10 before | Expand all | Expand 10 after
12203 StoreNonPointer(&raw_ptr()->deopt_id_, value); 12203 StoreNonPointer(&raw_ptr()->deopt_id_, value);
12204 } 12204 }
12205 12205
12206 12206
12207 void ICData::set_ic_data_array(const Array& value) const { 12207 void ICData::set_ic_data_array(const Array& value) const {
12208 ASSERT(!value.IsNull()); 12208 ASSERT(!value.IsNull());
12209 StorePointer(&raw_ptr()->ic_data_, value.raw()); 12209 StorePointer(&raw_ptr()->ic_data_, value.raw());
12210 } 12210 }
12211 12211
12212 12212
12213 #if defined(TAG_IC_DATA)
12214 void ICData::set_tag(intptr_t value) const {
12215 StoreNonPointer(&raw_ptr()->tag_, value);
12216 }
12217 #endif
12218
12213 intptr_t ICData::NumArgsTested() const { 12219 intptr_t ICData::NumArgsTested() const {
12214 return NumArgsTestedBits::decode(raw_ptr()->state_bits_); 12220 return NumArgsTestedBits::decode(raw_ptr()->state_bits_);
12215 } 12221 }
12216 12222
12217 12223
12218 void ICData::SetNumArgsTested(intptr_t value) const { 12224 void ICData::SetNumArgsTested(intptr_t value) const {
12219 ASSERT(Utils::IsUint(2, value)); 12225 ASSERT(Utils::IsUint(2, value));
12220 StoreNonPointer(&raw_ptr()->state_bits_, 12226 StoreNonPointer(&raw_ptr()->state_bits_,
12221 NumArgsTestedBits::update(value, raw_ptr()->state_bits_)); 12227 NumArgsTestedBits::update(value, raw_ptr()->state_bits_));
12222 } 12228 }
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
12783 ICData::InstanceSize(), 12789 ICData::InstanceSize(),
12784 Heap::kOld); 12790 Heap::kOld);
12785 NoSafepointScope no_safepoint; 12791 NoSafepointScope no_safepoint;
12786 result ^= raw; 12792 result ^= raw;
12787 } 12793 }
12788 result.set_owner(owner); 12794 result.set_owner(owner);
12789 result.set_target_name(target_name); 12795 result.set_target_name(target_name);
12790 result.set_arguments_descriptor(arguments_descriptor); 12796 result.set_arguments_descriptor(arguments_descriptor);
12791 result.set_deopt_id(deopt_id); 12797 result.set_deopt_id(deopt_id);
12792 result.set_state_bits(0); 12798 result.set_state_bits(0);
12799 #if defined(TAG_IC_DATA)
12800 result.set_tag(-1);
12801 #endif
12793 result.SetNumArgsTested(num_args_tested); 12802 result.SetNumArgsTested(num_args_tested);
12794 return result.raw(); 12803 return result.raw();
12795 } 12804 }
12796 12805
12797 12806
12798 RawICData* ICData::New() { 12807 RawICData* ICData::New() {
12799 ICData& result = ICData::Handle(); 12808 ICData& result = ICData::Handle();
12800 { 12809 {
12801 // IC data objects are long living objects, allocate them in old generation. 12810 // IC data objects are long living objects, allocate them in old generation.
12802 RawObject* raw = Object::Allocate(ICData::kClassId, 12811 RawObject* raw = Object::Allocate(ICData::kClassId,
12803 ICData::InstanceSize(), 12812 ICData::InstanceSize(),
12804 Heap::kOld); 12813 Heap::kOld);
12805 NoSafepointScope no_safepoint; 12814 NoSafepointScope no_safepoint;
12806 result ^= raw; 12815 result ^= raw;
12807 } 12816 }
12808 result.set_deopt_id(Thread::kNoDeoptId); 12817 result.set_deopt_id(Thread::kNoDeoptId);
12809 result.set_state_bits(0); 12818 result.set_state_bits(0);
12819 #if defined(TAG_IC_DATA)
12820 result.set_tag(-1);
12821 #endif
12810 return result.raw(); 12822 return result.raw();
12811 } 12823 }
12812 12824
12813 12825
12814 RawICData* ICData::New(const Function& owner, 12826 RawICData* ICData::New(const Function& owner,
12815 const String& target_name, 12827 const String& target_name,
12816 const Array& arguments_descriptor, 12828 const Array& arguments_descriptor,
12817 intptr_t deopt_id, 12829 intptr_t deopt_id,
12818 intptr_t num_args_tested) { 12830 intptr_t num_args_tested) {
12819 Zone* zone = Thread::Current()->zone(); 12831 Zone* zone = Thread::Current()->zone();
(...skipping 9042 matching lines...) Expand 10 before | Expand all | Expand 10 after
21862 return UserTag::null(); 21874 return UserTag::null();
21863 } 21875 }
21864 21876
21865 21877
21866 const char* UserTag::ToCString() const { 21878 const char* UserTag::ToCString() const {
21867 const String& tag_label = String::Handle(label()); 21879 const String& tag_label = String::Handle(label());
21868 return tag_label.ToCString(); 21880 return tag_label.ToCString();
21869 } 21881 }
21870 21882
21871 } // namespace dart 21883 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698