| Index: src/x64/assembler-x64.cc
|
| diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
|
| index b2330b3320b36cafbc2af670e853ea52d6489094..283caf2c832703c5f84a86299edce4f1b715d2a9 100644
|
| --- a/src/x64/assembler-x64.cc
|
| +++ b/src/x64/assembler-x64.cc
|
| @@ -309,11 +309,13 @@ Assembler::Assembler(IsolateData isolate_data, void* buffer, int buffer_size)
|
| reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_);
|
| }
|
|
|
| -
|
| -void Assembler::GetCode(CodeDesc* desc) {
|
| - // Finalize code (at this point overflow() may be true, but the gap ensures
|
| - // that we are still not overlapping instructions and relocation info).
|
| +void Assembler::GetCode(Isolate* isolate, CodeDesc* desc) {
|
| + // At this point overflow() may be true, but the gap ensures
|
| + // that we are still not overlapping instructions and relocation info.
|
| DCHECK(pc_ <= reloc_info_writer.pos()); // No overlap.
|
| +
|
| + AllocateRequestedHeapNumbers(isolate);
|
| +
|
| // Set up code descriptor.
|
| desc->buffer = buffer_;
|
| desc->buffer_size = buffer_size_;
|
| @@ -1538,6 +1540,14 @@ void Assembler::movp(Register dst, void* value, RelocInfo::Mode rmode) {
|
| emitp(value, rmode);
|
| }
|
|
|
| +void Assembler::movp_heap_number(Register dst, double value) {
|
| + EnsureSpace ensure_space(this);
|
| + emit_rex(dst, kPointerSize);
|
| + emit(0xB8 | dst.low_bits());
|
| + RequestHeapNumber(value);
|
| + emitp(nullptr, RelocInfo::EMBEDDED_OBJECT);
|
| +}
|
| +
|
| void Assembler::movq(Register dst, int64_t value, RelocInfo::Mode rmode) {
|
| EnsureSpace ensure_space(this);
|
| emit_rex_64(dst);
|
|
|