diff options
author | Michaël Zasso <targos@protonmail.com> | 2019-11-08 15:39:11 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2019-11-08 15:46:25 +0100 |
commit | 6ca81ad72a3c6fdf16c683335be748f22aaa9a0d (patch) | |
tree | 33c8ee75f729aed76c2c0b89c63f9bf1b4dd66aa /deps/v8/src/deoptimizer/ppc/deoptimizer-ppc.cc | |
parent | 1eee0b8bf8bba39b600fb16a9223e545e3bac2bc (diff) | |
download | android-node-v8-6ca81ad72a3c6fdf16c683335be748f22aaa9a0d.tar.gz android-node-v8-6ca81ad72a3c6fdf16c683335be748f22aaa9a0d.tar.bz2 android-node-v8-6ca81ad72a3c6fdf16c683335be748f22aaa9a0d.zip |
deps: update V8 to 7.9.317.20
PR-URL: https://github.com/nodejs/node/pull/30020
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'deps/v8/src/deoptimizer/ppc/deoptimizer-ppc.cc')
-rw-r--r-- | deps/v8/src/deoptimizer/ppc/deoptimizer-ppc.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/deps/v8/src/deoptimizer/ppc/deoptimizer-ppc.cc b/deps/v8/src/deoptimizer/ppc/deoptimizer-ppc.cc index 864e9dbe36..4036b73443 100644 --- a/deps/v8/src/deoptimizer/ppc/deoptimizer-ppc.cc +++ b/deps/v8/src/deoptimizer/ppc/deoptimizer-ppc.cc @@ -113,6 +113,17 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, __ stfd(d0, MemOperand(r4, dst_offset)); } + // Mark the stack as not iterable for the CPU profiler which won't be able to + // walk the stack without the return address. + { + UseScratchRegisterScope temps(masm); + Register is_iterable = temps.Acquire(); + Register zero = r7; + __ Move(is_iterable, ExternalReference::stack_is_iterable_address(isolate)); + __ li(zero, Operand(0)); + __ stb(zero, MemOperand(is_iterable)); + } + // Remove the saved registers from the stack. __ addi(sp, sp, Operand(kSavedRegistersAreaSize)); @@ -210,12 +221,22 @@ void Deoptimizer::GenerateDeoptimizationEntries(MacroAssembler* masm, { UseScratchRegisterScope temps(masm); + Register is_iterable = temps.Acquire(); + Register one = r7; + __ Move(is_iterable, ExternalReference::stack_is_iterable_address(isolate)); + __ li(one, Operand(1)); + __ stb(one, MemOperand(is_iterable)); + } + + { + UseScratchRegisterScope temps(masm); Register scratch = temps.Acquire(); __ pop(scratch); // get continuation, leave pc on stack __ pop(r0); __ mtlr(r0); __ Jump(scratch); } + __ stop(); } |