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

Side by Side Diff: src/arm64/assembler-arm64-inl.h

Issue 261953002: Fix for 3303 MultithreadedParallelIsolates has a race condition. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed ICache arm simulator issue. Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm64/builtins-arm64.cc » ('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 // 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 #ifndef V8_ARM64_ASSEMBLER_ARM64_INL_H_ 5 #ifndef V8_ARM64_ASSEMBLER_ARM64_INL_H_
6 #define V8_ARM64_ASSEMBLER_ARM64_INL_H_ 6 #define V8_ARM64_ASSEMBLER_ARM64_INL_H_
7 7
8 #include "arm64/assembler-arm64.h" 8 #include "arm64/assembler-arm64.h"
9 #include "cpu.h" 9 #include "cpu.h"
10 #include "debug.h" 10 #include "debug.h"
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 ASSERT(rmode_ == RelocInfo::CELL); 708 ASSERT(rmode_ == RelocInfo::CELL);
709 return Cell::FromValueAddress(Memory::Address_at(pc_)); 709 return Cell::FromValueAddress(Memory::Address_at(pc_));
710 } 710 }
711 711
712 712
713 void RelocInfo::set_target_cell(Cell* cell, WriteBarrierMode mode) { 713 void RelocInfo::set_target_cell(Cell* cell, WriteBarrierMode mode) {
714 UNIMPLEMENTED(); 714 UNIMPLEMENTED();
715 } 715 }
716 716
717 717
718 static const int kCodeAgeSequenceSize = 5 * kInstructionSize; 718 static const int kNoCodeAgeSequenceLength = 5 * kInstructionSize;
719 static const int kCodeAgeStubEntryOffset = 3 * kInstructionSize; 719 static const int kCodeAgeStubEntryOffset = 3 * kInstructionSize;
720 720
721 721
722 Handle<Object> RelocInfo::code_age_stub_handle(Assembler* origin) { 722 Handle<Object> RelocInfo::code_age_stub_handle(Assembler* origin) {
723 UNREACHABLE(); // This should never be reached on ARM64. 723 UNREACHABLE(); // This should never be reached on ARM64.
724 return Handle<Object>(); 724 return Handle<Object>();
725 } 725 }
726 726
727 727
728 Code* RelocInfo::code_age_stub() { 728 Code* RelocInfo::code_age_stub() {
729 ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE); 729 ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE);
730 ASSERT(!Code::IsYoungSequence(pc_));
731 // Read the stub entry point from the code age sequence. 730 // Read the stub entry point from the code age sequence.
732 Address stub_entry_address = pc_ + kCodeAgeStubEntryOffset; 731 Address stub_entry_address = pc_ + kCodeAgeStubEntryOffset;
733 return Code::GetCodeFromTargetAddress(Memory::Address_at(stub_entry_address)); 732 return Code::GetCodeFromTargetAddress(Memory::Address_at(stub_entry_address));
734 } 733 }
735 734
736 735
737 void RelocInfo::set_code_age_stub(Code* stub) { 736 void RelocInfo::set_code_age_stub(Code* stub) {
738 ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE); 737 ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE);
739 ASSERT(!Code::IsYoungSequence(pc_)); 738 ASSERT(!Code::IsYoungSequence(stub->GetIsolate(), pc_));
740 // Overwrite the stub entry point in the code age sequence. This is loaded as 739 // Overwrite the stub entry point in the code age sequence. This is loaded as
741 // a literal so there is no need to call FlushICache here. 740 // a literal so there is no need to call FlushICache here.
742 Address stub_entry_address = pc_ + kCodeAgeStubEntryOffset; 741 Address stub_entry_address = pc_ + kCodeAgeStubEntryOffset;
743 Memory::Address_at(stub_entry_address) = stub->instruction_start(); 742 Memory::Address_at(stub_entry_address) = stub->instruction_start();
744 } 743 }
745 744
746 745
747 Address RelocInfo::call_address() { 746 Address RelocInfo::call_address() {
748 ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) || 747 ASSERT((IsJSReturn(rmode()) && IsPatchedReturnSequence()) ||
749 (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence())); 748 (IsDebugBreakSlot(rmode()) && IsPatchedDebugBreakSlotSequence()));
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 1197
1199 1198
1200 void Assembler::ClearRecordedAstId() { 1199 void Assembler::ClearRecordedAstId() {
1201 recorded_ast_id_ = TypeFeedbackId::None(); 1200 recorded_ast_id_ = TypeFeedbackId::None();
1202 } 1201 }
1203 1202
1204 1203
1205 } } // namespace v8::internal 1204 } } // namespace v8::internal
1206 1205
1207 #endif // V8_ARM64_ASSEMBLER_ARM64_INL_H_ 1206 #endif // V8_ARM64_ASSEMBLER_ARM64_INL_H_
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/arm64/builtins-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698