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

Side by Side Diff: src/arm/assembler-arm.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/arm/assembler-arm.h ('k') | src/arm64/assembler-arm64.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 (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 al | B26 | L | NegOffset | Register::kCode_fp * B16; 469 al | B26 | L | NegOffset | Register::kCode_fp * B16;
470 const Instr kStrRegFpNegOffsetPattern = 470 const Instr kStrRegFpNegOffsetPattern =
471 al | B26 | NegOffset | Register::kCode_fp * B16; 471 al | B26 | NegOffset | Register::kCode_fp * B16;
472 const Instr kLdrStrInstrTypeMask = 0xffff0000; 472 const Instr kLdrStrInstrTypeMask = 0xffff0000;
473 473
474 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size) 474 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size)
475 : AssemblerBase(isolate, buffer, buffer_size), 475 : AssemblerBase(isolate, buffer, buffer_size),
476 recorded_ast_id_(TypeFeedbackId::None()), 476 recorded_ast_id_(TypeFeedbackId::None()),
477 pending_32_bit_constants_(), 477 pending_32_bit_constants_(),
478 pending_64_bit_constants_(), 478 pending_64_bit_constants_(),
479 constant_pool_builder_(kLdrMaxReachBits, kVldrMaxReachBits), 479 constant_pool_builder_(kLdrMaxReachBits, kVldrMaxReachBits) {
480 positions_recorder_(this) {
481 pending_32_bit_constants_.reserve(kMinNumPendingConstants); 480 pending_32_bit_constants_.reserve(kMinNumPendingConstants);
482 pending_64_bit_constants_.reserve(kMinNumPendingConstants); 481 pending_64_bit_constants_.reserve(kMinNumPendingConstants);
483 reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_); 482 reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_);
484 next_buffer_check_ = 0; 483 next_buffer_check_ = 0;
485 const_pool_blocked_nesting_ = 0; 484 const_pool_blocked_nesting_ = 0;
486 no_const_pool_before_ = 0; 485 no_const_pool_before_ = 0;
487 first_const_pool_32_use_ = -1; 486 first_const_pool_32_use_ = -1;
488 first_const_pool_64_use_ = -1; 487 first_const_pool_64_use_ = -1;
489 last_bound_pos_ = 0; 488 last_bound_pos_ = 0;
490 ClearRecordedAstId(); 489 ClearRecordedAstId();
491 } 490 }
492 491
493 492
494 Assembler::~Assembler() { 493 Assembler::~Assembler() {
495 DCHECK(const_pool_blocked_nesting_ == 0); 494 DCHECK(const_pool_blocked_nesting_ == 0);
496 } 495 }
497 496
498 497
499 void Assembler::GetCode(CodeDesc* desc) { 498 void Assembler::GetCode(CodeDesc* desc) {
500 reloc_info_writer.Finish();
501
502 // Emit constant pool if necessary. 499 // Emit constant pool if necessary.
503 int constant_pool_offset = 0; 500 int constant_pool_offset = 0;
504 if (FLAG_enable_embedded_constant_pool) { 501 if (FLAG_enable_embedded_constant_pool) {
505 constant_pool_offset = EmitEmbeddedConstantPool(); 502 constant_pool_offset = EmitEmbeddedConstantPool();
506 } else { 503 } else {
507 CheckConstPool(true, false); 504 CheckConstPool(true, false);
508 DCHECK(pending_32_bit_constants_.empty()); 505 DCHECK(pending_32_bit_constants_.empty());
509 DCHECK(pending_64_bit_constants_.empty()); 506 DCHECK(pending_64_bit_constants_.empty());
510 } 507 }
511 // Set up code descriptor. 508 // Set up code descriptor.
(...skipping 3392 matching lines...) Expand 10 before | Expand all | Expand 10 after
3904 ClearRecordedAstId(); 3901 ClearRecordedAstId();
3905 } 3902 }
3906 RelocInfo rinfo(isolate(), pc_, rmode, data, NULL); 3903 RelocInfo rinfo(isolate(), pc_, rmode, data, NULL);
3907 reloc_info_writer.Write(&rinfo); 3904 reloc_info_writer.Write(&rinfo);
3908 } 3905 }
3909 3906
3910 3907
3911 ConstantPoolEntry::Access Assembler::ConstantPoolAddEntry(int position, 3908 ConstantPoolEntry::Access Assembler::ConstantPoolAddEntry(int position,
3912 RelocInfo::Mode rmode, 3909 RelocInfo::Mode rmode,
3913 intptr_t value) { 3910 intptr_t value) {
3914 DCHECK(rmode != RelocInfo::COMMENT && rmode != RelocInfo::POSITION && 3911 DCHECK(rmode != RelocInfo::COMMENT && rmode != RelocInfo::CONST_POOL &&
3915 rmode != RelocInfo::STATEMENT_POSITION && 3912 rmode != RelocInfo::NONE64);
3916 rmode != RelocInfo::CONST_POOL && rmode != RelocInfo::NONE64);
3917 bool sharing_ok = RelocInfo::IsNone(rmode) || 3913 bool sharing_ok = RelocInfo::IsNone(rmode) ||
3918 !(serializer_enabled() || rmode < RelocInfo::CELL); 3914 !(serializer_enabled() || rmode < RelocInfo::CELL);
3919 if (FLAG_enable_embedded_constant_pool) { 3915 if (FLAG_enable_embedded_constant_pool) {
3920 return constant_pool_builder_.AddEntry(position, value, sharing_ok); 3916 return constant_pool_builder_.AddEntry(position, value, sharing_ok);
3921 } else { 3917 } else {
3922 DCHECK(pending_32_bit_constants_.size() < kMaxNumPending32Constants); 3918 DCHECK(pending_32_bit_constants_.size() < kMaxNumPending32Constants);
3923 if (pending_32_bit_constants_.empty()) { 3919 if (pending_32_bit_constants_.empty()) {
3924 first_const_pool_32_use_ = position; 3920 first_const_pool_32_use_ = position;
3925 } 3921 }
3926 ConstantPoolEntry entry(position, value, sharing_ok); 3922 ConstantPoolEntry entry(position, value, sharing_ok);
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
4255 DCHECK(is_uint12(offset)); 4251 DCHECK(is_uint12(offset));
4256 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); 4252 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset));
4257 } 4253 }
4258 } 4254 }
4259 4255
4260 4256
4261 } // namespace internal 4257 } // namespace internal
4262 } // namespace v8 4258 } // namespace v8
4263 4259
4264 #endif // V8_TARGET_ARCH_ARM 4260 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.h ('k') | src/arm64/assembler-arm64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698