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

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

Issue 247373002: CallICStub with a "never patch" approach until customization. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Ports. Created 6 years, 8 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
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 // jumping to the target address intended by the caller and that was 233 // jumping to the target address intended by the caller and that was
234 // overwritten by the address of DebugBreakXXX. 234 // overwritten by the address of DebugBreakXXX.
235 ExternalReference after_break_target(Debug_Address::AfterBreakTarget(), 235 ExternalReference after_break_target(Debug_Address::AfterBreakTarget(),
236 masm->isolate()); 236 masm->isolate());
237 __ Mov(scratch, after_break_target); 237 __ Mov(scratch, after_break_target);
238 __ Ldr(scratch, MemOperand(scratch)); 238 __ Ldr(scratch, MemOperand(scratch));
239 __ Br(scratch); 239 __ Br(scratch);
240 } 240 }
241 241
242 242
243 void Debug::GenerateCallICStubDebugBreak(MacroAssembler* masm) {
244 // Register state for CallICStub
245 // ----------- S t a t e -------------
246 // -- x1 : function
247 // -- x3 : slot in feedback array
248 // -----------------------------------
249 Generate_DebugBreakCallHelper(masm, x1.Bit() | x3.Bit(), 0, x10);
250 }
251
252
243 void Debug::GenerateLoadICDebugBreak(MacroAssembler* masm) { 253 void Debug::GenerateLoadICDebugBreak(MacroAssembler* masm) {
244 // Calling convention for IC load (from ic-arm.cc). 254 // Calling convention for IC load (from ic-arm.cc).
245 // ----------- S t a t e ------------- 255 // ----------- S t a t e -------------
246 // -- x2 : name 256 // -- x2 : name
247 // -- lr : return address 257 // -- lr : return address
248 // -- x0 : receiver 258 // -- x0 : receiver
249 // -- [sp] : receiver 259 // -- [sp] : receiver
250 // ----------------------------------- 260 // -----------------------------------
251 // Registers x0 and x2 contain objects that need to be pushed on the 261 // Registers x0 and x2 contain objects that need to be pushed on the
252 // expression stack of the fake JS frame. 262 // expression stack of the fake JS frame.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 299
290 void Debug::GenerateCompareNilICDebugBreak(MacroAssembler* masm) { 300 void Debug::GenerateCompareNilICDebugBreak(MacroAssembler* masm) {
291 // Register state for CompareNil IC 301 // Register state for CompareNil IC
292 // ----------- S t a t e ------------- 302 // ----------- S t a t e -------------
293 // -- r0 : value 303 // -- r0 : value
294 // ----------------------------------- 304 // -----------------------------------
295 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10); 305 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10);
296 } 306 }
297 307
298 308
299 void Debug::GenerateCallICDebugBreak(MacroAssembler* masm) {
300 // Calling convention for IC call (from ic-arm.cc)
301 // ----------- S t a t e -------------
302 // -- x2 : name
303 // -----------------------------------
304 Generate_DebugBreakCallHelper(masm, x2.Bit(), 0, x10);
305 }
306
307
308 void Debug::GenerateReturnDebugBreak(MacroAssembler* masm) { 309 void Debug::GenerateReturnDebugBreak(MacroAssembler* masm) {
309 // In places other than IC call sites it is expected that r0 is TOS which 310 // In places other than IC call sites it is expected that r0 is TOS which
310 // is an object - this is not generally the case so this should be used with 311 // is an object - this is not generally the case so this should be used with
311 // care. 312 // care.
312 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10); 313 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10);
313 } 314 }
314 315
315 316
316 void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) { 317 void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) {
317 // Register state for CallFunctionStub (from code-stubs-arm64.cc). 318 // Register state for CallFunctionStub (from code-stubs-arm64.cc).
318 // ----------- S t a t e ------------- 319 // ----------- S t a t e -------------
319 // -- x1 : function 320 // -- x1 : function
320 // ----------------------------------- 321 // -----------------------------------
321 Generate_DebugBreakCallHelper(masm, x1.Bit(), 0, x10); 322 Generate_DebugBreakCallHelper(masm, x1.Bit(), 0, x10);
322 } 323 }
323 324
324 325
325 void Debug::GenerateCallFunctionStubRecordDebugBreak(MacroAssembler* masm) {
326 // Register state for CallFunctionStub (from code-stubs-arm64.cc).
327 // ----------- S t a t e -------------
328 // -- x1 : function
329 // -- x2 : feedback array
330 // -- x3 : slot in feedback array
331 // -----------------------------------
332 Generate_DebugBreakCallHelper(masm, x1.Bit() | x2.Bit() | x3.Bit(), 0, x10);
333 }
334
335
336 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) { 326 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) {
337 // Calling convention for CallConstructStub (from code-stubs-arm64.cc). 327 // Calling convention for CallConstructStub (from code-stubs-arm64.cc).
338 // ----------- S t a t e ------------- 328 // ----------- S t a t e -------------
339 // -- x0 : number of arguments (not smi) 329 // -- x0 : number of arguments (not smi)
340 // -- x1 : constructor function 330 // -- x1 : constructor function
341 // ----------------------------------- 331 // -----------------------------------
342 Generate_DebugBreakCallHelper(masm, x1.Bit(), x0.Bit(), x10); 332 Generate_DebugBreakCallHelper(masm, x1.Bit(), x0.Bit(), x10);
343 } 333 }
344 334
345 335
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 masm->Abort(kLiveEditFrameDroppingIsNotSupportedOnARM64); 374 masm->Abort(kLiveEditFrameDroppingIsNotSupportedOnARM64);
385 } 375 }
386 376
387 const bool Debug::kFrameDropperSupported = false; 377 const bool Debug::kFrameDropperSupported = false;
388 378
389 #endif // ENABLE_DEBUGGER_SUPPORT 379 #endif // ENABLE_DEBUGGER_SUPPORT
390 380
391 } } // namespace v8::internal 381 } } // namespace v8::internal
392 382
393 #endif // V8_TARGET_ARCH_ARM64 383 #endif // V8_TARGET_ARCH_ARM64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698