| 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()));
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |