diff options
author | Michaël Zasso <targos@protonmail.com> | 2020-11-13 12:51:53 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2020-11-15 16:46:54 +0100 |
commit | 48db20f6f53060e38b2272566b014741eb4f519f (patch) | |
tree | e2f9b4c7f69d2e4597b73b4c3c09f4371d5cc963 /deps/v8/src/codegen/ppc/macro-assembler-ppc.h | |
parent | 79916428a48df937aa5b2b69c061d2d42181a76b (diff) | |
download | node-new-48db20f6f53060e38b2272566b014741eb4f519f.tar.gz |
deps: update V8 to 8.7.220
PR-URL: https://github.com/nodejs/node/pull/35700
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Diffstat (limited to 'deps/v8/src/codegen/ppc/macro-assembler-ppc.h')
-rw-r--r-- | deps/v8/src/codegen/ppc/macro-assembler-ppc.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/deps/v8/src/codegen/ppc/macro-assembler-ppc.h b/deps/v8/src/codegen/ppc/macro-assembler-ppc.h index 0e9c764add..a74985cbe1 100644 --- a/deps/v8/src/codegen/ppc/macro-assembler-ppc.h +++ b/deps/v8/src/codegen/ppc/macro-assembler-ppc.h @@ -237,6 +237,10 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { StoreP(src1, MemOperand(sp, 4 * kSystemPointerSize)); } + enum PushArrayOrder { kNormal, kReverse }; + void PushArray(Register array, Register size, Register scratch, + Register scratch2, PushArrayOrder order = kNormal); + void Pop(Register dst) { pop(dst); } // Pop two registers. Pops rightmost register first (from lower address). @@ -719,6 +723,28 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler { public: using TurboAssembler::TurboAssembler; + // It assumes that the arguments are located below the stack pointer. + // argc is the number of arguments not including the receiver. + // TODO(victorgomes): Remove this function once we stick with the reversed + // arguments order. + void LoadReceiver(Register dest, Register argc) { +#ifdef V8_REVERSE_JSARGS + LoadP(dest, MemOperand(sp, 0)); +#else + ShiftLeftImm(dest, argc, Operand(kSystemPointerSizeLog2)); + LoadPX(dest, MemOperand(sp, dest)); +#endif + } + + void StoreReceiver(Register rec, Register argc, Register scratch) { +#ifdef V8_REVERSE_JSARGS + StoreP(rec, MemOperand(sp, 0)); +#else + ShiftLeftImm(scratch, argc, Operand(kSystemPointerSizeLog2)); + StorePX(rec, MemOperand(sp, scratch)); +#endif + } + // --------------------------------------------------------------------------- // GC Support |