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

Side by Side Diff: src/mips/debug-mips.cc

Issue 260753004: MIPS: CallICStub with a "never patch" approach by default. (Closed) Base URL: https://github.com/v8/v8.git@gbl
Patch Set: 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
« no previous file with comments | « src/mips/code-stubs-mips.cc ('k') | src/mips/full-codegen-mips.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 5
6 6
7 #include "v8.h" 7 #include "v8.h"
8 8
9 #if V8_TARGET_ARCH_MIPS 9 #if V8_TARGET_ARCH_MIPS
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 // Now that the break point has been handled, resume normal execution by 156 // Now that the break point has been handled, resume normal execution by
157 // jumping to the target address intended by the caller and that was 157 // jumping to the target address intended by the caller and that was
158 // overwritten by the address of DebugBreakXXX. 158 // overwritten by the address of DebugBreakXXX.
159 __ li(t9, Operand( 159 __ li(t9, Operand(
160 ExternalReference(Debug_Address::AfterBreakTarget(), masm->isolate()))); 160 ExternalReference(Debug_Address::AfterBreakTarget(), masm->isolate())));
161 __ lw(t9, MemOperand(t9)); 161 __ lw(t9, MemOperand(t9));
162 __ Jump(t9); 162 __ Jump(t9);
163 } 163 }
164 164
165 165
166 void Debug::GenerateCallICStubDebugBreak(MacroAssembler* masm) {
167 // Register state for CallICStub
168 // ----------- S t a t e -------------
169 // -- a1 : function
170 // -- a3 : slot in feedback array (smi)
171 // -----------------------------------
172 Generate_DebugBreakCallHelper(masm, a1.bit() | a3.bit(), 0);
173 }
174
175
166 void Debug::GenerateLoadICDebugBreak(MacroAssembler* masm) { 176 void Debug::GenerateLoadICDebugBreak(MacroAssembler* masm) {
167 // Calling convention for IC load (from ic-mips.cc). 177 // Calling convention for IC load (from ic-mips.cc).
168 // ----------- S t a t e ------------- 178 // ----------- S t a t e -------------
169 // -- a2 : name 179 // -- a2 : name
170 // -- ra : return address 180 // -- ra : return address
171 // -- a0 : receiver 181 // -- a0 : receiver
172 // -- [sp] : receiver 182 // -- [sp] : receiver
173 // ----------------------------------- 183 // -----------------------------------
174 // Registers a0 and a2 contain objects that need to be pushed on the 184 // Registers a0 and a2 contain objects that need to be pushed on the
175 // expression stack of the fake JS frame. 185 // expression stack of the fake JS frame.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 222
213 void Debug::GenerateCompareNilICDebugBreak(MacroAssembler* masm) { 223 void Debug::GenerateCompareNilICDebugBreak(MacroAssembler* masm) {
214 // Register state for CompareNil IC 224 // Register state for CompareNil IC
215 // ----------- S t a t e ------------- 225 // ----------- S t a t e -------------
216 // -- a0 : value 226 // -- a0 : value
217 // ----------------------------------- 227 // -----------------------------------
218 Generate_DebugBreakCallHelper(masm, a0.bit(), 0); 228 Generate_DebugBreakCallHelper(masm, a0.bit(), 0);
219 } 229 }
220 230
221 231
222 void Debug::GenerateCallICDebugBreak(MacroAssembler* masm) {
223 // Calling convention for IC call (from ic-mips.cc).
224 // ----------- S t a t e -------------
225 // -- a2: name
226 // -----------------------------------
227 Generate_DebugBreakCallHelper(masm, a2.bit(), 0);
228 }
229
230
231 void Debug::GenerateReturnDebugBreak(MacroAssembler* masm) { 232 void Debug::GenerateReturnDebugBreak(MacroAssembler* masm) {
232 // In places other than IC call sites it is expected that v0 is TOS which 233 // In places other than IC call sites it is expected that v0 is TOS which
233 // is an object - this is not generally the case so this should be used with 234 // is an object - this is not generally the case so this should be used with
234 // care. 235 // care.
235 Generate_DebugBreakCallHelper(masm, v0.bit(), 0); 236 Generate_DebugBreakCallHelper(masm, v0.bit(), 0);
236 } 237 }
237 238
238 239
239 void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) { 240 void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) {
240 // Register state for CallFunctionStub (from code-stubs-mips.cc). 241 // Register state for CallFunctionStub (from code-stubs-mips.cc).
241 // ----------- S t a t e ------------- 242 // ----------- S t a t e -------------
242 // -- a1 : function 243 // -- a1 : function
243 // ----------------------------------- 244 // -----------------------------------
244 Generate_DebugBreakCallHelper(masm, a1.bit(), 0); 245 Generate_DebugBreakCallHelper(masm, a1.bit(), 0);
245 } 246 }
246 247
247 248
248 void Debug::GenerateCallFunctionStubRecordDebugBreak(MacroAssembler* masm) {
249 // Register state for CallFunctionStub (from code-stubs-mips.cc).
250 // ----------- S t a t e -------------
251 // -- a1 : function
252 // -- a2 : feedback array
253 // -- a3 : slot in feedback array
254 // -----------------------------------
255 Generate_DebugBreakCallHelper(masm, a1.bit() | a2.bit() | a3.bit(), 0);
256 }
257
258
259 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) { 249 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) {
260 // Calling convention for CallConstructStub (from code-stubs-mips.cc). 250 // Calling convention for CallConstructStub (from code-stubs-mips.cc).
261 // ----------- S t a t e ------------- 251 // ----------- S t a t e -------------
262 // -- a0 : number of arguments (not smi) 252 // -- a0 : number of arguments (not smi)
263 // -- a1 : constructor function 253 // -- a1 : constructor function
264 // ----------------------------------- 254 // -----------------------------------
265 Generate_DebugBreakCallHelper(masm, a1.bit() , a0.bit()); 255 Generate_DebugBreakCallHelper(masm, a1.bit() , a0.bit());
266 } 256 }
267 257
268 258
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 } 300 }
311 301
312 302
313 const bool Debug::kFrameDropperSupported = false; 303 const bool Debug::kFrameDropperSupported = false;
314 304
315 #undef __ 305 #undef __
316 306
317 } } // namespace v8::internal 307 } } // namespace v8::internal
318 308
319 #endif // V8_TARGET_ARCH_MIPS 309 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/mips/code-stubs-mips.cc ('k') | src/mips/full-codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698