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

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

Issue 2463083002: Remove default monomorphic check code from functions and stubs that do not need it. (Closed)
Patch Set: address comment Created 4 years, 1 month 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 (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/raw_object.h" 5 #include "vm/raw_object.h"
6 6
7 #include "vm/become.h" 7 #include "vm/become.h"
8 #include "vm/class_table.h" 8 #include "vm/class_table.h"
9 #include "vm/dart.h" 9 #include "vm/dart.h"
10 #include "vm/freelist.h" 10 #include "vm/freelist.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 case kCodeCid: { 61 case kCodeCid: {
62 const RawCode* raw_code = reinterpret_cast<const RawCode*>(this); 62 const RawCode* raw_code = reinterpret_cast<const RawCode*>(this);
63 intptr_t pointer_offsets_length = 63 intptr_t pointer_offsets_length =
64 Code::PtrOffBits::decode(raw_code->ptr()->state_bits_); 64 Code::PtrOffBits::decode(raw_code->ptr()->state_bits_);
65 instance_size = Code::InstanceSize(pointer_offsets_length); 65 instance_size = Code::InstanceSize(pointer_offsets_length);
66 break; 66 break;
67 } 67 }
68 case kInstructionsCid: { 68 case kInstructionsCid: {
69 const RawInstructions* raw_instructions = 69 const RawInstructions* raw_instructions =
70 reinterpret_cast<const RawInstructions*>(this); 70 reinterpret_cast<const RawInstructions*>(this);
71 intptr_t instructions_size = raw_instructions->ptr()->size_; 71 intptr_t instructions_size = abs(raw_instructions->ptr()->size_);
72 instance_size = Instructions::InstanceSize(instructions_size); 72 instance_size = Instructions::InstanceSize(instructions_size);
73 break; 73 break;
74 } 74 }
75 case kContextCid: { 75 case kContextCid: {
76 const RawContext* raw_context = 76 const RawContext* raw_context =
77 reinterpret_cast<const RawContext*>(this); 77 reinterpret_cast<const RawContext*>(this);
78 intptr_t num_variables = raw_context->ptr()->num_variables_; 78 intptr_t num_variables = raw_context->ptr()->num_variables_;
79 instance_size = Context::InstanceSize(num_variables); 79 instance_size = Context::InstanceSize(num_variables);
80 break; 80 break;
81 } 81 }
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 visitor->VisitPointer(&(first + i)->raw_obj_); 567 visitor->VisitPointer(&(first + i)->raw_obj_);
568 } 568 }
569 } 569 }
570 return ObjectPool::InstanceSize(raw_obj->ptr()->length_); 570 return ObjectPool::InstanceSize(raw_obj->ptr()->length_);
571 } 571 }
572 572
573 573
574 intptr_t RawInstructions::VisitInstructionsPointers( 574 intptr_t RawInstructions::VisitInstructionsPointers(
575 RawInstructions* raw_obj, ObjectPointerVisitor* visitor) { 575 RawInstructions* raw_obj, ObjectPointerVisitor* visitor) {
576 RawInstructions* obj = raw_obj->ptr(); 576 RawInstructions* obj = raw_obj->ptr();
577 return Instructions::InstanceSize(obj->size_); 577 return Instructions::InstanceSize(abs(obj->size_));
578 } 578 }
579 579
580 580
581 bool RawInstructions::ContainsPC(RawInstructions* raw_instr, uword pc) { 581 bool RawInstructions::ContainsPC(RawInstructions* raw_instr, uword pc) {
582 uword start_pc = 582 uword start_pc =
583 reinterpret_cast<uword>(raw_instr->ptr()) + Instructions::HeaderSize(); 583 reinterpret_cast<uword>(raw_instr->ptr()) + Instructions::HeaderSize();
584 uword end_pc = start_pc + raw_instr->ptr()->size_; 584 uword end_pc = start_pc + abs(raw_instr->ptr()->size_);
585 ASSERT(end_pc > start_pc); 585 ASSERT(end_pc > start_pc);
586 return (pc >= start_pc) && (pc < end_pc); 586 return (pc >= start_pc) && (pc < end_pc);
587 } 587 }
588 588
589 589
590 intptr_t RawPcDescriptors::VisitPcDescriptorsPointers( 590 intptr_t RawPcDescriptors::VisitPcDescriptorsPointers(
591 RawPcDescriptors* raw_obj, ObjectPointerVisitor* visitor) { 591 RawPcDescriptors* raw_obj, ObjectPointerVisitor* visitor) {
592 return PcDescriptors::InstanceSize(raw_obj->ptr()->length_); 592 return PcDescriptors::InstanceSize(raw_obj->ptr()->length_);
593 } 593 }
594 594
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 intptr_t RawUserTag::VisitUserTagPointers( 971 intptr_t RawUserTag::VisitUserTagPointers(
972 RawUserTag* raw_obj, ObjectPointerVisitor* visitor) { 972 RawUserTag* raw_obj, ObjectPointerVisitor* visitor) {
973 // Make sure that we got here with the tagged pointer as this. 973 // Make sure that we got here with the tagged pointer as this.
974 ASSERT(raw_obj->IsHeapObject()); 974 ASSERT(raw_obj->IsHeapObject());
975 visitor->VisitPointers(raw_obj->from(), raw_obj->to()); 975 visitor->VisitPointers(raw_obj->from(), raw_obj->to());
976 return UserTag::InstanceSize(); 976 return UserTag::InstanceSize();
977 } 977 }
978 978
979 979
980 } // namespace dart 980 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698