| Index: src/x64/assembler-x64.h | 
| diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h | 
| index 0f2f27247ece323e284ead6072a0c37f4afa1f83..852c83807097c00d9dffde4f1c9737e843e77448 100644 | 
| --- a/src/x64/assembler-x64.h | 
| +++ b/src/x64/assembler-x64.h | 
| @@ -38,6 +38,7 @@ | 
| #define V8_X64_ASSEMBLER_X64_H_ | 
|  | 
| #include <deque> | 
| +#include <forward_list> | 
|  | 
| #include "src/assembler.h" | 
| #include "src/x64/sse-instr.h" | 
| @@ -488,12 +489,12 @@ class Assembler : public AssemblerBase { | 
| Assembler(Isolate* isolate, void* buffer, int buffer_size) | 
| : Assembler(IsolateData(isolate), buffer, buffer_size) {} | 
| Assembler(IsolateData isolate_data, void* buffer, int buffer_size); | 
| -  virtual ~Assembler() { } | 
| +  virtual ~Assembler() {} | 
|  | 
| // GetCode emits any pending (non-emitted) code and fills the descriptor | 
| // desc. GetCode() is idempotent; it returns the same result if no other | 
| // Assembler functions are invoked in between GetCode() calls. | 
| -  void GetCode(CodeDesc* desc); | 
| +  void GetCode(Isolate* isolate, CodeDesc* desc); | 
|  | 
| // Read/Modify the code target in the relative branch/call instruction at pc. | 
| // On the x64 architecture, we use relative jumps with a 32-bit displacement | 
| @@ -696,6 +697,21 @@ class Assembler : public AssemblerBase { | 
| // Loads a pointer into a register with a relocation mode. | 
| void movp(Register dst, void* ptr, RelocInfo::Mode rmode); | 
|  | 
| +  // Load a heap number into a register. | 
| +  // The heap number will not be allocated and embedded into the code right | 
| +  // away. Instead, we emit the load of a dummy object. Later, when calling | 
| +  // Assembler::GetCode, the heap number will be allocated and the code will be | 
| +  // patched by replacing the dummy with the actual object. The RelocInfo for | 
| +  // the embedded object gets already recorded correctly when emitting the dummy | 
| +  // move. | 
| +  void movp_heap_number(Register dst, double value); | 
| + | 
| +  // Patch the dummy heap number that we emitted at {pc} during code assembly | 
| +  // with the actual heap object (handle). | 
| +  static void set_heap_number(Handle<HeapObject> number, Address pc) { | 
| +    Memory::Object_Handle_at(pc) = number; | 
| +  } | 
| + | 
| // Loads a 64-bit immediate into a register. | 
| void movq(Register dst, int64_t value, | 
| RelocInfo::Mode rmode = RelocInfo::NONE64); | 
|  |