Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: src/x64/assembler-x64.cc

Issue 2109613004: Remove position info from relocation info. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@turbosourcepos
Patch Set: fix Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/x64/assembler-x64.h ('k') | src/x87/assembler-x87.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « src/x64/assembler-x64.h ('k') | src/x87/assembler-x87.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698