| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/x64/assembler-x64.h" | 5 #include "src/x64/assembler-x64.h" | 
| 6 | 6 | 
| 7 #include <cstring> | 7 #include <cstring> | 
| 8 | 8 | 
| 9 #if V8_TARGET_ARCH_X64 | 9 #if V8_TARGET_ARCH_X64 | 
| 10 | 10 | 
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 278 | 278 | 
| 279 | 279 | 
| 280 // ----------------------------------------------------------------------------- | 280 // ----------------------------------------------------------------------------- | 
| 281 // Implementation of Assembler. | 281 // Implementation of Assembler. | 
| 282 | 282 | 
| 283 #ifdef GENERATED_CODE_COVERAGE | 283 #ifdef GENERATED_CODE_COVERAGE | 
| 284 static void InitCoverageLog(); | 284 static void InitCoverageLog(); | 
| 285 #endif | 285 #endif | 
| 286 | 286 | 
| 287 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) | 287 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) | 
| 288     : AssemblerBase(isolate, buffer, buffer_size), | 288     : AssemblerBase(isolate, buffer, buffer_size), code_targets_(100) { | 
| 289       code_targets_(100), | 289 // Clear the buffer in debug mode unless it was provided by the | 
| 290       positions_recorder_(this) { | 290 // caller in which case we can't be sure it's okay to overwrite | 
| 291   // Clear the buffer in debug mode unless it was provided by the | 291 // existing code in it. | 
| 292   // caller in which case we can't be sure it's okay to overwrite |  | 
| 293   // existing code in it. |  | 
| 294 #ifdef DEBUG | 292 #ifdef DEBUG | 
| 295   if (own_buffer_) { | 293   if (own_buffer_) { | 
| 296     memset(buffer_, 0xCC, buffer_size_);  // int3 | 294     memset(buffer_, 0xCC, buffer_size_);  // int3 | 
| 297   } | 295   } | 
| 298 #endif | 296 #endif | 
| 299 | 297 | 
| 300   reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_); | 298   reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_); | 
| 301 | 299 | 
| 302 | 300 | 
| 303 #ifdef GENERATED_CODE_COVERAGE | 301 #ifdef GENERATED_CODE_COVERAGE | 
| 304   InitCoverageLog(); | 302   InitCoverageLog(); | 
| 305 #endif | 303 #endif | 
| 306 } | 304 } | 
| 307 | 305 | 
| 308 | 306 | 
| 309 void Assembler::GetCode(CodeDesc* desc) { | 307 void Assembler::GetCode(CodeDesc* desc) { | 
| 310   // Finalize code (at this point overflow() may be true, but the gap ensures | 308   // Finalize code (at this point overflow() may be true, but the gap ensures | 
| 311   // that we are still not overlapping instructions and relocation info). | 309   // that we are still not overlapping instructions and relocation info). | 
| 312   reloc_info_writer.Finish(); |  | 
| 313   DCHECK(pc_ <= reloc_info_writer.pos());  // No overlap. | 310   DCHECK(pc_ <= reloc_info_writer.pos());  // No overlap. | 
| 314   // Set up code descriptor. | 311   // Set up code descriptor. | 
| 315   desc->buffer = buffer_; | 312   desc->buffer = buffer_; | 
| 316   desc->buffer_size = buffer_size_; | 313   desc->buffer_size = buffer_size_; | 
| 317   desc->instr_size = pc_offset(); | 314   desc->instr_size = pc_offset(); | 
| 318   DCHECK(desc->instr_size > 0);  // Zero-size code objects upset the system. | 315   DCHECK(desc->instr_size > 0);  // Zero-size code objects upset the system. | 
| 319   desc->reloc_size = | 316   desc->reloc_size = | 
| 320       static_cast<int>((buffer_ + buffer_size_) - reloc_info_writer.pos()); | 317       static_cast<int>((buffer_ + buffer_size_) - reloc_info_writer.pos()); | 
| 321   desc->origin = this; | 318   desc->origin = this; | 
| 322   desc->constant_pool_size = 0; | 319   desc->constant_pool_size = 0; | 
| (...skipping 4246 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4569 | 4566 | 
| 4570 bool RelocInfo::IsInConstantPool() { | 4567 bool RelocInfo::IsInConstantPool() { | 
| 4571   return false; | 4568   return false; | 
| 4572 } | 4569 } | 
| 4573 | 4570 | 
| 4574 | 4571 | 
| 4575 }  // namespace internal | 4572 }  // namespace internal | 
| 4576 }  // namespace v8 | 4573 }  // namespace v8 | 
| 4577 | 4574 | 
| 4578 #endif  // V8_TARGET_ARCH_X64 | 4575 #endif  // V8_TARGET_ARCH_X64 | 
| OLD | NEW | 
|---|