| OLD | NEW | 
|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 <algorithm> | 5 #include <algorithm> | 
| 6 | 6 | 
| 7 #include "src/v8.h" | 7 #include "src/v8.h" | 
| 8 | 8 | 
| 9 #include "src/base/atomicops.h" | 9 #include "src/base/atomicops.h" | 
| 10 #include "src/counters.h" | 10 #include "src/counters.h" | 
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 512                 Address obj_address = heap_object->address(); | 512                 Address obj_address = heap_object->address(); | 
| 513                 Address start_address = obj_address + HeapObject::kHeaderSize; | 513                 Address start_address = obj_address + HeapObject::kHeaderSize; | 
| 514                 Address end_address = obj_address + heap_object->Size(); | 514                 Address end_address = obj_address + heap_object->Size(); | 
| 515 #if V8_DOUBLE_FIELDS_UNBOXING | 515 #if V8_DOUBLE_FIELDS_UNBOXING | 
| 516                 InobjectPropertiesHelper helper(heap_object->map()); | 516                 InobjectPropertiesHelper helper(heap_object->map()); | 
| 517                 bool has_only_tagged_fields = helper.all_fields_tagged(); | 517                 bool has_only_tagged_fields = helper.all_fields_tagged(); | 
| 518 | 518 | 
| 519                 if (!has_only_tagged_fields) { | 519                 if (!has_only_tagged_fields) { | 
| 520                   for (Address slot = start_address; slot < end_address; | 520                   for (Address slot = start_address; slot < end_address; | 
| 521                        slot += kPointerSize) { | 521                        slot += kPointerSize) { | 
| 522                     if (helper.IsTagged(slot - obj_address)) { | 522                     if (helper.IsTagged(static_cast<int>(slot - obj_address))) { | 
| 523                       // TODO(ishell): call this once for contiguous region | 523                       // TODO(ishell): call this once for contiguous region | 
| 524                       // of tagged fields. | 524                       // of tagged fields. | 
| 525                       FindPointersToNewSpaceInRegion(slot, slot + kPointerSize, | 525                       FindPointersToNewSpaceInRegion(slot, slot + kPointerSize, | 
| 526                                                      slot_callback, clear_maps); | 526                                                      slot_callback, clear_maps); | 
| 527                     } | 527                     } | 
| 528                   } | 528                   } | 
| 529                 } else { | 529                 } else { | 
| 530 #endif | 530 #endif | 
| 531                   // Object has only tagged fields. | 531                   // Object has only tagged fields. | 
| 532                   FindPointersToNewSpaceInRegion(start_address, end_address, | 532                   FindPointersToNewSpaceInRegion(start_address, end_address, | 
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 594     } | 594     } | 
| 595     old_buffer_is_sorted_ = false; | 595     old_buffer_is_sorted_ = false; | 
| 596     old_buffer_is_filtered_ = false; | 596     old_buffer_is_filtered_ = false; | 
| 597     *old_top_++ = reinterpret_cast<Address>(int_addr << kPointerSizeLog2); | 597     *old_top_++ = reinterpret_cast<Address>(int_addr << kPointerSizeLog2); | 
| 598     DCHECK(old_top_ <= old_limit_); | 598     DCHECK(old_top_ <= old_limit_); | 
| 599   } | 599   } | 
| 600   heap_->isolate()->counters()->store_buffer_compactions()->Increment(); | 600   heap_->isolate()->counters()->store_buffer_compactions()->Increment(); | 
| 601 } | 601 } | 
| 602 } | 602 } | 
| 603 }  // namespace v8::internal | 603 }  // namespace v8::internal | 
| OLD | NEW | 
|---|