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

Side by Side Diff: src/full-codegen/mips64/full-codegen-mips64.cc

Issue 1773593002: [compiler] Remove support for concurrent OSR. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix release builds. Created 4 years, 9 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/full-codegen/mips/full-codegen-mips.cc ('k') | src/full-codegen/ppc/full-codegen-ppc.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 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 #if V8_TARGET_ARCH_MIPS64 5 #if V8_TARGET_ARCH_MIPS64
6 6
7 // Note on Mips implementation: 7 // Note on Mips implementation:
8 // 8 //
9 // The result_register() for mips is the 'v0' register, which is defined 9 // The result_register() for mips is the 'v0' register, which is defined
10 // by the ABI to contain function return values. However, the first 10 // by the ABI to contain function return values. However, the first
(...skipping 4117 matching lines...) Expand 10 before | Expand all | Expand 10 after
4128 // lui t9, <interrupt stub address> upper 4128 // lui t9, <interrupt stub address> upper
4129 // ori t9, <interrupt stub address> u-middle 4129 // ori t9, <interrupt stub address> u-middle
4130 // dsll t9, t9, 16 4130 // dsll t9, t9, 16
4131 // ori t9, <interrupt stub address> lower 4131 // ori t9, <interrupt stub address> lower
4132 // jalr t9 4132 // jalr t9
4133 // nop 4133 // nop
4134 // ok-label ----- pc_after points here 4134 // ok-label ----- pc_after points here
4135 patcher.masm()->slt(at, a3, zero_reg); 4135 patcher.masm()->slt(at, a3, zero_reg);
4136 break; 4136 break;
4137 case ON_STACK_REPLACEMENT: 4137 case ON_STACK_REPLACEMENT:
4138 case OSR_AFTER_STACK_CHECK:
4139 // addiu at, zero_reg, 1 4138 // addiu at, zero_reg, 1
4140 // beq at, zero_reg, ok ;; Not changed 4139 // beq at, zero_reg, ok ;; Not changed
4141 // lui t9, <on-stack replacement address> upper 4140 // lui t9, <on-stack replacement address> upper
4142 // ori t9, <on-stack replacement address> middle 4141 // ori t9, <on-stack replacement address> middle
4143 // dsll t9, t9, 16 4142 // dsll t9, t9, 16
4144 // ori t9, <on-stack replacement address> lower 4143 // ori t9, <on-stack replacement address> lower
4145 // jalr t9 ;; Not changed 4144 // jalr t9 ;; Not changed
4146 // nop ;; Not changed 4145 // nop ;; Not changed
4147 // ok-label ----- pc_after points here 4146 // ok-label ----- pc_after points here
4148 patcher.masm()->daddiu(at, zero_reg, 1); 4147 patcher.masm()->daddiu(at, zero_reg, 1);
4149 break; 4148 break;
4150 } 4149 }
4151 Address pc_immediate_load_address = pc - 6 * kInstrSize; 4150 Address pc_immediate_load_address = pc - 6 * kInstrSize;
4152 // Replace the stack check address in the load-immediate (6-instr sequence) 4151 // Replace the stack check address in the load-immediate (6-instr sequence)
4153 // with the entry address of the replacement code. 4152 // with the entry address of the replacement code.
4154 Assembler::set_target_address_at(isolate, pc_immediate_load_address, 4153 Assembler::set_target_address_at(isolate, pc_immediate_load_address,
4155 replacement_code->entry()); 4154 replacement_code->entry());
4156 4155
4157 unoptimized_code->GetHeap()->incremental_marking()->RecordCodeTargetPatch( 4156 unoptimized_code->GetHeap()->incremental_marking()->RecordCodeTargetPatch(
4158 unoptimized_code, pc_immediate_load_address, replacement_code); 4157 unoptimized_code, pc_immediate_load_address, replacement_code);
4159 } 4158 }
4160 4159
4161 4160
4162 BackEdgeTable::BackEdgeState BackEdgeTable::GetBackEdgeState( 4161 BackEdgeTable::BackEdgeState BackEdgeTable::GetBackEdgeState(
4163 Isolate* isolate, 4162 Isolate* isolate,
4164 Code* unoptimized_code, 4163 Code* unoptimized_code,
4165 Address pc) { 4164 Address pc) {
4166 static const int kInstrSize = Assembler::kInstrSize; 4165 static const int kInstrSize = Assembler::kInstrSize;
4167 Address branch_address = pc - 8 * kInstrSize; 4166 Address branch_address = pc - 8 * kInstrSize;
4167 #ifdef DEBUG
4168 Address pc_immediate_load_address = pc - 6 * kInstrSize; 4168 Address pc_immediate_load_address = pc - 6 * kInstrSize;
4169 #endif
4169 4170
4170 DCHECK(Assembler::IsBeq(Assembler::instr_at(pc - 7 * kInstrSize))); 4171 DCHECK(Assembler::IsBeq(Assembler::instr_at(pc - 7 * kInstrSize)));
4171 if (!Assembler::IsAddImmediate(Assembler::instr_at(branch_address))) { 4172 if (!Assembler::IsAddImmediate(Assembler::instr_at(branch_address))) {
4172 DCHECK(reinterpret_cast<uint64_t>( 4173 DCHECK(reinterpret_cast<uint64_t>(
4173 Assembler::target_address_at(pc_immediate_load_address)) == 4174 Assembler::target_address_at(pc_immediate_load_address)) ==
4174 reinterpret_cast<uint64_t>( 4175 reinterpret_cast<uint64_t>(
4175 isolate->builtins()->InterruptCheck()->entry())); 4176 isolate->builtins()->InterruptCheck()->entry()));
4176 return INTERRUPT; 4177 return INTERRUPT;
4177 } 4178 }
4178 4179
4179 DCHECK(Assembler::IsAddImmediate(Assembler::instr_at(branch_address))); 4180 DCHECK(Assembler::IsAddImmediate(Assembler::instr_at(branch_address)));
4180 4181
4181 if (reinterpret_cast<uint64_t>(
4182 Assembler::target_address_at(pc_immediate_load_address)) ==
4183 reinterpret_cast<uint64_t>(
4184 isolate->builtins()->OnStackReplacement()->entry())) {
4185 return ON_STACK_REPLACEMENT;
4186 }
4187
4188 DCHECK(reinterpret_cast<uint64_t>( 4182 DCHECK(reinterpret_cast<uint64_t>(
4189 Assembler::target_address_at(pc_immediate_load_address)) == 4183 Assembler::target_address_at(pc_immediate_load_address)) ==
4190 reinterpret_cast<uint64_t>( 4184 reinterpret_cast<uint64_t>(
4191 isolate->builtins()->OsrAfterStackCheck()->entry())); 4185 isolate->builtins()->OnStackReplacement()->entry()));
4192 return OSR_AFTER_STACK_CHECK; 4186 return ON_STACK_REPLACEMENT;
4193 } 4187 }
4194 4188
4195 4189
4196 } // namespace internal 4190 } // namespace internal
4197 } // namespace v8 4191 } // namespace v8
4198 4192
4199 #endif // V8_TARGET_ARCH_MIPS64 4193 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/full-codegen/mips/full-codegen-mips.cc ('k') | src/full-codegen/ppc/full-codegen-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698