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

Unified Diff: src/heap-inl.h

Issue 5798002: Provide baseline for new GC infrastructure. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 10 years 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 side-by-side diff with in-line comments
Download patch
Index: src/heap-inl.h
diff --git a/src/heap-inl.h b/src/heap-inl.h
index 8f6fb989eb71b2d23240f78b0edf593a246c07d9..b1802b5817f5ccd40afa3e5d5979ce5982b47ae4 100644
--- a/src/heap-inl.h
+++ b/src/heap-inl.h
@@ -192,6 +192,7 @@ bool Heap::ShouldBePromoted(Address old_address, int object_size) {
void Heap::RecordWrite(Address address, int offset) {
+ if (FLAG_new_gc) return;
if (new_space_.Contains(address)) return;
ASSERT(!new_space_.FromSpaceContains(address));
SLOW_ASSERT(Contains(address + offset));
@@ -200,6 +201,7 @@ void Heap::RecordWrite(Address address, int offset) {
void Heap::RecordWrites(Address address, int start, int len) {
+ if (FLAG_new_gc) return;
if (new_space_.Contains(address)) return;
ASSERT(!new_space_.FromSpaceContains(address));
Page* page = Page::FromAddress(address);
@@ -253,6 +255,11 @@ void Heap::CopyBlock(Address dst, Address src, int byte_size) {
void Heap::CopyBlockToOldSpaceAndUpdateRegionMarks(Address dst,
Address src,
int byte_size) {
+ if (FLAG_new_gc) {
+ CopyBlock(dst, src, byte_size);
+ return;
+ }
+
ASSERT(IsAligned(byte_size, kPointerSize));
Page* page = Page::FromAddress(dst);
@@ -305,7 +312,11 @@ void Heap::MoveBlockToOldSpaceAndUpdateRegionMarks(Address dst,
ASSERT((dst >= (src + byte_size)) ||
((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize));
- CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
+ if (FLAG_new_gc) {
+ MoveBlock(dst, src, byte_size);
+ } else {
+ CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
+ }
}
« no previous file with comments | « src/heap.cc ('k') | src/ia32/codegen-ia32.cc » ('j') | src/ia32/codegen-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698