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

Side by Side Diff: src/ppc/builtins-ppc.cc

Issue 1482153005: PPC: [debugger] flood function for stepping before calling it. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@patch08
Patch Set: Created 5 years 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/ic/ppc/handler-compiler-ppc.cc ('k') | src/ppc/macro-assembler-ppc.h » ('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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_PPC 5 #if V8_TARGET_ARCH_PPC
6 6
7 #include "src/codegen.h" 7 #include "src/codegen.h"
8 #include "src/debug/debug.h" 8 #include "src/debug/debug.h"
9 #include "src/deoptimizer.h" 9 #include "src/deoptimizer.h"
10 #include "src/full-codegen/full-codegen.h" 10 #include "src/full-codegen/full-codegen.h"
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 // Call the function. 565 // Call the function.
566 // r3: number of arguments 566 // r3: number of arguments
567 // r4: constructor function 567 // r4: constructor function
568 // r6: new target 568 // r6: new target
569 if (is_api_function) { 569 if (is_api_function) {
570 __ LoadP(cp, FieldMemOperand(r4, JSFunction::kContextOffset)); 570 __ LoadP(cp, FieldMemOperand(r4, JSFunction::kContextOffset));
571 Handle<Code> code = masm->isolate()->builtins()->HandleApiCallConstruct(); 571 Handle<Code> code = masm->isolate()->builtins()->HandleApiCallConstruct();
572 __ Call(code, RelocInfo::CODE_TARGET); 572 __ Call(code, RelocInfo::CODE_TARGET);
573 } else { 573 } else {
574 ParameterCount actual(r3); 574 ParameterCount actual(r3);
575 __ InvokeFunction(r4, r6, actual, CALL_FUNCTION, NullCallWrapper()); 575 __ InvokeFunction(r4, r6, actual, CALL_FUNCTION,
576 CheckDebugStepCallWrapper());
576 } 577 }
577 578
578 // Store offset of return address for deoptimizer. 579 // Store offset of return address for deoptimizer.
579 if (create_implicit_receiver && !is_api_function) { 580 if (create_implicit_receiver && !is_api_function) {
580 masm->isolate()->heap()->SetConstructStubDeoptPCOffset(masm->pc_offset()); 581 masm->isolate()->heap()->SetConstructStubDeoptPCOffset(masm->pc_offset());
581 } 582 }
582 583
583 // Restore context from the frame. 584 // Restore context from the frame.
584 // r3: result 585 // r3: result
585 // sp[0]: receiver 586 // sp[0]: receiver
(...skipping 1114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1700 // -- r4 : the function to call (checked to be a JSFunction) 1701 // -- r4 : the function to call (checked to be a JSFunction)
1701 // -- r5 : the shared function info. 1702 // -- r5 : the shared function info.
1702 // -- cp : the function context. 1703 // -- cp : the function context.
1703 // ----------------------------------- 1704 // -----------------------------------
1704 1705
1705 __ LoadWordArith( 1706 __ LoadWordArith(
1706 r5, FieldMemOperand(r5, SharedFunctionInfo::kFormalParameterCountOffset)); 1707 r5, FieldMemOperand(r5, SharedFunctionInfo::kFormalParameterCountOffset));
1707 #if !V8_TARGET_ARCH_PPC64 1708 #if !V8_TARGET_ARCH_PPC64
1708 __ SmiUntag(r5); 1709 __ SmiUntag(r5);
1709 #endif 1710 #endif
1710 __ LoadP(r7, FieldMemOperand(r4, JSFunction::kCodeEntryOffset));
1711 ParameterCount actual(r3); 1711 ParameterCount actual(r3);
1712 ParameterCount expected(r5); 1712 ParameterCount expected(r5);
1713 __ InvokeCode(r7, no_reg, expected, actual, JUMP_FUNCTION, NullCallWrapper()); 1713 __ InvokeFunctionCode(r4, no_reg, expected, actual, JUMP_FUNCTION,
1714 CheckDebugStepCallWrapper());
1714 1715
1715 // The function is a "classConstructor", need to raise an exception. 1716 // The function is a "classConstructor", need to raise an exception.
1716 __ bind(&class_constructor); 1717 __ bind(&class_constructor);
1717 { 1718 {
1718 FrameAndConstantPoolScope frame(masm, StackFrame::INTERNAL); 1719 FrameAndConstantPoolScope frame(masm, StackFrame::INTERNAL);
1719 __ push(r4); 1720 __ push(r4);
1720 __ CallRuntime(Runtime::kThrowConstructorNonCallableError, 1); 1721 __ CallRuntime(Runtime::kThrowConstructorNonCallableError, 1);
1721 } 1722 }
1722 } 1723 }
1723 1724
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
2010 __ bkpt(0); 2011 __ bkpt(0);
2011 } 2012 }
2012 } 2013 }
2013 2014
2014 2015
2015 #undef __ 2016 #undef __
2016 } // namespace internal 2017 } // namespace internal
2017 } // namespace v8 2018 } // namespace v8
2018 2019
2019 #endif // V8_TARGET_ARCH_PPC 2020 #endif // V8_TARGET_ARCH_PPC
OLDNEW
« no previous file with comments | « src/ic/ppc/handler-compiler-ppc.cc ('k') | src/ppc/macro-assembler-ppc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698