Index: src/x64/assembler-x64.cc |
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc |
index 1f5bea9420e3f3d688021c9d880f226c68ef5fe1..d3e2a4f7215513d7046767478909e9dc46cbf11c 100644 |
--- a/src/x64/assembler-x64.cc |
+++ b/src/x64/assembler-x64.cc |
@@ -346,48 +346,20 @@ bool Operand::AddressUsesRegister(Register reg) const { |
static void InitCoverageLog(); |
#endif |
-Assembler::Assembler(Isolate* arg_isolate, void* buffer, int buffer_size) |
- : AssemblerBase(arg_isolate), |
+Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) |
+ : AssemblerBase(isolate, buffer, buffer_size), |
code_targets_(100), |
positions_recorder_(this) { |
- if (buffer == NULL) { |
- // Do our own buffer management. |
- if (buffer_size <= kMinimalBufferSize) { |
- buffer_size = kMinimalBufferSize; |
- |
- if (isolate() != NULL && isolate()->assembler_spare_buffer() != NULL) { |
- buffer = isolate()->assembler_spare_buffer(); |
- isolate()->set_assembler_spare_buffer(NULL); |
- } |
- } |
- if (buffer == NULL) { |
- buffer_ = NewArray<byte>(buffer_size); |
- } else { |
- buffer_ = static_cast<byte*>(buffer); |
- } |
- buffer_size_ = buffer_size; |
- own_buffer_ = true; |
- } else { |
- // Use externally provided buffer instead. |
- ASSERT(buffer_size > 0); |
- buffer_ = static_cast<byte*>(buffer); |
- buffer_size_ = buffer_size; |
- own_buffer_ = false; |
- } |
- |
// Clear the buffer in debug mode unless it was provided by the |
// caller in which case we can't be sure it's okay to overwrite |
// existing code in it. |
#ifdef DEBUG |
if (own_buffer_) { |
- memset(buffer_, 0xCC, buffer_size); // int3 |
+ memset(buffer_, 0xCC, buffer_size_); // int3 |
} |
#endif |
- // Set up buffer pointers. |
- ASSERT(buffer_ != NULL); |
- pc_ = buffer_; |
- reloc_info_writer.Reposition(buffer_ + buffer_size, pc_); |
+ reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_); |
#ifdef GENERATED_CODE_COVERAGE |
@@ -396,19 +368,6 @@ Assembler::Assembler(Isolate* arg_isolate, void* buffer, int buffer_size) |
} |
-Assembler::~Assembler() { |
- if (own_buffer_) { |
- if (isolate() != NULL && |
- isolate()->assembler_spare_buffer() == NULL && |
- buffer_size_ == kMinimalBufferSize) { |
- isolate()->set_assembler_spare_buffer(buffer_); |
- } else { |
- DeleteArray(buffer_); |
- } |
- } |
-} |
- |
- |
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). |