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

Unified Diff: src/heap-inl.h

Issue 5745005: Provide baseline GC version. (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..eb7974bf6dafedbbb0df4b45fe386add95d32f43 100644
--- a/src/heap-inl.h
+++ b/src/heap-inl.h
@@ -192,19 +192,23 @@ bool Heap::ShouldBePromoted(Address old_address, int object_size) {
void Heap::RecordWrite(Address address, int offset) {
+#ifndef BASELINE_GC
if (new_space_.Contains(address)) return;
ASSERT(!new_space_.FromSpaceContains(address));
SLOW_ASSERT(Contains(address + offset));
Page::FromAddress(address)->MarkRegionDirty(address + offset);
+#endif
}
void Heap::RecordWrites(Address address, int start, int len) {
+#ifndef BASELINE_GC
if (new_space_.Contains(address)) return;
ASSERT(!new_space_.FromSpaceContains(address));
Page* page = Page::FromAddress(address);
page->SetRegionMarks(page->GetRegionMarks() |
page->GetRegionMaskForSpan(address + start, len * kPointerSize));
+#endif
}
@@ -253,6 +257,7 @@ void Heap::CopyBlock(Address dst, Address src, int byte_size) {
void Heap::CopyBlockToOldSpaceAndUpdateRegionMarks(Address dst,
Address src,
int byte_size) {
+#ifndef BASELINE_GC
ASSERT(IsAligned(byte_size, kPointerSize));
Page* page = Page::FromAddress(dst);
@@ -272,6 +277,9 @@ void Heap::CopyBlockToOldSpaceAndUpdateRegionMarks(Address dst,
}
page->SetRegionMarks(marks);
+#else
+ CopyBlock(dst, src, byte_size);
+#endif
}
@@ -305,7 +313,11 @@ void Heap::MoveBlockToOldSpaceAndUpdateRegionMarks(Address dst,
ASSERT((dst >= (src + byte_size)) ||
((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize));
+#ifndef BASELINE_GC
CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
+#else
+ MoveBlock(dst, src, byte_size);
+#endif
}
« 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