Index: src/assembler.cc |
=================================================================== |
--- src/assembler.cc (revision 9531) |
+++ 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,9 +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))); |
} |
@@ -802,17 +834,6 @@ |
} |
-ExternalReference ExternalReference::the_hole_value_location(Isolate* isolate) { |
- return ExternalReference(isolate->factory()->the_hole_value().location()); |
-} |
- |
- |
-ExternalReference ExternalReference::arguments_marker_location( |
- Isolate* isolate) { |
- return ExternalReference(isolate->factory()->arguments_marker().location()); |
-} |
- |
- |
ExternalReference ExternalReference::roots_address(Isolate* isolate) { |
return ExternalReference(isolate->heap()->roots_address()); |
} |
@@ -840,9 +861,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())); |
} |