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

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

Issue 2944013002: Remove TypeFeedbackId parameters from assembler and full-code. (Closed)
Patch Set: REBASE+fixes. Created 3 years, 6 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/arm64/assembler-arm64.h ('k') | src/arm64/assembler-arm64-inl.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // 2 //
3 // Redistribution and use in source and binary forms, with or without 3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are 4 // modification, are permitted provided that the following conditions are
5 // met: 5 // met:
6 // 6 //
7 // * Redistributions of source code must retain the above copyright 7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer. 8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above 9 // * Redistributions in binary form must reproduce the above
10 // copyright notice, this list of conditions and the following 10 // copyright notice, this list of conditions and the following
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 } 578 }
579 unique_entries_.clear(); 579 unique_entries_.clear();
580 first_use_ = -1; 580 first_use_ = -1;
581 } 581 }
582 582
583 583
584 // Assembler 584 // Assembler
585 Assembler::Assembler(IsolateData isolate_data, void* buffer, int buffer_size) 585 Assembler::Assembler(IsolateData isolate_data, void* buffer, int buffer_size)
586 : AssemblerBase(isolate_data, buffer, buffer_size), 586 : AssemblerBase(isolate_data, buffer, buffer_size),
587 constpool_(this), 587 constpool_(this),
588 recorded_ast_id_(TypeFeedbackId::None()),
589 unresolved_branches_() { 588 unresolved_branches_() {
590 const_pool_blocked_nesting_ = 0; 589 const_pool_blocked_nesting_ = 0;
591 veneer_pool_blocked_nesting_ = 0; 590 veneer_pool_blocked_nesting_ = 0;
592 Reset(); 591 Reset();
593 } 592 }
594 593
595 594
596 Assembler::~Assembler() { 595 Assembler::~Assembler() {
597 DCHECK(constpool_.IsEmpty()); 596 DCHECK(constpool_.IsEmpty());
598 DCHECK(const_pool_blocked_nesting_ == 0); 597 DCHECK(const_pool_blocked_nesting_ == 0);
599 DCHECK(veneer_pool_blocked_nesting_ == 0); 598 DCHECK(veneer_pool_blocked_nesting_ == 0);
600 } 599 }
601 600
602 601
603 void Assembler::Reset() { 602 void Assembler::Reset() {
604 #ifdef DEBUG 603 #ifdef DEBUG
605 DCHECK((pc_ >= buffer_) && (pc_ < buffer_ + buffer_size_)); 604 DCHECK((pc_ >= buffer_) && (pc_ < buffer_ + buffer_size_));
606 DCHECK(const_pool_blocked_nesting_ == 0); 605 DCHECK(const_pool_blocked_nesting_ == 0);
607 DCHECK(veneer_pool_blocked_nesting_ == 0); 606 DCHECK(veneer_pool_blocked_nesting_ == 0);
608 DCHECK(unresolved_branches_.empty()); 607 DCHECK(unresolved_branches_.empty());
609 memset(buffer_, 0, pc_ - buffer_); 608 memset(buffer_, 0, pc_ - buffer_);
610 #endif 609 #endif
611 pc_ = buffer_; 610 pc_ = buffer_;
612 reloc_info_writer.Reposition(reinterpret_cast<byte*>(buffer_ + buffer_size_), 611 reloc_info_writer.Reposition(reinterpret_cast<byte*>(buffer_ + buffer_size_),
613 reinterpret_cast<byte*>(pc_)); 612 reinterpret_cast<byte*>(pc_));
614 constpool_.Clear(); 613 constpool_.Clear();
615 next_constant_pool_check_ = 0; 614 next_constant_pool_check_ = 0;
616 next_veneer_pool_check_ = kMaxInt; 615 next_veneer_pool_check_ = kMaxInt;
617 no_const_pool_before_ = 0; 616 no_const_pool_before_ = 0;
618 ClearRecordedAstId();
619 } 617 }
620 618
621 void Assembler::set_heap_number(Handle<HeapObject> number, Address pc) { 619 void Assembler::set_heap_number(Handle<HeapObject> number, Address pc) {
622 Memory::Address_at(target_pointer_address_at(pc)) = 620 Memory::Address_at(target_pointer_address_at(pc)) =
623 reinterpret_cast<Address>(number.location()); 621 reinterpret_cast<Address>(number.location());
624 } 622 }
625 623
626 void Assembler::GetCode(Isolate* isolate, CodeDesc* desc) { 624 void Assembler::GetCode(Isolate* isolate, CodeDesc* desc) {
627 // Emit constant pool if necessary. 625 // Emit constant pool if necessary.
628 CheckConstPool(true, false); 626 CheckConstPool(true, false);
(...skipping 4152 matching lines...) Expand 10 before | Expand all | Expand 10 after
4781 BlockConstPoolFor(1); 4779 BlockConstPoolFor(1);
4782 } 4780 }
4783 4781
4784 if (!RelocInfo::IsNone(rmode)) { 4782 if (!RelocInfo::IsNone(rmode)) {
4785 // Don't record external references unless the heap will be serialized. 4783 // Don't record external references unless the heap will be serialized.
4786 if (rmode == RelocInfo::EXTERNAL_REFERENCE && 4784 if (rmode == RelocInfo::EXTERNAL_REFERENCE &&
4787 !serializer_enabled() && !emit_debug_code()) { 4785 !serializer_enabled() && !emit_debug_code()) {
4788 return; 4786 return;
4789 } 4787 }
4790 DCHECK(buffer_space() >= kMaxRelocSize); // too late to grow buffer here 4788 DCHECK(buffer_space() >= kMaxRelocSize); // too late to grow buffer here
4791 if (rmode == RelocInfo::CODE_TARGET_WITH_ID) { 4789 DCHECK(rmode != RelocInfo::CODE_TARGET_WITH_ID);
4792 RelocInfo reloc_info_with_ast_id(reinterpret_cast<byte*>(pc_), rmode, 4790 reloc_info_writer.Write(&rinfo);
4793 RecordedAstId().ToInt(), NULL);
4794 ClearRecordedAstId();
4795 reloc_info_writer.Write(&reloc_info_with_ast_id);
4796 } else {
4797 reloc_info_writer.Write(&rinfo);
4798 }
4799 } 4791 }
4800 } 4792 }
4801 4793
4802 4794
4803 void Assembler::BlockConstPoolFor(int instructions) { 4795 void Assembler::BlockConstPoolFor(int instructions) {
4804 int pc_limit = pc_offset() + instructions * kInstructionSize; 4796 int pc_limit = pc_offset() + instructions * kInstructionSize;
4805 if (no_const_pool_before_ < pc_limit) { 4797 if (no_const_pool_before_ < pc_limit) {
4806 no_const_pool_before_ = pc_limit; 4798 no_const_pool_before_ = pc_limit;
4807 // Make sure the pool won't be blocked for too long. 4799 // Make sure the pool won't be blocked for too long.
4808 DCHECK(pc_limit < constpool_.MaxPcOffset()); 4800 DCHECK(pc_limit < constpool_.MaxPcOffset());
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
5028 movk(scratch, (target_offset >> 32) & 0xFFFF, 32); 5020 movk(scratch, (target_offset >> 32) & 0xFFFF, 32);
5029 DCHECK((target_offset >> 48) == 0); 5021 DCHECK((target_offset >> 48) == 0);
5030 add(rd, rd, scratch); 5022 add(rd, rd, scratch);
5031 } 5023 }
5032 5024
5033 5025
5034 } // namespace internal 5026 } // namespace internal
5035 } // namespace v8 5027 } // namespace v8
5036 5028
5037 #endif // V8_TARGET_ARCH_ARM64 5029 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/assembler-arm64.h ('k') | src/arm64/assembler-arm64-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698