Index: src/assembler.cc |
=================================================================== |
--- src/assembler.cc (revision 9327) |
+++ src/assembler.cc (working copy) |
@@ -38,6 +38,7 @@ |
#include "deoptimizer.h" |
#include "execution.h" |
#include "ic-inl.h" |
+#include "incremental-marking.h" |
#include "factory.h" |
#include "runtime.h" |
#include "runtime-profiler.h" |
@@ -47,6 +48,7 @@ |
#include "ast.h" |
#include "regexp-macro-assembler.h" |
#include "platform.h" |
+#include "store-buffer.h" |
// Include native regexp-macro-assembler. |
#ifndef V8_INTERPRETED_REGEXP |
#if V8_TARGET_ARCH_IA32 |
@@ -516,6 +518,7 @@ |
RelocIterator::RelocIterator(Code* code, int mode_mask) { |
+ rinfo_.host_ = code; |
rinfo_.pc_ = code->instruction_start(); |
rinfo_.data_ = 0; |
// Relocation info is read backwards. |
@@ -736,13 +739,38 @@ |
: address_(table_ref.address()) {} |
+ExternalReference ExternalReference:: |
+ incremental_marking_record_write_function(Isolate* isolate) { |
+ return ExternalReference(Redirect( |
+ isolate, |
+ FUNCTION_ADDR(IncrementalMarking::RecordWriteFromCode))); |
+} |
+ |
+ |
+ExternalReference ExternalReference:: |
+ incremental_evacuation_record_write_function(Isolate* isolate) { |
+ return ExternalReference(Redirect( |
+ isolate, |
+ FUNCTION_ADDR(IncrementalMarking::RecordWriteForEvacuationFromCode))); |
+} |
+ |
+ |
+ExternalReference ExternalReference:: |
+ store_buffer_overflow_function(Isolate* isolate) { |
+ return ExternalReference(Redirect( |
+ isolate, |
+ FUNCTION_ADDR(StoreBuffer::StoreBufferOverflow))); |
+} |
+ |
+ |
ExternalReference ExternalReference::flush_icache_function(Isolate* isolate) { |
return ExternalReference(Redirect(isolate, FUNCTION_ADDR(CPU::FlushICache))); |
} |
+ |
ExternalReference ExternalReference::perform_gc_function(Isolate* isolate) { |
- return ExternalReference(Redirect(isolate, |
- FUNCTION_ADDR(Runtime::PerformGC))); |
+ return |
+ ExternalReference(Redirect(isolate, FUNCTION_ADDR(Runtime::PerformGC))); |
} |
@@ -844,9 +872,14 @@ |
} |
+ExternalReference ExternalReference::store_buffer_top(Isolate* isolate) { |
+ return ExternalReference(isolate->heap()->store_buffer()->TopAddress()); |
+} |
+ |
+ |
ExternalReference ExternalReference::new_space_mask(Isolate* isolate) { |
- Address mask = reinterpret_cast<Address>(isolate->heap()->NewSpaceMask()); |
- return ExternalReference(mask); |
+ return ExternalReference(reinterpret_cast<Address>( |
+ isolate->heap()->NewSpaceMask())); |
} |