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

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

Issue 224903005: Reland "create a function call IC" (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Comments. 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
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/arm64/full-codegen-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 // 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 // -- x2 : feedback array
248 // -- x3 : slot in feedback array
249 // -----------------------------------
250 Generate_DebugBreakCallHelper(masm, x1.Bit() | x2.Bit() | x3.Bit(), 0, x10);
251 }
252
253
243 void Debug::GenerateLoadICDebugBreak(MacroAssembler* masm) { 254 void Debug::GenerateLoadICDebugBreak(MacroAssembler* masm) {
244 // Calling convention for IC load (from ic-arm.cc). 255 // Calling convention for IC load (from ic-arm.cc).
245 // ----------- S t a t e ------------- 256 // ----------- S t a t e -------------
246 // -- x2 : name 257 // -- x2 : name
247 // -- lr : return address 258 // -- lr : return address
248 // -- x0 : receiver 259 // -- x0 : receiver
249 // -- [sp] : receiver 260 // -- [sp] : receiver
250 // ----------------------------------- 261 // -----------------------------------
251 // Registers x0 and x2 contain objects that need to be pushed on the 262 // Registers x0 and x2 contain objects that need to be pushed on the
252 // expression stack of the fake JS frame. 263 // expression stack of the fake JS frame.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 300
290 void Debug::GenerateCompareNilICDebugBreak(MacroAssembler* masm) { 301 void Debug::GenerateCompareNilICDebugBreak(MacroAssembler* masm) {
291 // Register state for CompareNil IC 302 // Register state for CompareNil IC
292 // ----------- S t a t e ------------- 303 // ----------- S t a t e -------------
293 // -- r0 : value 304 // -- r0 : value
294 // ----------------------------------- 305 // -----------------------------------
295 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10); 306 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10);
296 } 307 }
297 308
298 309
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) { 310 void Debug::GenerateReturnDebugBreak(MacroAssembler* masm) {
309 // In places other than IC call sites it is expected that r0 is TOS which 311 // 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 312 // is an object - this is not generally the case so this should be used with
311 // care. 313 // care.
312 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10); 314 Generate_DebugBreakCallHelper(masm, x0.Bit(), 0, x10);
313 } 315 }
314 316
315 317
316 void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) { 318 void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) {
317 // Register state for CallFunctionStub (from code-stubs-arm64.cc). 319 // Register state for CallFunctionStub (from code-stubs-arm64.cc).
318 // ----------- S t a t e ------------- 320 // ----------- S t a t e -------------
319 // -- x1 : function 321 // -- x1 : function
320 // ----------------------------------- 322 // -----------------------------------
321 Generate_DebugBreakCallHelper(masm, x1.Bit(), 0, x10); 323 Generate_DebugBreakCallHelper(masm, x1.Bit(), 0, x10);
322 } 324 }
323 325
324 326
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) { 327 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) {
337 // Calling convention for CallConstructStub (from code-stubs-arm64.cc). 328 // Calling convention for CallConstructStub (from code-stubs-arm64.cc).
338 // ----------- S t a t e ------------- 329 // ----------- S t a t e -------------
339 // -- x0 : number of arguments (not smi) 330 // -- x0 : number of arguments (not smi)
340 // -- x1 : constructor function 331 // -- x1 : constructor function
341 // ----------------------------------- 332 // -----------------------------------
342 Generate_DebugBreakCallHelper(masm, x1.Bit(), x0.Bit(), x10); 333 Generate_DebugBreakCallHelper(masm, x1.Bit(), x0.Bit(), x10);
343 } 334 }
344 335
345 336
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 masm->Abort(kLiveEditFrameDroppingIsNotSupportedOnARM64); 375 masm->Abort(kLiveEditFrameDroppingIsNotSupportedOnARM64);
385 } 376 }
386 377
387 const bool Debug::kFrameDropperSupported = false; 378 const bool Debug::kFrameDropperSupported = false;
388 379
389 #endif // ENABLE_DEBUGGER_SUPPORT 380 #endif // ENABLE_DEBUGGER_SUPPORT
390 381
391 } } // namespace v8::internal 382 } } // namespace v8::internal
392 383
393 #endif // V8_TARGET_ARCH_ARM64 384 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/arm64/full-codegen-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698