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

Unified Diff: src/ia32/code-stubs-ia32.cc

Issue 7322012: Fix compilation on ARM and x64. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: Created 9 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: src/ia32/code-stubs-ia32.cc
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
index b52a6c0c1154100abe5a5e3918d63ed1d3ab5e0b..6516c5b629f35ed82d453a318f6ec9a4d7814afa 100644
--- a/src/ia32/code-stubs-ia32.cc
+++ b/src/ia32/code-stubs-ia32.cc
@@ -6258,12 +6258,15 @@ void RecordWriteStub::Generate(MacroAssembler* masm) {
__ bind(&skip_to_incremental_compacting);
GenerateIncremental(masm, INCREMENTAL_COMPACTION);
- if (!masm->isolate()->heap()->incremental_marking()->IsMarking()) {
+ // TODO(gc) ensure that GC can't happen after stub was generated by before
+ // it was added to a stub cache.
+ IncrementalMarking* marking = masm->isolate()->heap()->incremental_marking();
+ if (!marking->IsMarking() || marking->IsCompacting()) {
ASSERT(masm->byte_at(0) == kTwoByteJumpInstruction);
masm->set_byte_at(0, kTwoByteNopInstruction);
}
- if (!masm->isolate()->heap()->incremental_marking()->IsMarking()) {
+ if (!marking->IsMarking()) {
ASSERT(masm->byte_at(2) == kFiveByteJumpInstruction);
masm->set_byte_at(2, kFiveByteNopInstruction);
}
@@ -6311,9 +6314,7 @@ void RecordWriteStub::GenerateIncremental(MacroAssembler* masm, Mode mode) {
}
-void RecordWriteStub::InformIncrementalMarker(
- MacroAssembler* masm,
- RecordWriteStub::Mode mode) {
+void RecordWriteStub::InformIncrementalMarker(MacroAssembler* masm, Mode mode) {
regs_.SaveCallerSaveRegisters(masm, save_fp_regs_mode_);
int argument_count = 3;
__ PrepareCallCFunction(argument_count, regs_.scratch0());
@@ -6348,8 +6349,8 @@ void RecordWriteStub::InformIncrementalMarker(
void RecordWriteStub::CheckNeedsToInformIncrementalMarker(
MacroAssembler* masm,
- RecordWriteStub::OnNoNeedToInformIncrementalMarker on_no_need,
- RecordWriteStub::Mode mode) {
+ OnNoNeedToInformIncrementalMarker on_no_need,
+ Mode mode) {
Label object_is_black, need_incremental, need_incremental_pop_object;
// Let's look at the color of the object: If it is not black we don't have
« no previous file with comments | « src/arm/code-stubs-arm.h ('k') | src/incremental-marking.h » ('j') | src/x64/code-stubs-x64.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698